Esempio n. 1
0
static void execute_widget_init(ExecuteWidget *ew)
{

	ew->nes = NULL;
	ew->execute_callback = NULL;
	ew->step_callback = NULL;
	ew->debug_disable_callback = NULL;
	ew->running = FALSE;
	ew->thread = NULL;

	gtk_table_resize(GTK_TABLE(ew), EXECUTE_WIDGET_ROWS, EXECUTE_WIDGET_COLS);
	gtk_table_set_homogeneous(GTK_TABLE(ew), TRUE);

	ew->step_button = gtk_button_new_with_label("Step");
	g_signal_connect(ew->step_button, "clicked", G_CALLBACK(on_step_button_clicked), ew);
	gtk_table_attach_defaults(GTK_TABLE(ew), ew->step_button, 0, 1, 0, 1);

	ew->execute_button = gtk_button_new_with_label("Execute");
	g_signal_connect(ew->execute_button, "clicked", G_CALLBACK(on_execute_button_clicked), ew);
	gtk_table_attach_defaults(GTK_TABLE(ew), ew->execute_button, 1, 2, 0, 1);

	ew->start_button = gtk_button_new_with_label("Start");
	g_signal_connect(ew->start_button, "clicked", G_CALLBACK(on_start_button_clicked), ew);
	gtk_table_attach_defaults(GTK_TABLE(ew), ew->start_button, 2, 3, 0, 1);

	ew->stop_button = gtk_button_new_with_label("Stop");
	g_signal_connect(ew->stop_button, "clicked", G_CALLBACK(on_stop_button_clicked), ew);
	gtk_widget_set_sensitive(GTK_WIDGET(ew->stop_button), FALSE);
	gtk_table_attach_defaults(GTK_TABLE(ew), ew->stop_button, 3, 4, 0, 1);
}
Esempio n. 2
0
/* Build the composite widget */
static void game_buildings_init(GameBuildings * gb)
{
	GtkWidget *label;
	GtkWidget *spin;
	GtkObject *adjustment;
	gint row;

	gtk_table_resize(GTK_TABLE(gb), NUM_BUILD_TYPES - 1, 2);
	gtk_table_set_row_spacings(GTK_TABLE(gb), 3);
	gtk_table_set_col_spacings(GTK_TABLE(gb), 5);
	gtk_table_set_homogeneous(GTK_TABLE(gb), TRUE);

	for (row = 1; row < NUM_BUILD_TYPES; row++) {
		label = gtk_label_new(gettext(building_names[row]));
		gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
		gtk_table_attach_defaults(GTK_TABLE(gb), label,
					  0, 1, row - 1, row);

		adjustment = gtk_adjustment_new(0, 0, 100, 1, 5, 0);
		spin =
		    gtk_spin_button_new(GTK_ADJUSTMENT(adjustment), 1, 0);
		gtk_entry_set_alignment(GTK_ENTRY(spin), 1.0);
		gtk_table_attach_defaults(GTK_TABLE(gb), spin,
					  1, 2, row - 1, row);
		gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(spin), TRUE);
		gb->num_buildings[row] = GTK_SPIN_BUTTON(spin);
	}
}
Esempio n. 3
0
static void
ekiga_dialpad_init (EkigaDialpad *dialpad)
{
  unsigned i;

  dialpad->priv = G_TYPE_INSTANCE_GET_PRIVATE (dialpad,
                                               EKIGA_TYPE_DIALPAD,
                                               EkigaDialpadPrivate);

  gtk_table_set_col_spacings (GTK_TABLE (dialpad), 2);
  gtk_table_set_row_spacings (GTK_TABLE (dialpad), 2);
  gtk_table_set_homogeneous (GTK_TABLE (dialpad), TRUE);

  /* Create the buttons */
  for (i = 0; i < G_N_ELEMENTS (keys_info); i++) {
    GtkWidget *box;
    GtkWidget *label;
    GtkWidget *button;
    gchar *text;
    GtkWidget *alignment;

    box = gtk_hbox_new (FALSE, 2);

    label = gtk_label_new (keys_info[i].number);
    gtk_misc_set_alignment (GTK_MISC (label), 1.0, 1.0);
    gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);

    label = gtk_label_new (NULL);
    gtk_misc_set_alignment (GTK_MISC (label), 0.0, 1.0);

    if (strlen (keys_info [i].letters) > 0) {
      text = g_strdup_printf ("<sub><span size=\"small\">%s</span></sub>",
                              _(keys_info [i].letters));
      gtk_label_set_markup (GTK_LABEL (label), text);
      g_free (text);
    }
    gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0);

    alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
    gtk_container_add (GTK_CONTAINER (alignment), box);

    button = gtk_button_new ();
    gtk_container_set_border_width (GTK_CONTAINER (button), 0);
    gtk_container_add (GTK_CONTAINER (button), alignment);

    dialpad->priv->buttons[i] = button;

    gtk_table_attach (GTK_TABLE (dialpad),  button,
                      i % 3, i % 3 + 1,
                      i / 3, i / 3 + 1,
                      (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                      (GtkAttachOptions) (GTK_FILL | GTK_EXPAND),
                      0, 0);

    g_signal_connect (button, "clicked",
                      G_CALLBACK (on_dialpad_button_clicked), dialpad);
  }
}
Esempio n. 4
0
/* changes the homogenous property of table cells.
 * Ie. whether all cells are an equal size or not. */
int
clip_GTK_TABLESETHOMOGENEOUS(ClipMachine *cm)
{
	C_widget *ctbl = _fetch_cw_arg(cm);
	gboolean homogeneous = BOOL_OPTION(cm,2,FALSE);
	CHECKCWID(ctbl,GTK_IS_TABLE);
	CHECKOPT(2,LOGICAL_t);
	gtk_table_set_homogeneous(GTK_TABLE(ctbl->widget), homogeneous);
	return 0;
err:
	return 1;
}
Esempio n. 5
0
extern GtkWidget *create_resv_entry(resv_desc_msg_t *resv_msg,
				    GtkTreeModel *model, GtkTreeIter *iter)
{
	GtkScrolledWindow *window = create_scrolled_window();
	GtkBin *bin = NULL;
	GtkViewport *view = NULL;
	GtkTable *table = NULL;
	int i = 0, row = 0;
	display_data_t *display_data = create_data_resv;

	gtk_scrolled_window_set_policy(window,
				       GTK_POLICY_NEVER,
				       GTK_POLICY_AUTOMATIC);
	bin = GTK_BIN(&window->container);
	view = GTK_VIEWPORT(bin->child);
	bin = GTK_BIN(&view->bin);
	table = GTK_TABLE(bin->child);
	gtk_table_resize(table, SORTID_CNT, 2);

	gtk_table_set_homogeneous(table, FALSE);

	for (i = 0; i < SORTID_CNT; i++) {
		while (display_data++) {
			if (display_data->id == -1)
				break;
			if (!display_data->name)
				continue;
			if (display_data->id != i)
				continue;
			display_admin_edit(
				table, resv_msg, &row, model, iter,
				display_data,
				G_CALLBACK(_admin_edit_combo_box_resv),
				G_CALLBACK(_admin_focus_out_resv),
				_set_active_combo_resv);
			break;
		}
		display_data = create_data_resv;
	}
	gtk_table_resize(table, row, 2);

	return GTK_WIDGET(window);
}
static void
tictactoe_init (Tictactoe *ttt)
{
  gint i,j;
  
  gtk_table_resize (GTK_TABLE (ttt), 3, 3);
  gtk_table_set_homogeneous (GTK_TABLE (ttt), TRUE);

  for (i=0;i<3; i++)
    for (j=0;j<3; j++)      {
	ttt->buttons[i][j] = gtk_toggle_button_new ();
	gtk_table_attach_defaults (GTK_TABLE (ttt), ttt->buttons[i][j], 
				   i, i+1, j, j+1);
	g_signal_connect (ttt->buttons[i][j], "toggled",
			  G_CALLBACK (tictactoe_toggle), (gpointer) ttt);
	gtk_widget_set_size_request (ttt->buttons[i][j], 20, 20);
	gtk_widget_show (ttt->buttons[i][j]);
      }
}
Esempio n. 7
0
static void stack_widget_init(StackWidget *sw)
{
	sw->ram_read_callback = NULL;
	sw->read_sp_callback = NULL;
	sw->cpu = NULL;
	GtkWidget *entry = NULL;
	gint i;
	GtkAttachOptions attach_options;
	gtk_table_set_homogeneous(GTK_TABLE(sw), FALSE);

	g_signal_connect(sw, "scroll-event", G_CALLBACK(table_scroll_handler), sw);
	attach_options = GTK_SHRINK;

	/* Labels to the left */
	for(i = 0; i < STACK_WIDGET_ROWS; i++)
	{
		char *str;
		str = g_strdup_printf("0x%04X", 0x100 + i);
		sw->left_locations[i] = gtk_label_new(str);
		gtk_widget_modify_font(GTK_WIDGET(sw->left_locations[i]), pango_font_description_from_string("monospace"));
		g_free(str);
		gtk_table_attach(GTK_TABLE(sw), sw->left_locations[i], 0, 1, i, i + 1, attach_options, attach_options, 3, 0);
		gtk_widget_show(sw->left_locations[i]);
	}

	/* The memory entries */
	for(i = 0; i < STACK_WIDGET_ROWS; i++)
	{
		entry = gtk_entry_new();
		sw->entries[i] = entry;
		gtk_widget_modify_font(GTK_WIDGET(entry), pango_font_description_from_string("monospace"));
		gtk_entry_set_max_length(GTK_ENTRY(entry), 2);
		gtk_entry_set_width_chars(GTK_ENTRY(entry), 2);
		gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE);
		gtk_table_attach(GTK_TABLE(sw), entry, 1, 2, i, i + 1, attach_options, attach_options, 3, 0);
		gtk_widget_show(entry);
	}
	stack_widget_update(sw);
}
Esempio n. 8
0
static void
remmina_plugin_rdpset_table_init (RemminaPluginRdpsetTable *table)
{
    GtkWidget *widget;
    GtkCellRenderer *renderer;
    gchar *s;

    /* Create the table */
    g_signal_connect (G_OBJECT (table), "destroy", G_CALLBACK (remmina_plugin_rdpset_table_destroy), NULL);
    gtk_table_resize (GTK_TABLE (table), 8, 3);
    gtk_table_set_homogeneous (GTK_TABLE (table), FALSE);
    gtk_container_set_border_width (GTK_CONTAINER (table), 8);
    gtk_table_set_row_spacings (GTK_TABLE (table), 4);
    gtk_table_set_col_spacings (GTK_TABLE (table), 4);

    /* Create the content */
    widget = gtk_label_new (_("Keyboard layout"));
    gtk_widget_show (widget);
    gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 1, 0, 1);

    table->keyboard_layout_store = gtk_list_store_new (2, G_TYPE_UINT, G_TYPE_STRING);
    widget = gtk_combo_box_new_with_model (GTK_TREE_MODEL (table->keyboard_layout_store));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 4, 0, 1);

    renderer = gtk_cell_renderer_text_new ();
    gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, TRUE); 
    gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (widget), renderer, "text", 1);
    table->keyboard_layout_combo = widget;

    widget = gtk_label_new ("-");
    gtk_widget_show (widget);
    gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 4, 1, 2);
    table->keyboard_layout_label = widget;

    remmina_plugin_rdpset_table_load_layout (table);

    widget = gtk_check_button_new_with_label (_("Use client keyboard mapping"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 3, 2, 3);
    table->use_client_keymap_check = widget;

    s = remmina_plugin_service->pref_get_value ("rdp_use_client_keymap");
    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
        s && s[0] == '1' ? TRUE : FALSE);
    g_free (s);

    widget = gtk_label_new (_("Quality option"));
    gtk_widget_show (widget);
    gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 0, 1, 3, 4);

    table->quality_store = gtk_list_store_new (2, G_TYPE_UINT, G_TYPE_STRING);
    widget = gtk_combo_box_new_with_model (GTK_TREE_MODEL (table->quality_store));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 4, 3, 4);

    renderer = gtk_cell_renderer_text_new ();
    gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (widget), renderer, TRUE); 
    gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (widget), renderer, "text", 1);
    g_signal_connect (G_OBJECT (widget), "changed",
        G_CALLBACK (remmina_plugin_rdpset_quality_on_changed), table);
    table->quality_combo = widget;

    remmina_plugin_rdpset_table_load_quality (table);

    widget = gtk_check_button_new_with_label (_("Wallpaper"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 2, 4, 5);
    g_signal_connect (G_OBJECT (widget), "toggled",
        G_CALLBACK (remmina_plugin_rdpset_quality_option_on_toggled), table);
    table->wallpaper_check = widget;

    widget = gtk_check_button_new_with_label (_("Window drag"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 2, 3, 4, 5);
    g_signal_connect (G_OBJECT (widget), "toggled",
        G_CALLBACK (remmina_plugin_rdpset_quality_option_on_toggled), table);
    table->windowdrag_check = widget;

    widget = gtk_check_button_new_with_label (_("Menu animation"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 2, 5, 6);
    g_signal_connect (G_OBJECT (widget), "toggled",
        G_CALLBACK (remmina_plugin_rdpset_quality_option_on_toggled), table);
    table->menuanimation_check = widget;

    widget = gtk_check_button_new_with_label (_("Theme"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 2, 3, 5, 6);
    g_signal_connect (G_OBJECT (widget), "toggled",
        G_CALLBACK (remmina_plugin_rdpset_quality_option_on_toggled), table);
    table->theme_check = widget;

    widget = gtk_check_button_new_with_label (_("Cursor shadow"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 2, 6, 7);
    g_signal_connect (G_OBJECT (widget), "toggled",
        G_CALLBACK (remmina_plugin_rdpset_quality_option_on_toggled), table);
    table->cursorshadow_check = widget;

    widget = gtk_check_button_new_with_label (_("Cursor blinking"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 2, 3, 6, 7);
    g_signal_connect (G_OBJECT (widget), "toggled",
        G_CALLBACK (remmina_plugin_rdpset_quality_option_on_toggled), table);
    table->cursorblinking_check = widget;

    widget = gtk_check_button_new_with_label (_("Font smoothing"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 1, 2, 7, 8);
    g_signal_connect (G_OBJECT (widget), "toggled",
        G_CALLBACK (remmina_plugin_rdpset_quality_option_on_toggled), table);
    table->fontsmoothing_check = widget;

    widget = gtk_check_button_new_with_label (_("Composition"));
    gtk_widget_show (widget);
    gtk_table_attach_defaults (GTK_TABLE (table), widget, 2, 3, 7, 8);
    g_signal_connect (G_OBJECT (widget), "toggled",
        G_CALLBACK (remmina_plugin_rdpset_quality_option_on_toggled), table);
    table->composition_check = widget;

    gtk_combo_box_set_active (GTK_COMBO_BOX (table->quality_combo), 0);
}
Esempio n. 9
0
GtkWidget *gui_build_dialog_gtk_table(GSList * list, gint cols, gboolean use_progress)
{
    GSList *listtmp = list;
    GtkWidget *adv_vbox = NULL;
    GtkWidget *adv_expander = NULL;
    gint ielements = g_slist_position(list, g_slist_last(list));
    gint rows = ((ielements + 1) / cols) + use_progress;
    GtkWidget *tab = gtk_table_new(rows, cols, FALSE);
    gint actC = 0, actR = 0;
    GtkWidget *to_grab_focus = NULL;
    gboolean need_advanced = FALSE;

    gtk_container_set_border_width(GTK_CONTAINER(tab), 15);

    /* remember to free adv_expander */

    adv_vbox = gtk_vbox_new(FALSE, 5);

    while (listtmp)
    {
        GGaduKeyValue *kv = (GGaduKeyValue *) listtmp->data;
        GtkWidget *entry = NULL;
        gboolean need_label = TRUE;
        gboolean is_advanced = FALSE;

        switch (kv->type)
        {
        case VAR_STR:
            entry = gtk_entry_new();
            if (kv->value)
                gtk_entry_set_text(GTK_ENTRY(entry), g_strdup(kv->value));

            gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
            break;
        case VAR_INT:
        {
            entry = gtk_spin_button_new_with_range(0, 999999999, 1);
            gtk_spin_button_set_value(GTK_SPIN_BUTTON(entry), (gint) kv->value);
            gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
        }
        break;
        case VAR_INT_WITH_NEGATIVE:
        {
            entry = gtk_spin_button_new_with_range(-999999999, 999999999, 1);
            gtk_spin_button_set_value(GTK_SPIN_BUTTON(entry), (gint) kv->value);
            gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
        }
        break;
        case VAR_BOOL:
            need_label = FALSE;
            entry = gtk_check_button_new_with_mnemonic(kv->description);
            if (kv->value)
                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(entry), TRUE);
            break;
        case VAR_FILE_CHOOSER:
        {
            GtkWidget *txt_entry = NULL;
            GtkWidget *button_entry = NULL;

            entry = gtk_hbox_new(FALSE, 2);

            txt_entry = gtk_entry_new();
            if (kv->value)
                gtk_entry_set_text(GTK_ENTRY(txt_entry), g_strdup(kv->value));

            g_object_set_data(G_OBJECT(txt_entry), "kv", kv);
            g_object_set_data(G_OBJECT(entry), "txt_entry", txt_entry);

            button_entry = gtk_button_new_from_stock("gtk-open");

            gtk_box_pack_start_defaults(GTK_BOX(entry), txt_entry);
            gtk_box_pack_start_defaults(GTK_BOX(entry), button_entry);

            g_signal_connect_swapped(button_entry, "clicked", G_CALLBACK(gui_dialog_show_filename), txt_entry);
        }
        break;
        case VAR_FONT_CHOOSER:
        {
            GtkWidget *txt_entry = NULL;
            GtkWidget *button_entry = NULL;

            entry = gtk_hbox_new(FALSE, 2);

            txt_entry = gtk_entry_new();
            if (kv->value)
                gtk_entry_set_text(GTK_ENTRY(txt_entry), g_strdup(kv->value));

            g_object_set_data(G_OBJECT(txt_entry), "kv", kv);
            g_object_set_data(G_OBJECT(entry), "txt_entry", txt_entry);

            button_entry = gtk_button_new_from_stock("gtk-select-font");

            gtk_box_pack_start_defaults(GTK_BOX(entry), txt_entry);
            gtk_box_pack_start_defaults(GTK_BOX(entry), button_entry);

            g_signal_connect_swapped(button_entry, "clicked", G_CALLBACK(gui_dialog_show_fontchooser), txt_entry);
        }
        break;
        case VAR_COLOUR_CHOOSER:
        {
            GtkWidget *txt_entry = NULL;
            GtkWidget *button_entry = NULL;
            GdkColor color;

            entry = gtk_hbox_new(FALSE, 2);

            txt_entry = gtk_entry_new();
            if (kv->value)
                gtk_entry_set_text(GTK_ENTRY(txt_entry), g_strdup(kv->value));

            gdk_color_parse(gtk_entry_get_text(GTK_ENTRY(txt_entry)), &color);

            g_object_set_data(G_OBJECT(txt_entry), "kv", kv);
            g_object_set_data(G_OBJECT(entry), "txt_entry", txt_entry);

            button_entry = gtk_color_button_new_with_color(&color);

            gtk_box_pack_start_defaults(GTK_BOX(entry), txt_entry);
            gtk_box_pack_start_defaults(GTK_BOX(entry), button_entry);

            g_signal_connect(G_OBJECT(button_entry), "color-set", G_CALLBACK(gui_dialog_show_colorchooser), txt_entry);
        }
        break;
        case VAR_IMG:
            need_label = FALSE;
            entry = gtk_image_new_from_file(kv->value);
            gtk_table_set_homogeneous(GTK_TABLE(tab), FALSE);
            break;
        case VAR_LIST:
        {
            GSList *selected = g_slist_nth((GSList *) kv->value, 0);
            GSList *restlist = g_slist_nth((GSList *) kv->value, 1);
            gint selected_index = 0;
            gint i = -1;

            entry = gtk_combo_box_new_text();

            g_object_set_data(G_OBJECT(entry), "options-list", restlist);
            while (restlist)
            {
                i++;
                if (!g_strcasecmp(selected->data, restlist->data))
                {
                    selected_index = i;
                    print_debug("############# %d %s", selected_index, selected->data);
                }
                gtk_combo_box_append_text(GTK_COMBO_BOX(entry), g_strdup(restlist->data));
                restlist = restlist->next;
            }
            gtk_combo_box_set_active(GTK_COMBO_BOX(entry), selected_index);
        }
        break;
        default:
            break;
        }

        if ((kv->flag & VAR_FLAG_SENSITIVE) != 0)
        {
            gtk_widget_set_sensitive(GTK_WIDGET(entry), TRUE);
            gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE);
        }

        if ((kv->flag & VAR_FLAG_INSENSITIVE) != 0)
        {
            gtk_widget_set_sensitive(GTK_WIDGET(entry), FALSE);
            gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE);
        }

        if ((kv->flag & VAR_FLAG_PASSWORD) != 0)
            gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);

        if ((kv->flag & VAR_FLAG_FOCUS) != 0)
            to_grab_focus = entry;


        kv->user_data = (gpointer) entry;

        if ((kv->flag & VAR_FLAG_ADVANCED) != 0)
        {
            GtkWidget *hbox = gtk_hbox_new(FALSE, 5);
            GtkWidget *align;
            GtkWidget *label;

            need_advanced = TRUE;
            is_advanced = TRUE;

            gtk_box_pack_end_defaults(GTK_BOX(hbox), entry);

            if (need_label)
            {
                align = gtk_alignment_new(0, 0.5, 0, 0);
                label = gtk_label_new_with_mnemonic(kv->description);
                gtk_container_add(GTK_CONTAINER(align), label);
                gtk_box_pack_end_defaults(GTK_BOX(hbox), align);
            }

            gtk_box_pack_start_defaults(GTK_BOX(adv_vbox), hbox);
        }

        if (need_label && !is_advanced)
        {
            GtkWidget *align = gtk_alignment_new(0, 0.5, 0, 0);
            GtkWidget *label = gtk_label_new_with_mnemonic(kv->description);

            gtk_container_add(GTK_CONTAINER(align), label);
            gtk_table_attach_defaults(GTK_TABLE(tab), align, 0, 1, actR, actR + 1);

            if (entry)
                gtk_table_attach_defaults(GTK_TABLE(tab), entry, 1, 2, actR, actR + 1);

        }
        else if (!is_advanced)
        {
            gtk_table_attach(GTK_TABLE(tab), entry, actC, actC + 2, actR, actR + 1, GTK_FILL, GTK_SHRINK, 0, 0);
        }


        if (!is_advanced)
        {
            if ((actC + 1) < cols)
                actC++;
            else
            {
                actC = 0;
                actR++;
            }
        }

        listtmp = listtmp->next;
    }

    if (need_advanced)
    {
        adv_expander = gtk_expander_new_with_mnemonic(_("_More options"));
        gtk_container_add(GTK_CONTAINER(adv_expander), adv_vbox);
        gtk_table_attach_defaults(GTK_TABLE(tab), adv_expander, 0, rows, actR, actR + 1);
    }
    else
    {
        gtk_widget_destroy(adv_vbox);
    }

    /* progress stuff */
    if (use_progress)
    {
        GtkWidget *progress = gtk_progress_bar_new();
        gtk_table_attach_defaults(GTK_TABLE(tab), progress, 0, rows, actR, actR + 1);
    }

    if (to_grab_focus)
        gtk_widget_grab_focus(GTK_WIDGET(to_grab_focus));

    return tab;
}
Esempio n. 10
0
int main(int argc, char **argv)
{
	GtkWidget *menubar = NULL;
	GtkWidget *table = NULL;
	GtkWidget *combo = NULL;
	GtkBin *bin = NULL;
	GtkViewport *view = NULL;
	int i=0;
	log_options_t lopts = LOG_OPTS_STDERR_ONLY;

	if (!getenv("SLURM_BITSTR_LEN"))
		setenv("SLURM_BITSTR_LEN", "128", 1);	/* More array info */
	slurm_conf_init(NULL);
	log_init(argv[0], lopts, SYSLOG_FACILITY_USER, NULL);
	load_defaults();
	cluster_flags = slurmdb_setup_cluster_flags();
	cluster_dims = slurmdb_setup_cluster_dims();

	_init_pages();
	sview_thread_init(NULL);
	gdk_threads_init();
	gdk_threads_enter();
	/* Initialize GTK */
	gtk_init (&argc, &argv);
	sview_mutex_new(&sview_mutex);
	sview_mutex_new(&grid_mutex);
	sview_cond_new(&grid_cond);
	/* make sure the system is up */
	grid_window = GTK_WIDGET(create_scrolled_window());
	bin = GTK_BIN(&GTK_SCROLLED_WINDOW(grid_window)->container);
	view = GTK_VIEWPORT(bin->child);
	bin = GTK_BIN(&view->bin);
	main_grid_table = GTK_TABLE(bin->child);
	gtk_table_set_homogeneous(main_grid_table, true);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(grid_window),
				       GTK_POLICY_NEVER,
				       GTK_POLICY_AUTOMATIC);

	/* fill in all static info for pages */
	/* Make a window */
	main_window = gtk_dialog_new();
	g_signal_connect(G_OBJECT(main_window), "delete_event",
			 G_CALLBACK(_delete), NULL);

	gtk_window_set_title(GTK_WINDOW(main_window), "Sview");
	gtk_window_set_default_size(GTK_WINDOW(main_window),
				    working_sview_config.main_width,
				    working_sview_config.main_height);
	gtk_container_set_border_width(
		GTK_CONTAINER(GTK_DIALOG(main_window)->vbox), 1);
	/* Create the main notebook, place the position of the tabs */
	main_notebook = gtk_notebook_new();
	g_signal_connect(G_OBJECT(main_notebook), "switch_page",
			 G_CALLBACK(_page_switched),
			 NULL);
	table = gtk_table_new(1, 3, false);
	gtk_table_set_homogeneous(GTK_TABLE(table), false);
	gtk_container_set_border_width(GTK_CONTAINER(table), 1);
	/* Create a menu */
	menubar = _get_menubar_menu(main_window, main_notebook);
	gtk_table_attach_defaults(GTK_TABLE(table), menubar, 0, 1, 0, 1);

	if ((combo = _create_cluster_combo())) {
		GtkWidget *label = gtk_label_new("Cluster ");
		gtk_table_attach(GTK_TABLE(table), label, 1, 2, 0, 1,
				 GTK_FILL, GTK_SHRINK, 0, 0);
		gtk_table_attach(GTK_TABLE(table), combo, 2, 3, 0, 1,
				 GTK_FILL, GTK_SHRINK, 0, 0);
	}
	gtk_notebook_popup_enable(GTK_NOTEBOOK(main_notebook));
	gtk_notebook_set_scrollable(GTK_NOTEBOOK(main_notebook), true);
	gtk_notebook_set_tab_pos(GTK_NOTEBOOK(main_notebook),
				 working_sview_config.tab_pos);

	main_statusbar = gtk_statusbar_new();
	gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(main_statusbar),
					  false);
	/* Pack it all together */
	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(main_window)->vbox),
			   table, false, false, 0);
	table = gtk_table_new(1, 2, false);

	gtk_table_attach(GTK_TABLE(table), grid_window, 0, 1, 0, 1,
			 GTK_SHRINK, GTK_EXPAND | GTK_FILL,
			 0, 0);
	gtk_table_attach_defaults(GTK_TABLE(table), main_notebook, 1, 2, 0, 1);

	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(main_window)->vbox),
			   table, true, true, 0);
	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(main_window)->vbox),
			   main_statusbar, false, false, 0);

	in_process_cursor = gdk_cursor_new(GDK_WATCH);

	for(i=0; i<PAGE_CNT; i++) {
		if (main_display_data[i].id == -1)
			break;

		create_page(GTK_NOTEBOOK(main_notebook),
			    &main_display_data[i]);
	}

	/* tell signal we are done adding */

	popup_list = list_create(destroy_popup_info);
	signal_params_list = list_create(destroy_signal_params);

	gtk_widget_show_all(main_window);

	adding = 0;
	/* apply default settings */
	if (!working_sview_config.show_grid)
		gtk_widget_hide(grid_window);

	for(i=0; i<PAGE_CNT; i++) {
		GtkWidget *visible_tab = NULL;

		if (main_display_data[i].id == -1)
			break;

		visible_tab = gtk_notebook_get_nth_page(
			GTK_NOTEBOOK(main_notebook), i);
		if (working_sview_config.page_visible[i]
		    || (i == working_sview_config.default_page)
		    || (i == TAB_PAGE))
			gtk_widget_show(visible_tab);
		else
			gtk_widget_hide(visible_tab);
	}
	/* Set the default page.  This has to be done after the
	 * gtk_widget_show_all since it, for some reason always sets
	 * 0 to be the default page and will just overwrite this. */
	/* Also if we already are set at the current page we need to
	   start up the page thread, so just call the _page_switched
	   function.  If we aren't already there, then set the current
	   page which will inturn call the _page_switched.  If the
	   pages is already this the signal doesn't happen so handle
	   it here.
	*/
	if (gtk_notebook_get_current_page(GTK_NOTEBOOK(main_notebook))
	    == working_sview_config.default_page)
		_page_switched(GTK_NOTEBOOK(main_notebook), NULL,
			       working_sview_config.default_page, NULL);
	else
		gtk_notebook_set_current_page(GTK_NOTEBOOK(main_notebook),
					      working_sview_config.
					      default_page);

	/* Finished! */
	gtk_main ();
	gdk_threads_leave();
	return 0;
}
Esempio n. 11
0
int main (int argc, char *argv[])
{
    /* Vars */
    GtkWidget *vbox;
    GtkWidget *window;
    GtkWidget *table;
    GtkWidget *label;
    GtkWidget *entry;
    GtkWidget *button;
    GtkWidget* scrolled;
    GtkWidget *menubar;
    GtkWidget *filemenu;
    GtkWidget *file;
    GtkWidget *quit;
    GtkWidget *reindexer;
    
    /* Set default directory to index */
    indexdir = ".";
    
    /* Run the indexer */
    reindex(NULL, NULL);
    
    /* Create the search objects */
    createSearch();

    /* Make the GUI */
    gtk_init(&argc, &argv);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    initialize_window(window);

    /* Create a 10x5 table */
    table = gtk_table_new (10, 5, FALSE);
    gtk_container_add (GTK_CONTAINER (window), table);

    /* create a new label. */
    label = gtk_label_new ("Search Terms:" );

    gtk_table_set_homogeneous(GTK_TABLE (table), TRUE);
    gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 1, 2);

    entry = gtk_entry_new ();
    gtk_entry_set_max_length (GTK_ENTRY (entry),1000);
    gtk_table_attach_defaults (GTK_TABLE (table), entry, 1, 3, 1, 2);
    
    button = gtk_button_new_with_label ("OR Search");
    gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (orsearch), (gpointer) entry);
    gtk_table_attach_defaults (GTK_TABLE (table), button, 3, 4, 1, 2);
    
    button = gtk_button_new_with_label ("AND Search");
    gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (andsearch), (gpointer) entry);
    gtk_table_attach_defaults (GTK_TABLE (table), button, 4, 5, 1, 2);
    
    textview  = gtk_text_view_new();
    gtk_text_view_set_editable( GTK_TEXT_VIEW (textview), 0);
    gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (textview), 0);
    scrolled = gtk_scrolled_window_new(NULL, NULL);
    gtk_container_add (GTK_CONTAINER (scrolled), textview);
    gtk_table_attach_defaults (GTK_TABLE (table), scrolled, 0, 5, 2, 10);


    vbox = gtk_vbox_new(FALSE, 0);
    gtk_table_attach_defaults (GTK_TABLE (table), vbox, 0, 5, 0, 1);

    menubar = gtk_menu_bar_new();
    filemenu = gtk_menu_new();

    file = gtk_menu_item_new_with_label("File");
    reindexer = gtk_menu_item_new_with_label("Reindex");
    gtk_signal_connect (GTK_OBJECT (reindexer), "activate", G_CALLBACK(reindex), NULL);
    quit = gtk_menu_item_new_with_label("Quit");
    gtk_signal_connect (GTK_OBJECT (quit), "activate", G_CALLBACK(destroy), NULL);

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), reindexer);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), quit);
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file);
    gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3);


    gtk_widget_show_all(window);

    gtk_main ();
    return 0;
}
Esempio n. 12
0
extern int configure_defaults(void)
{
	GtkScrolledWindow *window = create_scrolled_window();
	GtkWidget *popup = gtk_dialog_new_with_buttons(
		"Sview Defaults",
		GTK_WINDOW(main_window),
		GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
		NULL);
	GtkWidget *label = gtk_dialog_add_button(GTK_DIALOG(popup),
						 GTK_STOCK_OK, GTK_RESPONSE_OK);
	GtkBin *bin = NULL;
	GtkViewport *view = NULL;
	GtkTable *table = NULL;
	int i = 0, row = 0;
	char tmp_char[100];
	char *tmp_char_ptr;
	display_data_t *display_data = display_data_defaults;
	sview_config_t tmp_config;
	int response = 0;
	int rc = SLURM_SUCCESS;
	uint32_t width = 150;
	uint32_t height = 700;

	apply_hidden_change = TRUE;

	memcpy(&tmp_config, &default_sview_config, sizeof(sview_config_t));
	gtk_window_set_default(GTK_WINDOW(popup), label);
	gtk_dialog_add_button(GTK_DIALOG(popup),
			      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);

	/*
	  for(i=0;; i++) {
	  if (main_popup_positioner[i].width == -1)
	  break;
	  if (strstr("Sview Defaults", main_popup_positioner[i].name)) {
	  pos_x = main_popup_positioner[i].width;
	  pos_y = main_popup_positioner[i].height;
	  break;
	  }
	  }
	*/

	gtk_window_set_default_size(GTK_WINDOW(popup), width, height);
	snprintf(tmp_char, sizeof(tmp_char),
		 "Default Settings for Sview");
	label = gtk_label_new(tmp_char);

	gtk_scrolled_window_set_policy(window,
				       GTK_POLICY_NEVER,
				       GTK_POLICY_AUTOMATIC);
	bin = GTK_BIN(&window->container);
	view = GTK_VIEWPORT(bin->child);
	bin = GTK_BIN(&view->bin);
	table = GTK_TABLE(bin->child);
	gtk_table_resize(table, SORTID_CNT, 2);

	gtk_table_set_homogeneous(table, FALSE);

	for (i = 0; i < SORTID_CNT; i++) {
		while (display_data++) {
			if (display_data->id == -1)
				break;
			if (!display_data->name)
				continue;
			if (display_data->id != i)
				continue;

			_local_display_admin_edit(
				table, &tmp_config, &row,
				display_data);
			break;
		}
		display_data = display_data_defaults;
	}
	gtk_table_resize(table, row, 2);

	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(popup)->vbox),
			   label, FALSE, FALSE, 0);
	if (window)
		gtk_box_pack_start(GTK_BOX(GTK_DIALOG(popup)->vbox),
				   GTK_WIDGET(window), TRUE, TRUE, 0);
	gtk_widget_show_all(popup);
	response = gtk_dialog_run (GTK_DIALOG(popup));
	if (response == GTK_RESPONSE_OK) {
		tmp_char_ptr = g_strdup_printf(
			"Defaults updated successfully");
		if (global_edit_error)
			tmp_char_ptr = global_edit_error_msg;
		else if (!global_send_update_msg)
			tmp_char_ptr = g_strdup_printf(
				"No change detected.");
		else {
			int action = 0;
			gdk_window_set_cursor(main_window->window,
					      in_process_cursor);
			if (tmp_config.ruled_treeview
			    != working_sview_config.ruled_treeview) {
				/* get rid of each existing table */
				cluster_change_block();
				cluster_change_resv();
				cluster_change_part();
				cluster_change_job();
				cluster_change_node();
				cluster_change_front_end();
			} else if (tmp_config.grid_topological !=
				   working_sview_config.grid_topological) {
				apply_hidden_change = FALSE;
				if (tmp_config.grid_topological) {
					default_sview_config.grid_topological =
						tmp_config.grid_topological;
					if (!g_switch_nodes_maps)
						rc = get_topo_conf();
					if (rc != SLURM_SUCCESS) {
						/*denied*/
						tmp_char_ptr = g_strdup_printf(
							"Valid topology not "
							"detected");
						tmp_config.grid_topological =
							FALSE;
						goto denied_change;
					}
				}
				/*force fresh grid and
				 * node state check
				 * */
				FREE_NULL_LIST(grid_button_list);
				slurm_free_node_info_msg(g_node_info_ptr);
				g_node_info_ptr = NULL;
			}


			/*apply change*/

			memcpy(&default_sview_config, &tmp_config,
			       sizeof(sview_config_t));
			memcpy(&working_sview_config, &tmp_config,
			       sizeof(sview_config_t));

			/* set the current display to the default */
			gtk_toggle_action_set_active(
				default_sview_config.action_admin,
				working_sview_config.admin_mode);
			gtk_toggle_action_set_active(
				default_sview_config.action_ruled,
				working_sview_config.ruled_treeview);
			gtk_toggle_action_set_active(
				default_sview_config.action_grid,
				working_sview_config.show_grid);
			gtk_toggle_action_set_active(
				default_sview_config.action_hidden,
				working_sview_config.show_hidden);
			apply_hidden_change = TRUE;
			gtk_toggle_action_set_active(
				default_sview_config.action_page_opts,
				working_sview_config.save_page_opts);
#ifdef GTK2_USE_RADIO_SET
			/* Since this value isn't a simple 0->n we
			   need to translate if we don't have the
			   newer gtk.
			*/
			action = working_sview_config.tab_pos;
#else
			/* If using older gtk we need to translate the
			   tab position to that of the position in the
			   radio list.
			*/
			action = _trans_tab_pos(working_sview_config.tab_pos);
#endif

			sview_radio_action_set_current_value(
				default_sview_config.action_tab, action);


			for (i=0; i<PAGE_CNT; i++) {
				if (main_display_data[i].id == -1)
					break;

				if (!main_display_data[i].name
				    || (i == TAB_PAGE))
					continue;

				toggle_tab_visiblity(NULL, main_display_data+i);
			}
			get_system_stats(main_grid_table);
			/******************************************/
			save_defaults(false);
		}
	denied_change:
		display_edit_note(tmp_char_ptr);
		g_free(tmp_char_ptr);
	}

	global_entry_changed = 0;

	gtk_widget_destroy(popup);

	if (main_window && main_window->window)
		gdk_window_set_cursor(main_window->window, NULL);

	return rc;
}
Esempio n. 13
0
static void
saa_solid_manager_init (SaaSolidManager * mgr) {
	GtkWidget * but_numero, * but_wythoff, * but_filename;
	GtkWidget * image1, * image2, * image3;
	GtkObject * sbut_numero_adj;
	const gchar * filename_path;

	gtk_table_resize(GTK_TABLE(mgr), 3, 5);
	gtk_table_set_homogeneous(GTK_TABLE(mgr), FALSE);

	gtk_table_set_row_spacings (GTK_TABLE (mgr), 5);
	gtk_table_set_col_spacings (GTK_TABLE (mgr), 5);
	gtk_container_set_border_width (GTK_CONTAINER (mgr), 5);

	// Numero
	mgr->radio_numero = gtk_radio_button_new_with_label_from_widget (NULL, _("Number:"));
	gtk_widget_set_name(mgr->radio_numero, "numero-rad");
	gtk_widget_show (mgr->radio_numero);
	gtk_table_attach (GTK_TABLE (mgr), mgr->radio_numero, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);

	sbut_numero_adj = gtk_adjustment_new (1, 1, 80, 1, 10, 0);
	mgr->spin_numero = gtk_spin_button_new (GTK_ADJUSTMENT (sbut_numero_adj), 1, 0);
	gtk_widget_set_name(mgr->spin_numero, "numero-ent");
	gtk_widget_show (mgr->spin_numero);
	gtk_table_attach (GTK_TABLE (mgr), mgr->spin_numero, 1, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
	gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (mgr->spin_numero), TRUE);
	gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (mgr->spin_numero), TRUE);

	but_numero = gtk_button_new ();
	gtk_widget_set_name(but_numero, "numero-btn");
	gtk_widget_show (but_numero);
	gtk_table_attach (GTK_TABLE (mgr), but_numero, 2, 3, 0, 1, GTK_FILL, GTK_FILL, 0, 0);

	image1 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON);
	gtk_widget_show (image1);
	gtk_container_add (GTK_CONTAINER (but_numero), image1);

	// Wythoff
	mgr->radio_wythoff = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (mgr->radio_numero), _("Wythoff symbol:"));
	gtk_widget_set_name(mgr->radio_wythoff, "wythoff-rad");
	gtk_widget_show (mgr->radio_wythoff);
	gtk_table_attach (GTK_TABLE (mgr), mgr->radio_wythoff, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);

	mgr->entry_wythoff = gtk_entry_new ();
	gtk_widget_set_name(mgr->entry_wythoff, "wythoff-ent");
	gtk_widget_show (mgr->entry_wythoff);
	gtk_table_attach (GTK_TABLE (mgr), mgr->entry_wythoff, 1, 2, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
	gtk_entry_set_has_frame (GTK_ENTRY (mgr->entry_wythoff), FALSE);

	but_wythoff = gtk_button_new ();
	gtk_widget_set_name(but_wythoff, "wythoff-btn");
	gtk_widget_show (but_wythoff);
	gtk_table_attach (GTK_TABLE (mgr), but_wythoff, 2, 3, 1, 2, GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);

	image2 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON);
	gtk_widget_show (image2);
	gtk_container_add (GTK_CONTAINER (but_wythoff), image2);

	// Dual
	mgr->but_dual = gtk_toggle_button_new_with_mnemonic (_("Dual"));
	gtk_widget_set_name(mgr->but_dual, "numero-wythoff-dual-btn");
	gtk_widget_show (mgr->but_dual);
	gtk_table_attach (GTK_TABLE (mgr), mgr->but_dual, 3, 4, 0, 2, GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);

	// Filename
	mgr->radio_filename = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (mgr->radio_wythoff), _("File:"));
	gtk_widget_set_name(mgr->radio_filename, "filename-rad");
	gtk_widget_show (mgr->radio_filename);
	gtk_table_attach (GTK_TABLE (mgr), mgr->radio_filename, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);

	mgr->but_filename = gtk_file_chooser_button_new (_("Load a solid"), GTK_FILE_CHOOSER_ACTION_OPEN);
	gtk_widget_set_name(mgr->but_filename, "filename-but");
	gtk_widget_show (mgr->but_filename);
	gtk_table_attach (GTK_TABLE (mgr), mgr->but_filename, 1, 2, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
	filename_path = g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS);
	gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(mgr->but_filename), filename_path);


	but_filename = gtk_button_new ();
	gtk_widget_set_name(but_filename, "filename-btn");
	gtk_widget_show (but_filename);
	gtk_table_attach (GTK_TABLE (mgr), but_filename, 2, 3, 2, 3, GTK_FILL, GTK_SHRINK | GTK_FILL, 0, 0);

	image3 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON);
	gtk_widget_show (image3);
	gtk_container_add (GTK_CONTAINER (but_filename), image3);

	// Nom
	mgr->label_nom = gtk_label_new ("");
	gtk_widget_set_name(mgr->label_nom, "numero-wythoff-filename-lbl");
	gtk_widget_show (mgr->label_nom);
	gtk_table_attach (GTK_TABLE (mgr), mgr->label_nom, 0, 4, 4, 5, GTK_FILL, GTK_FILL, 0, 0);
	gtk_label_set_justify (GTK_LABEL (mgr->label_nom), GTK_JUSTIFY_CENTER);

	g_signal_connect_swapped ((gpointer) mgr->radio_numero, "toggled",
			G_CALLBACK (saa_solid_manager_radio_numero_toggled),
			mgr);
	g_signal_connect_swapped ((gpointer) mgr->radio_wythoff, "toggled",
			G_CALLBACK (saa_solid_manager_radio_wythoff_toggled),
			mgr);
	g_signal_connect_swapped ((gpointer) mgr->radio_filename, "toggled",
			G_CALLBACK (saa_solid_manager_radio_filename_toggled),
			mgr);

	g_signal_connect_swapped ((gpointer) but_numero, "clicked",
			G_CALLBACK (saa_solid_manager_numero_changed),
			mgr);

	g_signal_connect_swapped ((gpointer) but_wythoff, "clicked",
			G_CALLBACK (saa_solid_manager_wythoff_changed),
			mgr);

	g_signal_connect_swapped ((gpointer) but_filename, "clicked",
			G_CALLBACK (saa_solid_manager_filename_changed),
			mgr);

	g_signal_connect_swapped ((gpointer) mgr->but_dual, "toggled",
			G_CALLBACK (saa_solid_manager_dual_toggled),
			mgr);

	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mgr->radio_wythoff), TRUE);
	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mgr->radio_numero), TRUE);
}
Esempio n. 14
0
static void
saa_solid_display_init (SaaSolidDisplay * dsp) {
	GtkWidget * frs, * frar, * frai, * fro;
	GtkWidget * ts, * tar, * to, * hai;
	GtkWidget * bg_label;
	GtkObject * adjs = gtk_adjustment_new (.02, .02, .5, .001, .01, 0);
	GtkObject * adjar = gtk_adjustment_new (.01, .01, .2, .001, .01, 0);

	gtk_table_resize(GTK_TABLE(dsp), 4, 1);
	gtk_table_set_homogeneous(GTK_TABLE(dsp), TRUE);

	frs = gtk_frame_new(_("Vertices"));
	gtk_widget_show(frs);
	gtk_table_attach_defaults (GTK_TABLE (dsp), frs, 0, 1, 0, 1);

	ts = gtk_table_new(3, 2, TRUE);
	gtk_widget_show(ts);
	gtk_container_set_border_width (GTK_CONTAINER (ts), 5);
	gtk_container_add(GTK_CONTAINER(frs), ts);

	dsp->rads1 = gtk_radio_button_new_with_label(NULL, _("Do not display"));
	gtk_widget_show(dsp->rads1);
	gtk_table_attach_defaults (GTK_TABLE (ts), dsp->rads1, 0, 2, 0, 1);

	dsp->rads2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(dsp->rads1), _("Molecular"));
	gtk_widget_show(dsp->rads2);
	gtk_table_attach_defaults (GTK_TABLE (ts), dsp->rads2, 0, 1, 1, 2);

	dsp->rads3 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(dsp->rads2), _("Point"));
	gtk_widget_show(dsp->rads3);
	gtk_table_attach_defaults (GTK_TABLE (ts), dsp->rads3, 0, 1, 2, 3);

	dsp->spins = gtk_spin_button_new(GTK_ADJUSTMENT(adjs), 0.001, 3);
	gtk_widget_show(dsp->spins);
	gtk_table_attach (GTK_TABLE (ts), dsp->spins, 1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 0, 0);

	dsp->bts = gtk_color_button_new();
	gtk_widget_show(dsp->bts);
	gtk_table_attach (GTK_TABLE (ts), dsp->bts, 1, 2, 2, 3, GTK_SHRINK, GTK_SHRINK, 0, 0);

	frar = gtk_frame_new(_("Edges"));
	gtk_widget_show(frar);
	gtk_table_attach (GTK_TABLE (dsp), frar, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);

	tar = gtk_table_new(3, 2, TRUE);
	gtk_widget_show(tar);
	gtk_container_set_border_width (GTK_CONTAINER (tar), 5);
	gtk_container_add(GTK_CONTAINER(frar), tar);

	dsp->radar1 = gtk_radio_button_new_with_label(NULL, _("Do not display"));
	gtk_widget_show(dsp->radar1);
	gtk_table_attach_defaults (GTK_TABLE (tar), dsp->radar1, 0, 2, 0, 1);

	dsp->radar2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(dsp->radar1), _("Molecular"));
	gtk_widget_show(dsp->radar2);
	gtk_table_attach_defaults (GTK_TABLE (tar), dsp->radar2, 0, 1, 1, 2);

	dsp->radar3 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(dsp->radar2), _("Line"));
	gtk_widget_show(dsp->radar3);
	gtk_table_attach_defaults (GTK_TABLE (tar), dsp->radar3, 0, 1, 2, 3);

	dsp->spinar = gtk_spin_button_new(GTK_ADJUSTMENT(adjar), 0.001, 3);
	gtk_widget_show(dsp->spinar);
	gtk_table_attach (GTK_TABLE (tar), dsp->spinar, 1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 0, 0);

	dsp->btar = gtk_color_button_new();
	gtk_widget_show(dsp->btar);
	gtk_table_attach (GTK_TABLE (tar), dsp->btar, 1, 2, 2, 3, GTK_SHRINK, GTK_SHRINK, 0, 0);

	frai = gtk_frame_new(_("Wings"));
	gtk_widget_show(frai);
	gtk_table_attach (GTK_TABLE (dsp), frai, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);

	hai = gtk_vbox_new(TRUE, 5);
	gtk_widget_show(hai);
	gtk_container_set_border_width (GTK_CONTAINER (hai), 5);
	gtk_container_add(GTK_CONTAINER(frai), hai);

	dsp->radai1 = gtk_radio_button_new_with_label(NULL, _("Do not display"));
	gtk_widget_show(dsp->radai1);
	gtk_box_pack_start_defaults(GTK_BOX(hai), dsp->radai1);

	dsp->radai2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(dsp->radai1), _("Triangulation"));
	gtk_widget_show(dsp->radai2);
	gtk_box_pack_start_defaults(GTK_BOX(hai), dsp->radai2);

	dsp->radai3 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(dsp->radai2), _("Colour"));
	gtk_widget_show(dsp->radai3);
	gtk_box_pack_start_defaults(GTK_BOX(hai), dsp->radai3);

	fro = gtk_frame_new("Autres");
	gtk_widget_show(fro);
	gtk_table_attach_defaults (GTK_TABLE (dsp), fro, 0, 1, 3, 4);

	to = gtk_table_new(4, 2, TRUE);
	gtk_widget_show(to);
	gtk_container_set_border_width (GTK_CONTAINER (to), 5);
	gtk_container_add(GTK_CONTAINER(fro), to);

	dsp->chlight = gtk_check_button_new_with_label(_("Lighting"));
	gtk_widget_show(dsp->chlight);
	gtk_table_attach (GTK_TABLE (to), dsp->chlight, 0, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0);

	dsp->chtrans = gtk_check_button_new_with_label(_("Transparency"));
	gtk_widget_show(dsp->chtrans);
	gtk_table_attach (GTK_TABLE (to), dsp->chtrans, 0, 2, 1, 2, GTK_FILL, GTK_FILL, 0, 0);

	dsp->chaxes = gtk_check_button_new_with_label(_("Axes"));
	gtk_widget_show(dsp->chaxes);
	gtk_table_attach (GTK_TABLE (to), dsp->chaxes, 0, 2, 2, 3, GTK_FILL, GTK_FILL, 0, 0);

	bg_label = gtk_label_new(_("Background"));
	gtk_widget_show(bg_label);
	gtk_table_attach_defaults (GTK_TABLE (to), bg_label, 0, 1, 3, 4);

	dsp->btbg = gtk_color_button_new();
	gtk_widget_show(dsp->btbg);
	gtk_table_attach (GTK_TABLE (to), dsp->btbg, 1, 2, 3, 4, GTK_SHRINK, GTK_SHRINK, 0, 0);

	g_signal_connect_swapped ((gpointer) dsp->rads1, "toggled",
			G_CALLBACK (saa_solid_display_s1),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->rads2, "toggled",
			G_CALLBACK (saa_solid_display_s2),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->rads3, "toggled",
			G_CALLBACK (saa_solid_display_s3),
			dsp);

	g_signal_connect_swapped ((gpointer) dsp->radar1, "toggled",
			G_CALLBACK (saa_solid_display_ar1),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->radar2, "toggled",
			G_CALLBACK (saa_solid_display_ar2),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->radar3, "toggled",
			G_CALLBACK (saa_solid_display_ar3),
			dsp);

	g_signal_connect_swapped ((gpointer) dsp->radai1, "toggled",
			G_CALLBACK (saa_solid_display_ai1),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->radai2, "toggled",
			G_CALLBACK (saa_solid_display_ai2),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->radai3, "toggled",
			G_CALLBACK (saa_solid_display_ai3),
			dsp);

	g_signal_connect_swapped ((gpointer) dsp->chlight, "toggled",
			G_CALLBACK (saa_solid_display_light),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->chtrans, "toggled",
			G_CALLBACK (saa_solid_display_trans),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->chaxes, "toggled",
			G_CALLBACK (saa_solid_display_axes),
			dsp);

	g_signal_connect_swapped ((gpointer) dsp->btbg, "color-set",
			G_CALLBACK (saa_solid_display_bgcolor),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->bts, "color-set",
			G_CALLBACK (saa_solid_display_scolor),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->btar, "color-set",
			G_CALLBACK (saa_solid_display_arcolor),
			dsp);

	g_signal_connect_swapped ((gpointer) dsp->spins, "value-changed",
			G_CALLBACK (saa_solid_display_ssize),
			dsp);
	g_signal_connect_swapped ((gpointer) dsp->spinar, "value-changed",
			G_CALLBACK (saa_solid_display_arsize),
			dsp);

}