Example #1
0
EXPORT gboolean init_text_attributes(GladeXML *xml)
{
    extern GdkColor white;
    extern GdkColor black;
    GtkWidget *notebook = NULL;
    GtkWidget *child = NULL;

    notebook = glade_xml_get_widget(xml,"value_notebook");
    child = glade_xml_get_widget(xml,"value_text_table");
    gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),child,TRUE,TRUE,GTK_PACK_START);
    child = glade_xml_get_widget(xml,"value_font_table");
    gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),child,TRUE,TRUE,GTK_PACK_START);
    child = glade_xml_get_widget(xml,"value_location_table");
    gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),child,TRUE,TRUE,GTK_PACK_START);
    OBJ_SET((glade_xml_get_widget(xml,"precision_spin")),"handler",GINT_TO_POINTER(PRECISION));
    OBJ_SET((glade_xml_get_widget(xml,"value_xpos_spin")),"handler",GINT_TO_POINTER(VALUE_XPOS));
    OBJ_SET((glade_xml_get_widget(xml,"value_ypos_spin")),"handler",GINT_TO_POINTER(VALUE_YPOS));
    OBJ_SET((glade_xml_get_widget(xml,"value_grab_button")),"x_spin",glade_xml_get_widget(xml,"value_xpos_spin"));
    OBJ_SET((glade_xml_get_widget(xml,"value_grab_button")),"y_spin",glade_xml_get_widget(xml,"value_ypos_spin"));
    OBJ_SET((glade_xml_get_widget(xml,"value_font_scale_spin")),"handler",GINT_TO_POINTER(VALUE_FONTSCALE));
    OBJ_SET((glade_xml_get_widget(xml,"value_color_day_button")),"handler",GINT_TO_POINTER(GAUGE_COL_VALUE_FONT_DAY));
    OBJ_SET((glade_xml_get_widget(xml,"value_color_nite_button")),"handler",GINT_TO_POINTER(GAUGE_COL_VALUE_FONT_NITE));
    OBJ_SET((glade_xml_get_widget(xml,"show_value_check")),"handler",GINT_TO_POINTER(SHOW_VALUE));
    gtk_color_button_set_color(GTK_COLOR_BUTTON(glade_xml_get_widget(xml,"value_color_day_button")),&white);
    gtk_color_button_set_color(GTK_COLOR_BUTTON(glade_xml_get_widget(xml,"value_color_nite_button")),&black);

    update_text_controls();
    update_onscreen_tblocks();
    return TRUE;
}
Example #2
0
/* Sets the packing parameters for the bookmark of child.
 * See GtkBoxPackStart for the exact meanings. */
int
clip_GTK_NOTEBOOKSETTABLABELPACKING(ClipMachine * ClipMachineMemory)
{
   C_widget *cntb = _fetch_cw_arg(ClipMachineMemory);

   C_widget *cchild = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2));

   gboolean  expand = _clip_parl(ClipMachineMemory, 3);

   gboolean  fill = _clip_parl(ClipMachineMemory, 4);

   guint     packing_type = _clip_parni(ClipMachineMemory, 5);

   CHECKCWID(cntb, GTK_IS_NOTEBOOK);
   CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   CHECKCWID(cchild, GTK_IS_WIDGET);
   CHECKOPT(3, LOGICAL_type_of_ClipVarType);
   CHECKOPT(4, LOGICAL_type_of_ClipVarType);
   CHECKOPT(5, NUMERIC_type_of_ClipVarType);
   if (_clip_parinfo(ClipMachineMemory, 3) == UNDEF_type_of_ClipVarType)
      expand = TRUE;
   if (_clip_parinfo(ClipMachineMemory, 4) == UNDEF_type_of_ClipVarType)
      fill = TRUE;
   gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(cntb->widget), cchild->widget, expand, fill, packing_type);
   return 0;
 err:
   return 1;
}
Example #3
0
void
empathy_chat_window_add_chat (EmpathyChatWindow *window,
			      EmpathyChat	*chat)
{
	EmpathyChatWindowPriv *priv;
	GtkWidget             *label;
	GtkWidget             *child;
	gint                   x, y, w, h;

	g_return_if_fail (window != NULL);
	g_return_if_fail (EMPATHY_IS_CHAT (chat));

	priv = GET_PRIV (window);

	/* Reference the chat object */
	g_object_ref (chat);

	/* If this window has just been created, position it */
	if (priv->chats == NULL) {
		empathy_geometry_load (chat_get_window_id_for_geometry (chat), &x, &y, &w, &h);
		
		if (x >= 0 && y >= 0) {
			/* Let the window manager position it if we don't have
			 * good x, y coordinates.
			 */
			gtk_window_move (GTK_WINDOW (priv->dialog), x, y);
		}
		
		if (w > 0 && h > 0) {
			/* Use the defaults from the glade file if we don't have
			 * good w, h geometry.
			 */
			gtk_window_resize (GTK_WINDOW (priv->dialog), w, h);
		}
	}

	child = GTK_WIDGET (chat);
	label = chat_window_create_label (window, chat); 
	gtk_widget_show (child);

	g_signal_connect (chat, "notify::name",
			  G_CALLBACK (chat_window_chat_notify_cb),
			  NULL);
	g_signal_connect (chat, "notify::subject",
			  G_CALLBACK (chat_window_chat_notify_cb),
			  NULL);
	g_signal_connect (chat, "notify::remote-contact",
			  G_CALLBACK (chat_window_chat_notify_cb),
			  NULL);
	chat_window_chat_notify_cb (chat);

	gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook), child, label);
	gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (priv->notebook), child, TRUE);
	gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (priv->notebook), child, TRUE);
	gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (priv->notebook), child,
					    TRUE, TRUE, GTK_PACK_START); 

	DEBUG ("Chat added (%d references)", G_OBJECT (chat)->ref_count);
}
Example #4
0
static VALUE
rg_set_tab_label_packing(VALUE self, VALUE child, VALUE expand, VALUE fill, VALUE pack_type)
{
    gtk_notebook_set_tab_label_packing(_SELF(self),
                                       RVAL2WIDGET(child),
                                       RVAL2CBOOL(expand), RVAL2CBOOL(fill),
                                       RVAL2GENUM(pack_type, GTK_TYPE_PACK_TYPE));
    return self;
}
Example #5
0
static void
menu_popup_current_page_cb(GtkWidget *widget, HybridChatWindow *chat)
{
    HybridChatWindow *newchat;
    GtkWidget        *vbox;
    gint              page_index;

    HybridConversation *newconv;
    HybridConversation *parent;
    HybridBuddy        *buddy;

    vbox = chat->vbox;
    /*
     * First we increase the reference value of vbox,
     * prevent it from being destroyed by gtk_notebook_remove_page().
     */
    g_object_ref(vbox);

    /*
     * When closing the chat panel, the chat object will be destroyed,
     * so we must store the buddy first before closing the tab.
     */
    buddy = chat->data;

    close_tab(chat);

    parent = chat->parent;

    newconv = hybrid_conv_create();
    conv_list = g_slist_append(conv_list, newconv);
    gtk_notebook_set_show_tabs(GTK_NOTEBOOK(newconv->notebook), FALSE);

    newchat               = g_new0(HybridChatWindow, 1);
    newchat->parent       = newconv;
    newchat->data         = buddy;
    newchat->vbox         = vbox;
    newconv->chat_buddies = g_slist_append(newconv->chat_buddies, newchat);

    newchat->pagelabel = create_note_label(newchat);
    page_index = gtk_notebook_append_page(GTK_NOTEBOOK(newconv->notebook),
                    vbox, newchat->pagelabel);
    gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(newconv->notebook), vbox, TRUE);
    gtk_notebook_set_tab_detachable(GTK_NOTEBOOK(newconv->notebook), vbox, TRUE);
    gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(newconv->notebook),
            vbox, TRUE, TRUE, GTK_PACK_START);
}
Example #6
0
/**
 * Initialize the chat panel.
 */
static void
init_chat_window(HybridChatWindow *chat)
{
    GtkWidget          *vbox;
    HybridConversation *conv;
    gint                page_index;

    g_return_if_fail(chat != NULL);

    conv = chat->parent;

    if (g_slist_length(conv->chat_buddies) == 1) {
        gtk_notebook_set_show_tabs(GTK_NOTEBOOK(conv->notebook), FALSE);

    } else {
        gtk_notebook_set_show_tabs(GTK_NOTEBOOK(conv->notebook), TRUE);
    }

    vbox = gtk_vbox_new(FALSE, 0);
    gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
    chat->vbox = vbox;

    chat->pagelabel = create_note_label(chat);
    page_index = gtk_notebook_append_page(GTK_NOTEBOOK(conv->notebook), vbox,
            chat->pagelabel);
    gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(conv->notebook), vbox, TRUE);
    gtk_notebook_set_tab_detachable(GTK_NOTEBOOK(conv->notebook), vbox, TRUE);
    gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(conv->notebook),
            vbox, TRUE, TRUE, GTK_PACK_START);

    init_chat_window_body(vbox, chat);

    /*
     * The function should stay here. Because of the following reason:
     *
     * Note that due to historical reasons, GtkNotebook refuses to
     * switch to a page unless the child widget is visible.
     *                                ---- GtkNotebook
     */
    gtk_notebook_set_current_page(GTK_NOTEBOOK(conv->notebook), page_index);

    /* focus the send textview */
    gtk_widget_grab_focus(chat->sendtext);
}
Example #7
0
GtkWidget * build_tblock(MtxTextBlock *tblock, gint index)
{
	/* MUCH faster that the glade way unfortunately */
	GtkWidget *notebook = NULL;
	GtkWidget *table = NULL;
	GtkWidget *subtable = NULL;
	GtkWidget *widget = NULL;
	GtkWidget *x_spin = NULL;
	GtkWidget *y_spin = NULL;
	GtkWidget *hbox = NULL;
	GtkWidget *img = NULL;
	GtkWidget *label = NULL;
	GtkWidget *minitable = NULL;
	gchar * tmpbuf = NULL;

	table = gtk_table_new(2,2,FALSE);

	/* Close button */
	widget = gtk_button_new();
	img = gtk_image_new_from_stock("gtk-close",GTK_ICON_SIZE_MENU);
	gtk_container_add(GTK_CONTAINER(widget),img);
	OBJ_SET((widget),"tblock_index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"clicked", G_CALLBACK(remove_tblock),NULL);
	gtk_table_attach(GTK_TABLE(table),widget,0,1,0,4,0,0,0,0);

	notebook = gtk_notebook_new();
	gtk_table_attach(GTK_TABLE(table),notebook,1,2,0,1,GTK_EXPAND|GTK_FILL,0,0,0);
	/* text, color buttons */
	subtable = gtk_table_new(1,4,FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(subtable),5);
	label = gtk_label_new("Text & Color");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);
	widget = gtk_label_new("Text:");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,1,GTK_FILL,0,0,0);

	widget = gtk_entry_new();
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TB_TEXT));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	gtk_entry_set_width_chars(GTK_ENTRY(widget),12);
	gtk_entry_set_text(GTK_ENTRY(widget),tblock->text);
	g_signal_connect(G_OBJECT(widget),"changed",G_CALLBACK(alter_tblock_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,1,GTK_EXPAND|GTK_FILL,0,0,0);
	widget = gtk_color_button_new_with_color(&tblock->color[MTX_DAY]);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TB_COLOR_DAY));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"color_set",G_CALLBACK(alter_tblock_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,0,1,GTK_FILL,0,0,0);

	widget = gtk_color_button_new_with_color(&tblock->color[MTX_NITE]);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TB_COLOR_NITE));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"color_set",G_CALLBACK(alter_tblock_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,0,1,GTK_FILL,0,0,0);

	/* font, font scale spinner */
	subtable = gtk_table_new(1,4,FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(subtable),5);
	label = gtk_label_new("Font");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);

	widget = gtk_label_new("Font:");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,1,GTK_FILL,0,0,0);

	widget = gtk_font_button_new();
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TB_FONT));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	tmpbuf = g_strdup_printf("%s 12",tblock->font);
	gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget),tmpbuf);
	gtk_font_button_set_show_size(GTK_FONT_BUTTON(widget),FALSE);
	gtk_font_button_set_use_size(GTK_FONT_BUTTON(widget),FALSE);
	gtk_font_button_set_use_font(GTK_FONT_BUTTON(widget),FALSE);
	g_free(tmpbuf);
	g_signal_connect(G_OBJECT(widget),"font_set",G_CALLBACK(alter_tblock_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,1,GTK_EXPAND|GTK_FILL,0,0,0);

	widget = gtk_label_new("Font\nScale");
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,0,1,0,0,0,0);

	widget = gtk_spin_button_new_with_range(0.001,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TB_FONT_SCALE));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tblock->font_scale, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tblock_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,0,1,0,0,0,0);

	/* Location Tab: Edit button, X/Y position spinners */
	subtable = gtk_table_new(1,4,FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(subtable),5);
	label = gtk_label_new("Location");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);

	widget = gtk_label_new("Position:");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,1,GTK_FILL,0,0,0);

	/* X position minilayout table */
	minitable = gtk_table_new(1,2,FALSE);
	gtk_table_attach(GTK_TABLE(subtable),minitable,2,3,0,1,GTK_EXPAND,0,0,0);
	widget = gtk_label_new("X:");
	gtk_table_attach(GTK_TABLE(minitable),widget,0,1,0,1,GTK_FILL,0,0,0);
	widget = gtk_spin_button_new_with_range(-1.0,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TB_X_POS));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tblock->x_pos, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tblock_data),NULL);
	gtk_table_attach(GTK_TABLE(minitable),widget,1,2,0,1,GTK_FILL,0,0,0);
	x_spin = widget;

	/* Y position minilayout table */
	minitable = gtk_table_new(1,2,FALSE);
	gtk_table_attach(GTK_TABLE(subtable),minitable,3,4,0,1,GTK_FILL|GTK_EXPAND,0,0,0);
	widget = gtk_label_new("Y:");
	gtk_table_attach(GTK_TABLE(minitable),widget,0,1,0,1,GTK_FILL,0,0,0);
	widget = gtk_spin_button_new_with_range(-1.0,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TB_Y_POS));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tblock->y_pos, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tblock_data),NULL);
	gtk_table_attach(GTK_TABLE(minitable),widget,1,2,0,1,GTK_FILL,0,0,0);
	y_spin = widget;

	widget = gtk_button_new();
	OBJ_SET(widget,"x_spin",x_spin);
	OBJ_SET(widget,"y_spin",y_spin);
	hbox = gtk_hbox_new(FALSE,0);
	gtk_container_add(GTK_CONTAINER(widget),hbox);
	img = gtk_image_new_from_stock("gtk-edit",GTK_ICON_SIZE_MENU);
	gtk_box_pack_start(GTK_BOX(hbox),img,FALSE,FALSE,0);
	label = gtk_label_new("Edit");
	gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,0);
	g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(grab_coords_event),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,1,GTK_EXPAND|GTK_FILL,0,0,0);
  
	/* Layer Tab: Layer */
	subtable = gtk_table_new(1,4,FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(subtable),5);
	label = gtk_label_new("Layer");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);

	widget = gtk_label_new("Layer:");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,1,GTK_FILL,0,0,0);
	widget = gtk_spin_button_new_with_range(0.0,10.0,1.0);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TB_LAYER));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 1.0, "digits", 0, "numeric", TRUE, NULL);
	gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),(gfloat)tblock->layer);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tblock_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,1,GTK_FILL,0,0,0);

	widget = gtk_hseparator_new();
	gtk_table_attach(GTK_TABLE(table),widget,0,2,1,2,GTK_FILL,0,0,0);
	return table;
}
Example #8
0
static gboolean dialog_select_source(int chan_num)
{
    scope_vert_t *vert;
    scope_chan_t *chan;
    dialog_generic_t dialog;
    gchar *title, msg[BUFLEN];
    int next, n, initial_page, row, initial_row, max_row;
    gchar *tab_label_text[3], *name;
    GtkWidget *hbox, *label, *notebk, *button;
    GtkAdjustment *adj;
    hal_pin_t *pin;
    hal_sig_t *sig;
    hal_param_t *param;

    vert = &(ctrl_usr->vert);
    chan = &(ctrl_usr->chan[chan_num - 1]);
    title = _("Select Channel Source");
    snprintf(msg, BUFLEN - 1, _("Select a pin, signal, or parameter\n"
	"as the source for channel %d."), chan_num);
    /* create dialog window, disable resizing */
    dialog.retval = 0;
    dialog.window = gtk_dialog_new();
    dialog.app_data = &chan_num;
    /* set initial height of window */
    gtk_widget_set_usize(GTK_WIDGET(dialog.window), -2, 300);
    /* allow user to grow but not shrink the window */
    gtk_window_set_policy(GTK_WINDOW(dialog.window), FALSE, TRUE, FALSE);
    /* window should appear in center of screen */
    gtk_window_set_position(GTK_WINDOW(dialog.window), GTK_WIN_POS_CENTER);
    /* set title */
    gtk_window_set_title(GTK_WINDOW(dialog.window), title);
    /* display message */
    label = gtk_label_new(msg);
    gtk_misc_set_padding(GTK_MISC(label), 15, 5);
    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog.window)->vbox), label, FALSE,
	TRUE, 0);

    /* a separator */
    gtk_hseparator_new_in_box(GTK_DIALOG(dialog.window)->vbox, 0);

    /* create a notebook to hold pin, signal, and parameter lists */
    notebk = gtk_notebook_new();
    /* add the notebook to the dialog */
    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog.window)->vbox), notebk, TRUE,
	TRUE, 0);
    /* set overall notebook parameters */
    gtk_notebook_set_homogeneous_tabs(GTK_NOTEBOOK(notebk), TRUE);
    gtk_signal_connect(GTK_OBJECT(notebk), "switch-page", GTK_SIGNAL_FUNC(change_page), &dialog);
    /* text for tab labels */
    tab_label_text[0] = _("Pins");
    tab_label_text[1] = _("Signals");
    tab_label_text[2] = _("Parameters");
    /* loop to create three identical tabs */
    for (n = 0; n < 3; n++) {
	/* Create a scrolled window to display the list */
	vert->windows[n] = gtk_scrolled_window_new(NULL, NULL);
	vert->adjs[n] = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(vert->windows[n]));
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(vert->windows[n]),
	    GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
	gtk_widget_show(vert->windows[n]);
	/* create a list to hold the data */
	vert->lists[n] = gtk_clist_new(1);
	/* set up a callback for when the user selects a line */
	gtk_signal_connect(GTK_OBJECT(vert->lists[n]), "select_row",
	    GTK_SIGNAL_FUNC(selection_made), &dialog);
	gtk_signal_connect(GTK_OBJECT(vert->lists[n]), "key-press-event",
	    GTK_SIGNAL_FUNC(search_for_entry), &dialog);
	/* It isn't necessary to shadow the border, but it looks nice :) */
	gtk_clist_set_shadow_type(GTK_CLIST(vert->lists[n]), GTK_SHADOW_OUT);
	/* set list for single selection only */
	gtk_clist_set_selection_mode(GTK_CLIST(vert->lists[n]),
	    GTK_SELECTION_BROWSE);
	/* put the list into the scrolled window */
	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW
	    (vert->windows[n]), vert->lists[n]);
	/* another way to do it - not sure which is better
	gtk_container_add(GTK_CONTAINER(vert->windows[n]), vert->lists[n]); */
	gtk_widget_show(vert->lists[n]);
	/* create a box for the tab label */
	hbox = gtk_hbox_new(TRUE, 0);
	/* create a label for the page */
	gtk_label_new_in_box(tab_label_text[n], hbox, TRUE, TRUE, 0);
	gtk_widget_show(hbox);
	/* add page to the notebook */
	gtk_notebook_append_page(GTK_NOTEBOOK(notebk), vert->windows[n], hbox);
	/* set tab attributes */
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebk), hbox,
	    TRUE, TRUE, GTK_PACK_START);
    }
    /* determine initial page: pin, signal, or parameter */
    if (( chan->data_source_type >= 0 ) && ( chan->data_source_type <= 2 )) {
	initial_page = chan->data_source_type;
	gtk_notebook_set_page(GTK_NOTEBOOK(notebk), initial_page);
    } else {
	initial_page = -1;
	gtk_notebook_set_page(GTK_NOTEBOOK(notebk), 0);
    }
    gtk_widget_show(notebk);

    /* populate the pin, signal, and parameter lists */
    gtk_clist_clear(GTK_CLIST(vert->lists[0]));
    gtk_clist_clear(GTK_CLIST(vert->lists[1]));
    gtk_clist_clear(GTK_CLIST(vert->lists[2]));
    rtapi_mutex_get(&(hal_data->mutex));
    next = hal_data->pin_list_ptr;
    initial_row = -1;
    max_row = -1;
    while (next != 0) {
	pin = SHMPTR(next);
	name = pin->name;
	row = gtk_clist_append(GTK_CLIST(vert->lists[0]), &name);
	if ( initial_page == 0 ) {
	    if ( strcmp(name, chan->name) == 0 ) {
		initial_row = row;
	    }
	    max_row = row;
	}
	next = pin->next_ptr;
    }
    next = hal_data->sig_list_ptr;
    while (next != 0) {
	sig = SHMPTR(next);
	name = sig->name;
	row = gtk_clist_append(GTK_CLIST(vert->lists[1]), &name);
	if ( initial_page == 1 ) {
	    if ( strcmp(name, chan->name) == 0 ) {
		initial_row = row;
	    }
	    max_row = row;
	}
	next = sig->next_ptr;
    }
    next = hal_data->param_list_ptr;
    while (next != 0) {
	param = SHMPTR(next);
	name = param->name;
	row = gtk_clist_append(GTK_CLIST(vert->lists[2]), &name);
	if ( initial_page == 2 ) {
	    if ( strcmp(name, chan->name) == 0 ) {
		initial_row = row;
	    }
	    max_row = row;
	}
	next = param->next_ptr;
    }
    rtapi_mutex_give(&(hal_data->mutex));
    
    if ( initial_row >= 0 ) {
	/* highlight the currently selected name */
	gtk_clist_select_row(GTK_CLIST(vert->lists[initial_page]), initial_row, -1);
	/* set scrolling window to show the highlighted name */
	/* FIXME - I can't seem to get this to work */
	adj = vert->adjs[initial_page];
	adj->value = adj->lower + (adj->upper - adj->lower)*((double)(initial_row)/(double)(max_row+1));
	gtk_adjustment_value_changed(vert->adjs[initial_page]);
    }
    /* set up a callback function when the window is destroyed */
    gtk_signal_connect(GTK_OBJECT(dialog.window), "destroy",
	GTK_SIGNAL_FUNC(dialog_generic_destroyed), &dialog);
    /* make Cancel button */
    button = gtk_button_new_with_label(_("Cancel"));
    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog.window)->action_area),
	button, TRUE, TRUE, 4);
    gtk_signal_connect(GTK_OBJECT(button), "clicked",
	GTK_SIGNAL_FUNC(dialog_generic_button2), &dialog);
    /* make window transient and modal */
    gtk_window_set_transient_for(GTK_WINDOW(dialog.window),
	GTK_WINDOW(ctrl_usr->main_win));
    gtk_window_set_modal(GTK_WINDOW(dialog.window), TRUE);
    gtk_widget_show_all(dialog.window);
    gtk_main();
    /* we get here when the user makes a selection, hits Cancel, or closes
       the window */
    vert->lists[0] = NULL;
    vert->lists[1] = NULL;
    vert->lists[2] = NULL;
    if ((dialog.retval == 0) || (dialog.retval == 2)) {
	/* user either closed dialog, or hit cancel */
	return FALSE;
    }
    /* user made a selection */
    channel_changed();
    return TRUE;
}
Example #9
0
void open_new_tab_cb (GtkMenuItem *button, MinimoBrowser *browser)
{
  GtkWidget *page_label;
  gint num_pages;
  gchar *page_title;
  gint current_page;
  
  g_return_if_fail(browser->notebook != NULL);
  
  /* right button click emulation initialization */
  rButtonClick = (RightButtonClick*) malloc(sizeof(RightButtonClick));
  rButtonClick->sig_handler= 0;
  rButtonClick->is_connected= FALSE;
  
  num_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (browser->notebook));
  page_title = g_strdup_printf("%d",num_pages+1);
  page_label = gtk_label_new (page_title);
  
  browser->mozEmbed = gtk_moz_embed_new();
  
  gtk_notebook_append_page (GTK_NOTEBOOK (browser->notebook), browser->mozEmbed, page_label);
  gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (browser->notebook), browser->mozEmbed, FALSE, FALSE, GTK_PACK_START);
  gtk_widget_show (browser->mozEmbed);
  
  current_page = gtk_notebook_page_num (GTK_NOTEBOOK (browser->notebook), browser->mozEmbed);
  gtk_notebook_set_current_page (GTK_NOTEBOOK (browser->notebook), current_page);
  browser->active_page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (browser->notebook), current_page);
  
  num_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (browser->notebook));
  
  browser->progressPopup = create_minimo_progress(browser);
  
  gtk_box_pack_start(GTK_BOX(browser->topLevelVBox), 
                     browser->progressPopup,
                     FALSE, // expand
                     FALSE, // fill
                     0);   // padding
  
  /* applying the Signal into the new Render Engine - MozEmbed */
  // hook up the title change to update the window title
  g_signal_connect (GTK_OBJECT  (browser->mozEmbed), "title",       G_CALLBACK (title_changed_cb), browser);
  g_signal_connect (GTK_OBJECT  (browser->mozEmbed), "location",    G_CALLBACK(location_changed_cb), page_label);
  
  // hook up the start and stop signals
  g_signal_connect (GTK_OBJECT  (browser->mozEmbed), "net_start",   G_CALLBACK(load_started_cb), browser);
  g_signal_connect (GTK_OBJECT  (browser->mozEmbed), "net_stop",    G_CALLBACK(load_finished_cb), browser);
  
  // hookup to see whenever a new window is requested
  //g_signal_connect (GTK_OBJECT  (browser->mozEmbed), "new_window",  G_CALLBACK(new_window_cb), browser);
  
  // hookup to any requested visibility changes
  g_signal_connect(GTK_OBJECT(browser->mozEmbed), "visibility",     G_CALLBACK(visibility_cb), browser);
  
  // hookup to the signal that is called when someone clicks on a link to load a new uri
  g_signal_connect (GTK_OBJECT  (browser->mozEmbed), "open_uri",    G_CALLBACK(open_uri_cb), browser);
  
  // this signal is emitted when there's a request to change the containing browser window to a certain height, like with width
  // and height args for a window.open in javascript
  g_signal_connect (GTK_OBJECT  (browser->mozEmbed), "size_to",     G_CALLBACK(size_to_cb), browser);
  g_signal_connect (GTK_OBJECT  (browser->mozEmbed), "link_message",G_CALLBACK (link_message_cb), browser);
  
  // this signals are emitted when the mouse is clicked, then we can measure the time between pressed and released for left click or right click
  g_signal_connect (GTK_OBJECT (browser->mozEmbed), "dom_mouse_down", G_CALLBACK(on_button_pressed_cb), browser);
  g_signal_connect (GTK_OBJECT (browser->mozEmbed), "dom_mouse_up", G_CALLBACK(on_button_released_cb), browser);
  
  gMinimoNumBrowsers= num_pages;
}
Example #10
0
static void
debug_logger_create_domain_page(DebugLogger *logger,
                                DomainHandler *handler,
                                const gchar *domain_name)
{
    GtkWidget *tab_label, *scrolled_window, *treeview;
    GtkListStore *list_store;
    GtkTreeViewColumn *column;
    GtkCellRenderer *renderer;
    GtkTreeSelection *selection;
    GtkHBox *hbox;
    GtkImage *image;

    g_return_if_fail(IS_DEBUG_LOGGER(logger));

    tab_label = gtk_label_new(domain_name);
    scrolled_window = gtk_scrolled_window_new(NULL, NULL);

    g_object_set(G_OBJECT(scrolled_window),
            "hscrollbar-policy", GTK_POLICY_AUTOMATIC,
            "vscrollbar-policy", GTK_POLICY_AUTOMATIC,
            NULL);

    list_store = gtk_list_store_new(N_COLUMNS,
            G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
    treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store));
    g_object_unref(list_store);

    g_object_set(G_OBJECT(treeview),
            "rubber-banding", TRUE,
            NULL);

    renderer = gtk_cell_renderer_text_new();
    column = gtk_tree_view_column_new_with_attributes (_("Type"),
            renderer,
            "text", TYPE_COLUMN,
            NULL);
    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);

    renderer = gtk_cell_renderer_text_new();
    column = gtk_tree_view_column_new_with_attributes (_("Message"),
            renderer,
            "text", MSG_COLUMN,
            "foreground", COLOR_COLUMN,
            NULL);
    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);

    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
    gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);

    gtk_container_add(GTK_CONTAINER(scrolled_window), treeview);

    hbox = GTK_HBOX(gtk_hbox_new(FALSE, 0));
    image = GTK_IMAGE(gtk_image_new_from_stock(GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU));

    gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(image), FALSE, FALSE, 0);
    gtk_box_pack_start(GTK_BOX(hbox), tab_label, TRUE, TRUE, 0);

    gtk_widget_show_all(GTK_WIDGET(hbox));

    gtk_notebook_append_page(logger->priv->notebook, scrolled_window, GTK_WIDGET(hbox));
    gtk_notebook_set_tab_label_packing(logger->priv->notebook, scrolled_window,
            TRUE, TRUE, GTK_PACK_START);

    gtk_widget_show_all(GTK_WIDGET(logger->priv->notebook));

    handler->child = scrolled_window;
    handler->view = GTK_TREE_VIEW(treeview);

    gtk_widget_set_sensitive(logger->priv->toolbar_save, TRUE);
    gtk_widget_set_sensitive(logger->priv->toolbar_copy, TRUE);
    gtk_widget_set_sensitive(logger->priv->toolbar_select, TRUE);
    gtk_widget_set_sensitive(logger->priv->toolbar_clear, TRUE);
}
Example #11
0
GtkWidget*
create_main_window (void)
{
  GtkWidget *main_window;
  GdkPixbuf *main_window_icon_pixbuf;
  GtkWidget *hbox12;
  GtkWidget *vbox30;
  GtkWidget *expander1;
  GtkWidget *hbox6;
  GtkWidget *label11;
  GtkWidget *vbox5;
  GtkWidget *hbox7;
  GtkWidget *label12;
  GtkWidget *hbox9;
  GtkWidget *server;
  GtkWidget *connect;
  GtkWidget *alignment7;
  GtkWidget *hbox11;
  GtkWidget *image7;
  GtkWidget *label18;
  GtkWidget *login_at_connect;
  GtkWidget *hbox8;
  GtkWidget *label14;
  GtkWidget *table1;
  GtkWidget *label13;
  GtkWidget *label15;
  GtkWidget *login;
  GtkWidget *password;
  GtkWidget *label17;
  GtkWidget *label10;
  GtkWidget *hbox1;
  GtkWidget *frame1;
  GtkWidget *alignment3;
  GtkWidget *console_tabs;
  GtkWidget *alignment4;
  GtkWidget *vbox1;
  GtkWidget *console_scroll;
  GtkWidget *console_view;
  GtkWidget *label4;
  GtkWidget *hbox2;
  GtkWidget *image1;
  GtkWidget *cmd_entry;
  GtkWidget *btn_cmdSend;
  GtkWidget *label6;
  GtkWidget *alignment5;
  GtkWidget *pipe_scroll;
  GtkWidget *pipe_view;
  GtkWidget *label7;
  GtkWidget *label2;
  GtkWidget *vbox2;
  GtkWidget *frame2;
  GtkWidget *alignment2;
  GtkWidget *vbox3;
  GtkWidget *ctrlButton_0;
  GtkWidget *ctrlButton_1;
  GtkWidget *ctrlButton_2;
  GtkWidget *ctrlButton_3;
  GtkWidget *alignment6;
  GtkWidget *hbox3;
  GtkWidget *image2;
  GtkWidget *hbox4;
  GtkWidget *queue_progress;
  GtkWidget *queue_usage;
  GtkWidget *label9;
  GtkWidget *image3;
  GtkWidget *hbox5;
  GtkWidget *belts_progress;
  GtkWidget *belts_usage;
  GtkWidget *ctrlButton_4;
  GtkWidget *ctrlButton_5;
  GtkWidget *ctrlButton_6;
  GtkWidget *label5;
  GtkWidget *label3;
  GtkWidget *label8;
  GtkWidget *image6;

  main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW (main_window), _("WebTester Server Console"));
  gtk_window_set_resizable (GTK_WINDOW (main_window), FALSE);
  main_window_icon_pixbuf = create_pixbuf ("wt32.png");
  if (main_window_icon_pixbuf)
    {
      gtk_window_set_icon (GTK_WINDOW (main_window), main_window_icon_pixbuf);
      gdk_pixbuf_unref (main_window_icon_pixbuf);
    }

  hbox12 = gtk_hbox_new (FALSE, 0);
  gtk_widget_show (hbox12);
  gtk_container_add (GTK_CONTAINER (main_window), hbox12);

  vbox30 = gtk_vbox_new (FALSE, 0);
  gtk_widget_show (vbox30);
  gtk_box_pack_start (GTK_BOX (hbox12), vbox30, TRUE, TRUE, 0);

  expander1 = gtk_expander_new (NULL);
  gtk_widget_show (expander1);
  gtk_box_pack_start (GTK_BOX (vbox30), expander1, FALSE, TRUE, 0);
  gtk_widget_set_size_request (expander1, 640, -1);
  gtk_expander_set_expanded (GTK_EXPANDER (expander1), TRUE);

  hbox6 = gtk_hbox_new (FALSE, 2);
  gtk_widget_show (hbox6);
  gtk_container_add (GTK_CONTAINER (expander1), hbox6);

  label11 = gtk_label_new ("");
  gtk_widget_show (label11);
  gtk_box_pack_start (GTK_BOX (hbox6), label11, FALSE, FALSE, 0);
  gtk_widget_set_size_request (label11, 16, -1);

  vbox5 = gtk_vbox_new (FALSE, 0);
  gtk_widget_show (vbox5);
  gtk_box_pack_start (GTK_BOX (hbox6), vbox5, FALSE, TRUE, 0);

  hbox7 = gtk_hbox_new (FALSE, 6);
  gtk_widget_show (hbox7);
  gtk_box_pack_start (GTK_BOX (vbox5), hbox7, TRUE, TRUE, 0);

  label12 = gtk_label_new (_("Server:Port"));
  gtk_widget_show (label12);
  gtk_box_pack_start (GTK_BOX (hbox7), label12, FALSE, FALSE, 0);

  hbox9 = gtk_hbox_new (FALSE, 0);
  gtk_widget_show (hbox9);
  gtk_box_pack_start (GTK_BOX (hbox7), hbox9, TRUE, TRUE, 0);

  server = gtk_entry_new ();
  gtk_widget_show (server);
  gtk_box_pack_start (GTK_BOX (hbox9), server, TRUE, TRUE, 0);

  connect = gtk_toggle_button_new ();
  gtk_widget_show (connect);
  gtk_box_pack_start (GTK_BOX (hbox9), connect, FALSE, FALSE, 0);

  alignment7 = gtk_alignment_new (0.5, 0.5, 0, 0);
  gtk_widget_show (alignment7);
  gtk_container_add (GTK_CONTAINER (connect), alignment7);

  hbox11 = gtk_hbox_new (FALSE, 2);
  gtk_widget_show (hbox11);
  gtk_container_add (GTK_CONTAINER (alignment7), hbox11);

  image7 = create_pixmap (main_window, "connect.png");
  gtk_widget_show (image7);
  gtk_box_pack_start (GTK_BOX (hbox11), image7, FALSE, FALSE, 0);

  label18 = gtk_label_new (_("Connect"));
  gtk_widget_show (label18);
  gtk_box_pack_start (GTK_BOX (hbox11), label18, FALSE, FALSE, 0);

  login_at_connect = gtk_check_button_new_with_mnemonic (_("Login at connect"));
  gtk_widget_show (login_at_connect);
  gtk_box_pack_start (GTK_BOX (vbox5), login_at_connect, FALSE, FALSE, 0);

  hbox8 = gtk_hbox_new (FALSE, 0);
  gtk_widget_show (hbox8);
  gtk_box_pack_start (GTK_BOX (hbox6), hbox8, TRUE, TRUE, 0);

  label14 = gtk_label_new ("");
  gtk_widget_show (label14);
  gtk_box_pack_start (GTK_BOX (hbox8), label14, FALSE, FALSE, 0);
  gtk_widget_set_size_request (label14, 8, -1);

  table1 = gtk_table_new (2, 2, FALSE);
  gtk_widget_show (table1);
  gtk_box_pack_start (GTK_BOX (hbox8), table1, TRUE, TRUE, 0);
  gtk_table_set_col_spacings (GTK_TABLE (table1), 4);

  label13 = gtk_label_new (_("Login"));
  gtk_widget_show (label13);
  gtk_table_attach (GTK_TABLE (table1), label13, 0, 1, 0, 1,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_misc_set_alignment (GTK_MISC (label13), 0, 0.5);

  label15 = gtk_label_new (_("Password"));
  gtk_widget_show (label15);
  gtk_table_attach (GTK_TABLE (table1), label15, 0, 1, 1, 2,
                    (GtkAttachOptions) (GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_misc_set_alignment (GTK_MISC (label15), 0, 0.5);

  login = gtk_entry_new ();
  gtk_widget_show (login);
  gtk_table_attach (GTK_TABLE (table1), login, 1, 2, 0, 1,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_widget_set_sensitive (login, FALSE);

  password = gtk_entry_new ();
  gtk_widget_show (password);
  gtk_table_attach (GTK_TABLE (table1), password, 1, 2, 1, 2,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_widget_set_sensitive (password, FALSE);
  gtk_entry_set_visibility (GTK_ENTRY (password), FALSE);

  label17 = gtk_label_new ("");
  gtk_widget_show (label17);
  gtk_box_pack_start (GTK_BOX (hbox8), label17, FALSE, FALSE, 0);
  gtk_widget_set_size_request (label17, 8, -1);

  label10 = gtk_label_new (_("Connection"));
  gtk_widget_show (label10);
  gtk_expander_set_label_widget (GTK_EXPANDER (expander1), label10);

  hbox1 = gtk_hbox_new (FALSE, 2);
  gtk_widget_show (hbox1);
  gtk_box_pack_start (GTK_BOX (vbox30), hbox1, TRUE, TRUE, 0);

  frame1 = gtk_frame_new (NULL);
  gtk_widget_show (frame1);
  gtk_box_pack_start (GTK_BOX (hbox1), frame1, TRUE, TRUE, 0);
  gtk_frame_set_label_align (GTK_FRAME (frame1), 0.5, 0.5);

  alignment3 = gtk_alignment_new (0.5, 0.5, 1, 1);
  gtk_widget_show (alignment3);
  gtk_container_add (GTK_CONTAINER (frame1), alignment3);
  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment3), 2, 4, 4, 4);

  console_tabs = gtk_notebook_new ();
  gtk_widget_show (console_tabs);
  gtk_container_add (GTK_CONTAINER (alignment3), console_tabs);

  alignment4 = gtk_alignment_new (0.5, 0.5, 1, 1);
  gtk_widget_show (alignment4);
  gtk_container_add (GTK_CONTAINER (console_tabs), alignment4);
  gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (console_tabs), alignment4,
                                      TRUE, TRUE, GTK_PACK_START);
  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment4), 2, 2, 2, 2);

  vbox1 = gtk_vbox_new (FALSE, 0);
  gtk_widget_show (vbox1);
  gtk_container_add (GTK_CONTAINER (alignment4), vbox1);

  console_scroll = gtk_scrolled_window_new (NULL, NULL);
  gtk_widget_show (console_scroll);
  gtk_box_pack_start (GTK_BOX (vbox1), console_scroll, TRUE, TRUE, 0);
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (console_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (console_scroll), GTK_SHADOW_IN);

  console_view = gtk_text_view_new ();
  gtk_widget_show (console_view);
  gtk_container_add (GTK_CONTAINER (console_scroll), console_view);
  gtk_text_view_set_editable (GTK_TEXT_VIEW (console_view), FALSE);
  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (console_view), GTK_WRAP_CHAR);
  gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW (console_view), 4);
  gtk_text_view_set_pixels_below_lines (GTK_TEXT_VIEW (console_view), 4);
  gtk_text_view_set_left_margin (GTK_TEXT_VIEW (console_view), 4);
  gtk_text_view_set_right_margin (GTK_TEXT_VIEW (console_view), 4);

  label4 = gtk_label_new ("");
  gtk_widget_show (label4);
  gtk_box_pack_start (GTK_BOX (vbox1), label4, FALSE, FALSE, 0);
  gtk_widget_set_size_request (label4, 360, 3);

  hbox2 = gtk_hbox_new (FALSE, 4);
  gtk_widget_show (hbox2);
  gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, TRUE, 0);

  image1 = create_pixmap (main_window, "go.png");
  gtk_widget_show (image1);
  gtk_box_pack_start (GTK_BOX (hbox2), image1, FALSE, TRUE, 0);

  cmd_entry = gtk_entry_new ();
  gtk_widget_show (cmd_entry);
  gtk_box_pack_start (GTK_BOX (hbox2), cmd_entry, TRUE, TRUE, 0);

  btn_cmdSend = gtk_button_new_with_mnemonic (_("Send"));
  gtk_widget_show (btn_cmdSend);
  gtk_box_pack_start (GTK_BOX (hbox2), btn_cmdSend, FALSE, FALSE, 0);

  label6 = gtk_label_new (_("User's console"));
  gtk_widget_show (label6);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (console_tabs), gtk_notebook_get_nth_page (GTK_NOTEBOOK (console_tabs), 0), label6);

  alignment5 = gtk_alignment_new (0.5, 0.5, 1, 1);
  gtk_widget_show (alignment5);
  gtk_container_add (GTK_CONTAINER (console_tabs), alignment5);
  gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (console_tabs), alignment5,
                                      TRUE, TRUE, GTK_PACK_START);
  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment5), 2, 2, 2, 2);

  pipe_scroll = gtk_scrolled_window_new (NULL, NULL);
  gtk_widget_show (pipe_scroll);
  gtk_container_add (GTK_CONTAINER (alignment5), pipe_scroll);
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (pipe_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (pipe_scroll), GTK_SHADOW_IN);

  pipe_view = gtk_text_view_new ();
  gtk_widget_show (pipe_view);
  gtk_container_add (GTK_CONTAINER (pipe_scroll), pipe_view);
  gtk_text_view_set_editable (GTK_TEXT_VIEW (pipe_view), FALSE);
  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (pipe_view), GTK_WRAP_CHAR);
  gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW (pipe_view), 4);
  gtk_text_view_set_pixels_below_lines (GTK_TEXT_VIEW (pipe_view), 4);
  gtk_text_view_set_left_margin (GTK_TEXT_VIEW (pipe_view), 4);
  gtk_text_view_set_right_margin (GTK_TEXT_VIEW (pipe_view), 4);

  label7 = gtk_label_new (_("Pipe"));
  gtk_widget_show (label7);
  gtk_notebook_set_tab_label (GTK_NOTEBOOK (console_tabs), gtk_notebook_get_nth_page (GTK_NOTEBOOK (console_tabs), 1), label7);
  gtk_label_set_line_wrap (GTK_LABEL (label7), TRUE);

  label2 = gtk_label_new (_("<b>WebTester</b> Console"));
  gtk_widget_show (label2);
  gtk_frame_set_label_widget (GTK_FRAME (frame1), label2);
  gtk_label_set_use_markup (GTK_LABEL (label2), TRUE);

  vbox2 = gtk_vbox_new (FALSE, 0);
  gtk_widget_show (vbox2);
  gtk_box_pack_start (GTK_BOX (hbox1), vbox2, FALSE, TRUE, 0);

  frame2 = gtk_frame_new (NULL);
  gtk_widget_show (frame2);
  gtk_box_pack_start (GTK_BOX (vbox2), frame2, TRUE, TRUE, 0);
  gtk_frame_set_label_align (GTK_FRAME (frame2), 0.5, 0.5);

  alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
  gtk_widget_show (alignment2);
  gtk_container_add (GTK_CONTAINER (frame2), alignment2);
  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment2), 2, 4, 4, 4);

  vbox3 = gtk_vbox_new (FALSE, 0);
  gtk_widget_show (vbox3);
  gtk_container_add (GTK_CONTAINER (alignment2), vbox3);

  ctrlButton_0 = gtk_button_new_with_mnemonic (_("(Unassigned)"));
  gtk_widget_show (ctrlButton_0);
  gtk_box_pack_start (GTK_BOX (vbox3), ctrlButton_0, FALSE, FALSE, 0);

  ctrlButton_1 = gtk_button_new_with_mnemonic (_("(Unassigned)"));
  gtk_widget_show (ctrlButton_1);
  gtk_box_pack_start (GTK_BOX (vbox3), ctrlButton_1, FALSE, FALSE, 0);

  ctrlButton_2 = gtk_button_new_with_mnemonic (_("(Unassigned)"));
  gtk_widget_show (ctrlButton_2);
  gtk_box_pack_start (GTK_BOX (vbox3), ctrlButton_2, FALSE, FALSE, 0);

  ctrlButton_3 = gtk_button_new_with_mnemonic (_("(Unassigned)"));
  gtk_widget_show (ctrlButton_3);
  gtk_box_pack_start (GTK_BOX (vbox3), ctrlButton_3, FALSE, FALSE, 0);

  alignment6 = gtk_alignment_new (0.5, 0.5, 1, 1);
  gtk_widget_show (alignment6);
  gtk_box_pack_start (GTK_BOX (vbox3), alignment6, FALSE, FALSE, 0);
  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment6), 2, 2, 0, 0);

  hbox3 = gtk_hbox_new (FALSE, 0);
  gtk_widget_show (hbox3);
  gtk_container_add (GTK_CONTAINER (alignment6), hbox3);

  image2 = create_pixmap (main_window, "queue.png");
  gtk_widget_show (image2);
  gtk_box_pack_start (GTK_BOX (hbox3), image2, FALSE, TRUE, 0);

  hbox4 = gtk_hbox_new (FALSE, 1);
  gtk_widget_show (hbox4);
  gtk_box_pack_start (GTK_BOX (hbox3), hbox4, FALSE, TRUE, 0);

  queue_progress = gtk_progress_bar_new ();
  gtk_widget_show (queue_progress);
  gtk_box_pack_start (GTK_BOX (hbox4), queue_progress, FALSE, FALSE, 0);
  gtk_widget_set_size_request (queue_progress, 10, 48);
  gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (queue_progress), GTK_PROGRESS_BOTTOM_TO_TOP);

  queue_usage = gtk_progress_bar_new ();
  gtk_widget_show (queue_usage);
  gtk_box_pack_start (GTK_BOX (hbox4), queue_usage, FALSE, FALSE, 0);
  gtk_widget_set_size_request (queue_usage, 10, 48);
  gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (queue_usage), GTK_PROGRESS_BOTTOM_TO_TOP);

  label9 = gtk_label_new ("");
  gtk_widget_show (label9);
  gtk_box_pack_start (GTK_BOX (hbox3), label9, FALSE, FALSE, 0);
  gtk_widget_set_size_request (label9, 6, -1);

  image3 = create_pixmap (main_window, "belts.png");
  gtk_widget_show (image3);
  gtk_box_pack_start (GTK_BOX (hbox3), image3, FALSE, FALSE, 0);

  hbox5 = gtk_hbox_new (FALSE, 1);
  gtk_widget_show (hbox5);
  gtk_box_pack_start (GTK_BOX (hbox3), hbox5, FALSE, FALSE, 0);

  belts_progress = gtk_progress_bar_new ();
  gtk_widget_show (belts_progress);
  gtk_box_pack_start (GTK_BOX (hbox5), belts_progress, FALSE, FALSE, 0);
  gtk_widget_set_size_request (belts_progress, 10, 48);
  gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (belts_progress), GTK_PROGRESS_BOTTOM_TO_TOP);

  belts_usage = gtk_progress_bar_new ();
  gtk_widget_show (belts_usage);
  gtk_box_pack_start (GTK_BOX (hbox5), belts_usage, FALSE, FALSE, 0);
  gtk_widget_set_size_request (belts_usage, 10, 48);
  gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR (belts_usage), GTK_PROGRESS_BOTTOM_TO_TOP);

  ctrlButton_4 = gtk_button_new_with_mnemonic (_("(Unassigned)"));
  gtk_widget_show (ctrlButton_4);
  gtk_box_pack_start (GTK_BOX (vbox3), ctrlButton_4, FALSE, FALSE, 0);

  ctrlButton_5 = gtk_button_new_with_mnemonic (_("(Unassigned)"));
  gtk_widget_show (ctrlButton_5);
  gtk_box_pack_start (GTK_BOX (vbox3), ctrlButton_5, FALSE, FALSE, 0);

  ctrlButton_6 = gtk_button_new_with_mnemonic (_("(Unassigned)"));
  gtk_widget_show (ctrlButton_6);
  gtk_box_pack_start (GTK_BOX (vbox3), ctrlButton_6, FALSE, FALSE, 0);

  label5 = gtk_label_new ("");
  gtk_widget_show (label5);
  gtk_box_pack_start (GTK_BOX (vbox3), label5, TRUE, FALSE, 0);

  label3 = gtk_label_new (_("Control"));
  gtk_widget_show (label3);
  gtk_frame_set_label_widget (GTK_FRAME (frame2), label3);
  gtk_label_set_use_markup (GTK_LABEL (label3), TRUE);

  label8 = gtk_label_new (_("2007 (c) nazgul"));
  gtk_widget_show (label8);
  gtk_box_pack_start (GTK_BOX (vbox2), label8, FALSE, FALSE, 0);

  image6 = create_pixmap (main_window, "wt.png");
  gtk_widget_show (image6);
  gtk_box_pack_start (GTK_BOX (hbox12), image6, TRUE, TRUE, 0);

  g_signal_connect ((gpointer) main_window, "remove",
                    G_CALLBACK (on_main_window_remove),
                    NULL);
  g_signal_connect ((gpointer) connect, "toggled",
                    G_CALLBACK (on_connect_toggled),
                    NULL);
  g_signal_connect ((gpointer) login_at_connect, "toggled",
                    G_CALLBACK (on_login_at_connect_toggled),
                    NULL);
  g_signal_connect ((gpointer) cmd_entry, "key_press_event",
                    G_CALLBACK (on_cmd_entry_key_press_event),
                    NULL);
  g_signal_connect ((gpointer) btn_cmdSend, "clicked",
                    G_CALLBACK (on_btn_cmdSend_clicked),
                    NULL);
  g_signal_connect ((gpointer) ctrlButton_0, "clicked",
                    G_CALLBACK (on_ctrlButton_clicked),
                    NULL);
  g_signal_connect ((gpointer) ctrlButton_1, "clicked",
                    G_CALLBACK (on_ctrlButton_clicked),
                    NULL);
  g_signal_connect ((gpointer) ctrlButton_2, "clicked",
                    G_CALLBACK (on_ctrlButton_clicked),
                    NULL);
  g_signal_connect ((gpointer) ctrlButton_3, "clicked",
                    G_CALLBACK (on_ctrlButton_clicked),
                    NULL);
  g_signal_connect ((gpointer) ctrlButton_4, "clicked",
                    G_CALLBACK (on_ctrlButton_clicked),
                    NULL);
  g_signal_connect ((gpointer) ctrlButton_5, "clicked",
                    G_CALLBACK (on_ctrlButton_clicked),
                    NULL);
  g_signal_connect ((gpointer) ctrlButton_6, "clicked",
                    G_CALLBACK (on_ctrlButton_clicked),
                    NULL);

  /* Store pointers to all widgets, for use by lookup_widget(). */
  GLADE_HOOKUP_OBJECT_NO_REF (main_window, main_window, "main_window");
  GLADE_HOOKUP_OBJECT (main_window, hbox12, "hbox12");
  GLADE_HOOKUP_OBJECT (main_window, vbox30, "vbox30");
  GLADE_HOOKUP_OBJECT (main_window, expander1, "expander1");
  GLADE_HOOKUP_OBJECT (main_window, hbox6, "hbox6");
  GLADE_HOOKUP_OBJECT (main_window, label11, "label11");
  GLADE_HOOKUP_OBJECT (main_window, vbox5, "vbox5");
  GLADE_HOOKUP_OBJECT (main_window, hbox7, "hbox7");
  GLADE_HOOKUP_OBJECT (main_window, label12, "label12");
  GLADE_HOOKUP_OBJECT (main_window, hbox9, "hbox9");
  GLADE_HOOKUP_OBJECT (main_window, server, "server");
  GLADE_HOOKUP_OBJECT (main_window, connect, "connect");
  GLADE_HOOKUP_OBJECT (main_window, alignment7, "alignment7");
  GLADE_HOOKUP_OBJECT (main_window, hbox11, "hbox11");
  GLADE_HOOKUP_OBJECT (main_window, image7, "image7");
  GLADE_HOOKUP_OBJECT (main_window, label18, "label18");
  GLADE_HOOKUP_OBJECT (main_window, login_at_connect, "login_at_connect");
  GLADE_HOOKUP_OBJECT (main_window, hbox8, "hbox8");
  GLADE_HOOKUP_OBJECT (main_window, label14, "label14");
  GLADE_HOOKUP_OBJECT (main_window, table1, "table1");
  GLADE_HOOKUP_OBJECT (main_window, label13, "label13");
  GLADE_HOOKUP_OBJECT (main_window, label15, "label15");
  GLADE_HOOKUP_OBJECT (main_window, login, "login");
  GLADE_HOOKUP_OBJECT (main_window, password, "password");
  GLADE_HOOKUP_OBJECT (main_window, label17, "label17");
  GLADE_HOOKUP_OBJECT (main_window, label10, "label10");
  GLADE_HOOKUP_OBJECT (main_window, hbox1, "hbox1");
  GLADE_HOOKUP_OBJECT (main_window, frame1, "frame1");
  GLADE_HOOKUP_OBJECT (main_window, alignment3, "alignment3");
  GLADE_HOOKUP_OBJECT (main_window, console_tabs, "console_tabs");
  GLADE_HOOKUP_OBJECT (main_window, alignment4, "alignment4");
  GLADE_HOOKUP_OBJECT (main_window, vbox1, "vbox1");
  GLADE_HOOKUP_OBJECT (main_window, console_scroll, "console_scroll");
  GLADE_HOOKUP_OBJECT (main_window, console_view, "console_view");
  GLADE_HOOKUP_OBJECT (main_window, label4, "label4");
  GLADE_HOOKUP_OBJECT (main_window, hbox2, "hbox2");
  GLADE_HOOKUP_OBJECT (main_window, image1, "image1");
  GLADE_HOOKUP_OBJECT (main_window, cmd_entry, "cmd_entry");
  GLADE_HOOKUP_OBJECT (main_window, btn_cmdSend, "btn_cmdSend");
  GLADE_HOOKUP_OBJECT (main_window, label6, "label6");
  GLADE_HOOKUP_OBJECT (main_window, alignment5, "alignment5");
  GLADE_HOOKUP_OBJECT (main_window, pipe_scroll, "pipe_scroll");
  GLADE_HOOKUP_OBJECT (main_window, pipe_view, "pipe_view");
  GLADE_HOOKUP_OBJECT (main_window, label7, "label7");
  GLADE_HOOKUP_OBJECT (main_window, label2, "label2");
  GLADE_HOOKUP_OBJECT (main_window, vbox2, "vbox2");
  GLADE_HOOKUP_OBJECT (main_window, frame2, "frame2");
  GLADE_HOOKUP_OBJECT (main_window, alignment2, "alignment2");
  GLADE_HOOKUP_OBJECT (main_window, vbox3, "vbox3");
  GLADE_HOOKUP_OBJECT (main_window, ctrlButton_0, "ctrlButton_0");
  GLADE_HOOKUP_OBJECT (main_window, ctrlButton_1, "ctrlButton_1");
  GLADE_HOOKUP_OBJECT (main_window, ctrlButton_2, "ctrlButton_2");
  GLADE_HOOKUP_OBJECT (main_window, ctrlButton_3, "ctrlButton_3");
  GLADE_HOOKUP_OBJECT (main_window, alignment6, "alignment6");
  GLADE_HOOKUP_OBJECT (main_window, hbox3, "hbox3");
  GLADE_HOOKUP_OBJECT (main_window, image2, "image2");
  GLADE_HOOKUP_OBJECT (main_window, hbox4, "hbox4");
  GLADE_HOOKUP_OBJECT (main_window, queue_progress, "queue_progress");
  GLADE_HOOKUP_OBJECT (main_window, queue_usage, "queue_usage");
  GLADE_HOOKUP_OBJECT (main_window, label9, "label9");
  GLADE_HOOKUP_OBJECT (main_window, image3, "image3");
  GLADE_HOOKUP_OBJECT (main_window, hbox5, "hbox5");
  GLADE_HOOKUP_OBJECT (main_window, belts_progress, "belts_progress");
  GLADE_HOOKUP_OBJECT (main_window, belts_usage, "belts_usage");
  GLADE_HOOKUP_OBJECT (main_window, ctrlButton_4, "ctrlButton_4");
  GLADE_HOOKUP_OBJECT (main_window, ctrlButton_5, "ctrlButton_5");
  GLADE_HOOKUP_OBJECT (main_window, ctrlButton_6, "ctrlButton_6");
  GLADE_HOOKUP_OBJECT (main_window, label5, "label5");
  GLADE_HOOKUP_OBJECT (main_window, label3, "label3");
  GLADE_HOOKUP_OBJECT (main_window, label8, "label8");
  GLADE_HOOKUP_OBJECT (main_window, image6, "image6");

  return main_window;
}
Example #12
0
void create_PreferencesDialog(void)
{
  GtkWidget *PreferencesDialog;
  GtkWidget *dialog_vbox9;
  GtkWidget *notebook1;
  GtkWidget *GenericTable;
  GtkWidget *label173;
  GtkObject *LogLevelSpinner_adj;
  GtkWidget *LogLevelSpinner;
  GtkWidget *DebugCheckButton;
  GtkWidget *label174;
  GtkWidget *StreamDirectoryHbox;
  GtkWidget *StreamDirectory;
  GtkWidget *StreamDirectoryButton;
  GtkWidget *alignment24;
  GtkWidget *hbox84;
  GtkWidget *image24;
  GtkWidget *label175;
  GtkWidget *label176;
  GtkWidget *ProfileDirectoryHbox;
  GtkWidget *ProfileDirectory;
  GtkWidget *ProfileDirectoryButton;
  GtkWidget *alignment25;
  GtkWidget *hbox86;
  GtkWidget *image25;
  GtkWidget *label177;
  GtkWidget *label169;
  GtkWidget *NetworkVbox;
  GtkWidget *NetworkTable;
  GtkWidget *label178;
  GtkWidget *label179;
  GtkWidget *MulticastTtlMenu;
  GtkWidget *menu16;
  GtkWidget *ttl_lan;
  GtkWidget *ttl_organization;
  GtkWidget *ttl_regional;
  GtkWidget *ttl_worldwide;
  GtkObject *MtuSpinButton_adj;
  GtkWidget *MtuSpinButton;
  GtkWidget *vbox39;
  GtkWidget *hbox89;
  GtkWidget *AllowRtcpCheck;
  GtkWidget *hbox87;
  GtkWidget *AllowSSMCheck;
  GtkWidget *label170;
  GtkWidget *MP4FileSettingsVbox;
  GtkWidget *FileStatusFrame;
  GtkWidget *FileStatusVbox;
  GtkWidget *hbox90;
  GtkWidget *FileStatus1;
  GSList *FileStatus1_group = NULL;
  GtkWidget *hbox91;
  GtkWidget *FileStatus2;
  GtkWidget *hbox92;
  GtkWidget *FileStatus3;
  GtkWidget *label180;
  GtkWidget *hbox93;
  GtkWidget *RecordHintTrackButton;
  GtkWidget *hbox94;
  GtkWidget *OptimizeMP4FileButton;
  GtkWidget *hbox95;
  GtkWidget *RecordRawDataButton;
  GtkWidget *RawFileName;
  GtkWidget *RawFileNameBrowse;
  GtkWidget *alignment26;
  GtkWidget *hbox96;
  GtkWidget *image26;
  GtkWidget *label181;
  GtkWidget *label171;
  GtkWidget *dialog_action_area8;
  GtkWidget *cancelbutton6;
  GtkWidget *okbutton8;
  GtkTooltips *tooltips;

  tooltips = gtk_tooltips_new();

  PreferencesDialog = gtk_dialog_new();
  gtk_window_set_title(GTK_WINDOW(PreferencesDialog), _("Preferences"));
  gtk_window_set_modal(GTK_WINDOW(PreferencesDialog), TRUE);
  gtk_window_set_resizable(GTK_WINDOW(PreferencesDialog), FALSE);
  gtk_window_set_transient_for(GTK_WINDOW(PreferencesDialog), 
			       GTK_WINDOW(MainWindow));

  dialog_vbox9 = GTK_DIALOG(PreferencesDialog)->vbox;
  gtk_widget_show(dialog_vbox9);

  notebook1 = gtk_notebook_new();
  gtk_widget_show(notebook1);
  gtk_box_pack_start(GTK_BOX(dialog_vbox9), notebook1, TRUE, TRUE, 0);

  GenericTable = gtk_table_new(4, 2, FALSE);
  gtk_widget_show(GenericTable);
  gtk_container_add(GTK_CONTAINER(notebook1), GenericTable);
  gtk_table_set_row_spacings(GTK_TABLE(GenericTable), 9);
  gtk_table_set_col_spacings(GTK_TABLE(GenericTable), 36);

  label173 = gtk_label_new(_("Log Level"));
  gtk_widget_show(label173);
  gtk_table_attach(GTK_TABLE(GenericTable), label173, 0, 1, 1, 2,
                   (GtkAttachOptions)(GTK_FILL),
                   (GtkAttachOptions)(0), 0, 0);
  gtk_misc_set_alignment(GTK_MISC(label173), 0, 0.5);

  LogLevelSpinner_adj = gtk_adjustment_new(MyConfig->GetIntegerValue(CONFIG_APP_LOGLEVEL),
					    0, 7, 1, 10, 10);
  LogLevelSpinner = gtk_spin_button_new(GTK_ADJUSTMENT(LogLevelSpinner_adj), 1, 0);
  gtk_widget_show(LogLevelSpinner);
  gtk_table_attach(GTK_TABLE(GenericTable), LogLevelSpinner, 1, 2, 1, 2,
                   (GtkAttachOptions)(GTK_EXPAND | GTK_FILL),
                   (GtkAttachOptions)(0), 0, 0);

  DebugCheckButton = gtk_check_button_new_with_mnemonic(_("Debug"));
  gtk_widget_show(DebugCheckButton);
  gtk_table_attach(GTK_TABLE(GenericTable), DebugCheckButton, 0, 2, 0, 1,
                   (GtkAttachOptions)(0),
                   (GtkAttachOptions)(0), 0, 0);

  label174 = gtk_label_new(_("Stream Directory"));
  gtk_widget_show(label174);
  gtk_table_attach(GTK_TABLE(GenericTable), label174, 0, 1, 2, 3,
                   (GtkAttachOptions)(GTK_FILL),
                   (GtkAttachOptions)(0), 0, 0);
  gtk_misc_set_alignment(GTK_MISC(label174), 0, 0.5);

  StreamDirectoryHbox = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(StreamDirectoryHbox);
  gtk_table_attach(GTK_TABLE(GenericTable), StreamDirectoryHbox, 1, 2, 2, 3,
                   (GtkAttachOptions)(GTK_FILL),
                   (GtkAttachOptions)(GTK_FILL), 0, 0);

  StreamDirectory = gtk_entry_new();
  gtk_widget_show(StreamDirectory);
  gtk_box_pack_start(GTK_BOX(StreamDirectoryHbox), StreamDirectory, TRUE, TRUE, 0);

  StreamDirectoryButton = gtk_button_new();
  gtk_widget_show(StreamDirectoryButton);
  gtk_box_pack_start(GTK_BOX(StreamDirectoryHbox), StreamDirectoryButton, FALSE, FALSE, 0);

  alignment24 = gtk_alignment_new(0.5, 0.5, 0, 0);
  gtk_widget_show(alignment24);
  gtk_container_add(GTK_CONTAINER(StreamDirectoryButton), alignment24);

  hbox84 = gtk_hbox_new(FALSE, 2);
  gtk_widget_show(hbox84);
  gtk_container_add(GTK_CONTAINER(alignment24), hbox84);

  image24 = gtk_image_new_from_stock("gtk-open", GTK_ICON_SIZE_BUTTON);
  gtk_widget_show(image24);
  gtk_box_pack_start(GTK_BOX(hbox84), image24, FALSE, FALSE, 0);

  label175 = gtk_label_new_with_mnemonic(_("Browse"));
  gtk_widget_show(label175);
  gtk_box_pack_start(GTK_BOX(hbox84), label175, FALSE, FALSE, 0);

  label176 = gtk_label_new(_("Profiles Directory"));
  gtk_widget_show(label176);
  gtk_table_attach(GTK_TABLE(GenericTable), label176, 0, 1, 3, 4,
                   (GtkAttachOptions)(GTK_FILL),
                   (GtkAttachOptions)(0), 0, 0);
  gtk_misc_set_alignment(GTK_MISC(label176), 0, 0.5);

  ProfileDirectoryHbox = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(ProfileDirectoryHbox);
  gtk_table_attach(GTK_TABLE(GenericTable), ProfileDirectoryHbox, 1, 2, 3, 4,
                   (GtkAttachOptions)(GTK_FILL),
                   (GtkAttachOptions)(GTK_FILL), 0, 0);

  ProfileDirectory = gtk_entry_new();
  gtk_widget_show(ProfileDirectory);
  gtk_box_pack_start(GTK_BOX(ProfileDirectoryHbox), ProfileDirectory, TRUE, TRUE, 0);

  ProfileDirectoryButton = gtk_button_new();
  gtk_widget_show(ProfileDirectoryButton);
  gtk_box_pack_start(GTK_BOX(ProfileDirectoryHbox), ProfileDirectoryButton, FALSE, FALSE, 0);

  alignment25 = gtk_alignment_new(0.5, 0.5, 0, 0);
  gtk_widget_show(alignment25);
  gtk_container_add(GTK_CONTAINER(ProfileDirectoryButton), alignment25);

  hbox86 = gtk_hbox_new(FALSE, 2);
  gtk_widget_show(hbox86);
  gtk_container_add(GTK_CONTAINER(alignment25), hbox86);

  image25 = gtk_image_new_from_stock("gtk-open", GTK_ICON_SIZE_BUTTON);
  gtk_widget_show(image25);
  gtk_box_pack_start(GTK_BOX(hbox86), image25, FALSE, FALSE, 0);

  label177 = gtk_label_new_with_mnemonic(_("Browse"));
  gtk_widget_show(label177);
  gtk_box_pack_start(GTK_BOX(hbox86), label177, FALSE, FALSE, 0);

  label169 = gtk_label_new(_("Generic"));
  gtk_widget_show(label169);
  gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 0), label169);

  NetworkVbox = gtk_vbox_new(FALSE, 0);
  gtk_widget_show(NetworkVbox);
  gtk_container_add(GTK_CONTAINER(notebook1), NetworkVbox);

  NetworkTable = gtk_table_new(2, 2, TRUE);
  gtk_widget_show(NetworkTable);
  gtk_box_pack_start(GTK_BOX(NetworkVbox), NetworkTable, FALSE, TRUE, 6);
  gtk_table_set_row_spacings(GTK_TABLE(NetworkTable), 7);

  label178 = gtk_label_new(_("Multicast TTL"));
  gtk_widget_show(label178);
  gtk_table_attach(GTK_TABLE(NetworkTable), label178, 0, 1, 0, 1,
                   (GtkAttachOptions)(GTK_FILL),
                   (GtkAttachOptions)(0), 0, 0);
  gtk_misc_set_alignment(GTK_MISC(label178), 0, 0.5);

  label179 = gtk_label_new(_("MTU"));
  gtk_widget_show(label179);
  gtk_table_attach(GTK_TABLE(NetworkTable), label179, 0, 1, 1, 2,
                   (GtkAttachOptions)(GTK_FILL),
                   (GtkAttachOptions)(0), 0, 0);
  gtk_misc_set_alignment(GTK_MISC(label179), 0, 0.5);

  MulticastTtlMenu = gtk_option_menu_new();
  gtk_widget_show(MulticastTtlMenu);
  gtk_table_attach(GTK_TABLE(NetworkTable), MulticastTtlMenu, 1, 2, 0, 1,
                   (GtkAttachOptions)(GTK_FILL),
                   (GtkAttachOptions)(0), 0, 0);

  menu16 = gtk_menu_new();

  ttl_lan = gtk_menu_item_new_with_mnemonic(_("LAN - 1"));
  gtk_widget_show(ttl_lan);
  gtk_container_add(GTK_CONTAINER(menu16), ttl_lan);

  ttl_organization = gtk_menu_item_new_with_mnemonic(_("Organization - 15"));
  gtk_widget_show(ttl_organization);
  gtk_container_add(GTK_CONTAINER(menu16), ttl_organization);

  ttl_regional = gtk_menu_item_new_with_mnemonic(_("Regional - 63"));
  gtk_widget_show(ttl_regional);
  gtk_container_add(GTK_CONTAINER(menu16), ttl_regional);

  ttl_worldwide = gtk_menu_item_new_with_mnemonic(_("Worldwide -127"));
  gtk_widget_show(ttl_worldwide);
  gtk_container_add(GTK_CONTAINER(menu16), ttl_worldwide);

  gtk_option_menu_set_menu(GTK_OPTION_MENU(MulticastTtlMenu), menu16);

  MtuSpinButton_adj = 
    gtk_adjustment_new(MyConfig->GetIntegerValue(CONFIG_RTP_PAYLOAD_SIZE), 
		       256, 65535, 1, 100, 100);
  MtuSpinButton = gtk_spin_button_new(GTK_ADJUSTMENT (MtuSpinButton_adj), 1, 0);
  gtk_widget_show(MtuSpinButton);
  gtk_table_attach(GTK_TABLE (NetworkTable), MtuSpinButton, 1, 2, 1, 2,
                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                    (GtkAttachOptions) (0), 0, 0);
  gtk_spin_button_set_numeric(GTK_SPIN_BUTTON (MtuSpinButton), TRUE);

  vbox39 = gtk_vbox_new(FALSE, 4);
  gtk_widget_show(vbox39);
  gtk_box_pack_start(GTK_BOX(NetworkVbox), vbox39, FALSE, FALSE, 5);

  hbox89 = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(hbox89);
  gtk_box_pack_start(GTK_BOX(vbox39), hbox89, TRUE, TRUE, 4);

  AllowRtcpCheck = gtk_check_button_new_with_mnemonic(_("Allow Clients to Send RTCP"));
  gtk_widget_show(AllowRtcpCheck);
  gtk_box_pack_start(GTK_BOX(hbox89), AllowRtcpCheck, FALSE, FALSE, 94);
  gtk_tooltips_set_tip(tooltips, AllowRtcpCheck, _("Allow clients to send RTCP - default off"), NULL);

  hbox87 = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(hbox87);
  gtk_box_pack_start(GTK_BOX(vbox39), hbox87, TRUE, TRUE, 0);

  AllowSSMCheck = gtk_check_button_new_with_mnemonic(_("Use Single Source Multicast"));
  gtk_widget_show(AllowSSMCheck);
  gtk_box_pack_start(GTK_BOX(hbox87), AllowSSMCheck, TRUE, FALSE, 0);
  gtk_widget_set_sensitive(AllowSSMCheck, FALSE);

  label170 = gtk_label_new(_("Network Settings"));
  gtk_widget_show(label170);
  gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 1), label170);

  MP4FileSettingsVbox = gtk_vbox_new(FALSE, 0);
  gtk_widget_show(MP4FileSettingsVbox);
  gtk_container_add(GTK_CONTAINER(notebook1), MP4FileSettingsVbox);
  gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook1), MP4FileSettingsVbox,
                                      FALSE, FALSE, GTK_PACK_START);

  FileStatusFrame = gtk_frame_new(NULL);
  gtk_widget_show(FileStatusFrame);
  gtk_box_pack_start(GTK_BOX(MP4FileSettingsVbox), FileStatusFrame, TRUE, TRUE, 0);

  FileStatusVbox = gtk_vbox_new(FALSE, 0);
  gtk_widget_show(FileStatusVbox);
  gtk_container_add(GTK_CONTAINER(FileStatusFrame), FileStatusVbox);

  hbox90 = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(hbox90);
  gtk_box_pack_start(GTK_BOX(FileStatusVbox), hbox90, TRUE, TRUE, 0);

  FileStatus1 = gtk_radio_button_new_with_mnemonic(NULL, _("Always overwrite existing file"));
  gtk_widget_show(FileStatus1);
  gtk_box_pack_start(GTK_BOX(hbox90), FileStatus1, TRUE, TRUE, 46);
  gtk_radio_button_set_group(GTK_RADIO_BUTTON(FileStatus1), FileStatus1_group);
  FileStatus1_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(FileStatus1));

  hbox91 = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(hbox91);
  gtk_box_pack_start(GTK_BOX(FileStatusVbox), hbox91, FALSE, FALSE, 0);

  FileStatus2 = gtk_radio_button_new_with_mnemonic(NULL, _("Append to file"));
  gtk_widget_show(FileStatus2);
  gtk_box_pack_start(GTK_BOX(hbox91), FileStatus2, TRUE, TRUE, 46);
  gtk_radio_button_set_group(GTK_RADIO_BUTTON(FileStatus2), FileStatus1_group);
  FileStatus1_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(FileStatus2));

  hbox92 = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(hbox92);
  gtk_box_pack_start(GTK_BOX(FileStatusVbox), hbox92, FALSE, FALSE, 0);

  FileStatus3 = gtk_radio_button_new_with_mnemonic(NULL, _("Create new file based on name"));
  gtk_widget_show(FileStatus3);
  gtk_box_pack_start(GTK_BOX(hbox92), FileStatus3, FALSE, FALSE, 46);
  gtk_radio_button_set_group(GTK_RADIO_BUTTON(FileStatus3), FileStatus1_group);
  FileStatus1_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(FileStatus3));

  label180 = gtk_label_new(_("File Status"));
  gtk_widget_show(label180);
  gtk_frame_set_label_widget(GTK_FRAME(FileStatusFrame), label180);

  hbox93 = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(hbox93);
  gtk_box_pack_start(GTK_BOX(MP4FileSettingsVbox), hbox93, TRUE, TRUE, 4);

  RecordHintTrackButton = gtk_check_button_new_with_mnemonic(_("Record Hint Tracks when Finished"));
  gtk_widget_show(RecordHintTrackButton);
  gtk_box_pack_start(GTK_BOX(hbox93), RecordHintTrackButton, TRUE, FALSE, 0);
  gtk_tooltips_set_tip(tooltips, RecordHintTrackButton, _("If set, this can cause application to appear to freeze when finished"), NULL);

  hbox94 = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(hbox94);
  gtk_box_pack_start(GTK_BOX(MP4FileSettingsVbox), hbox94, TRUE, TRUE, 4);

  OptimizeMP4FileButton = gtk_check_button_new_with_mnemonic(_("Optimize When Finished"));
  gtk_widget_show(OptimizeMP4FileButton);
  gtk_box_pack_start(GTK_BOX(hbox94), OptimizeMP4FileButton, FALSE, FALSE, 79);

  hbox95 = gtk_hbox_new(FALSE, 0);
  gtk_widget_show(hbox95);
  gtk_box_pack_start(GTK_BOX(MP4FileSettingsVbox), hbox95, TRUE, TRUE, 0);

  RecordRawDataButton = gtk_check_button_new_with_mnemonic(_("Record Raw Data "));
  gtk_widget_show(RecordRawDataButton);
  gtk_box_pack_start(GTK_BOX(hbox95), RecordRawDataButton, FALSE, FALSE, 0);

  RawFileName = gtk_entry_new();
  gtk_widget_show(RawFileName);
  gtk_box_pack_start(GTK_BOX(hbox95), RawFileName, TRUE, TRUE, 0);
  gtk_tooltips_set_tip(tooltips, RawFileName, _("Raw Data MP4 File Name"), NULL);

  RawFileNameBrowse = gtk_button_new();
  gtk_widget_show(RawFileNameBrowse);
  gtk_box_pack_start(GTK_BOX(hbox95), RawFileNameBrowse, FALSE, FALSE, 0);

  alignment26 = gtk_alignment_new(0.5, 0.5, 0, 0);
  gtk_widget_show(alignment26);
  gtk_container_add(GTK_CONTAINER(RawFileNameBrowse), alignment26);

  hbox96 = gtk_hbox_new(FALSE, 2);
  gtk_widget_show(hbox96);
  gtk_container_add(GTK_CONTAINER(alignment26), hbox96);

  image26 = gtk_image_new_from_stock("gtk-open", GTK_ICON_SIZE_BUTTON);
  gtk_widget_show(image26);
  gtk_box_pack_start(GTK_BOX(hbox96), image26, FALSE, FALSE, 0);

  label181 = gtk_label_new_with_mnemonic(_("Browse"));
  gtk_widget_show(label181);
  gtk_box_pack_start(GTK_BOX(hbox96), label181, FALSE, FALSE, 0);

  label171 = gtk_label_new(_("MP4 File Settings"));
  gtk_widget_show(label171);
  gtk_notebook_set_tab_label(GTK_NOTEBOOK(notebook1), gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook1), 2), label171);

  dialog_action_area8 = GTK_DIALOG(PreferencesDialog)->action_area;
  gtk_widget_show(dialog_action_area8);
  gtk_button_box_set_layout(GTK_BUTTON_BOX(dialog_action_area8), GTK_BUTTONBOX_END);

  cancelbutton6 = gtk_button_new_from_stock("gtk-cancel");
  gtk_widget_show(cancelbutton6);
  gtk_dialog_add_action_widget(GTK_DIALOG(PreferencesDialog), cancelbutton6, GTK_RESPONSE_CANCEL);
  GTK_WIDGET_SET_FLAGS(cancelbutton6, GTK_CAN_DEFAULT);

  okbutton8 = gtk_button_new_from_stock("gtk-ok");
  gtk_widget_show(okbutton8);
  gtk_dialog_add_action_widget(GTK_DIALOG(PreferencesDialog), okbutton8, GTK_RESPONSE_OK);
  GTK_WIDGET_SET_FLAGS(okbutton8, GTK_CAN_DEFAULT);

  g_signal_connect((gpointer) PreferencesDialog, "response",
                    G_CALLBACK(on_PreferencesDialog_response),
                    NULL);
  g_signal_connect((gpointer)StreamDirectoryButton, "clicked",
		   G_CALLBACK(on_stream_directory_clicked), 
		   PreferencesDialog);
  g_signal_connect((gpointer)ProfileDirectoryButton, "clicked",
		   G_CALLBACK(on_profile_directory_clicked), 
		   PreferencesDialog);

  g_signal_connect((gpointer)RawFileNameBrowse, "clicked",
		   G_CALLBACK(on_raw_file_clicked),
		   PreferencesDialog);

  /* Store pointers to all widgets, for use by lookup_widget(). */
  GLADE_HOOKUP_OBJECT_NO_REF(PreferencesDialog, PreferencesDialog, "PreferencesDialog");
  GLADE_HOOKUP_OBJECT_NO_REF(PreferencesDialog, dialog_vbox9, "dialog_vbox9");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, notebook1, "notebook1");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, GenericTable, "GenericTable");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label173, "label173");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, LogLevelSpinner, "LogLevelSpinner");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, DebugCheckButton, "DebugCheckButton");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label174, "label174");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, StreamDirectoryHbox, "StreamDirectoryHbox");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, StreamDirectory, "StreamDirectory");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, StreamDirectoryButton, "StreamDirectoryButton");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, alignment24, "alignment24");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox84, "hbox84");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, image24, "image24");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label175, "label175");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label176, "label176");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, ProfileDirectoryHbox, "ProfileDirectoryHbox");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, ProfileDirectory, "ProfileDirectory");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, ProfileDirectoryButton, "ProfileDirectoryButton");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, alignment25, "alignment25");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox86, "hbox86");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, image25, "image25");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label177, "label177");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label169, "label169");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, NetworkVbox, "NetworkVbox");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, NetworkTable, "NetworkTable");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label178, "label178");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label179, "label179");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, MulticastTtlMenu, "MulticastTtlMenu");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, menu16, "menu16");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, ttl_lan, "ttl_lan");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, ttl_organization, "ttl_organization");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, ttl_regional, "ttl_regional");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, ttl_worldwide, "ttl_worldwide");
  GLADE_HOOKUP_OBJECT (PreferencesDialog, MtuSpinButton, "MtuSpinButton");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, vbox39, "vbox39");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox89, "hbox89");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, AllowRtcpCheck, "AllowRtcpCheck");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox87, "hbox87");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, AllowSSMCheck, "AllowSSMCheck");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label170, "label170");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, MP4FileSettingsVbox, "MP4FileSettingsVbox");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, FileStatusFrame, "FileStatusFrame");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, FileStatusVbox, "FileStatusVbox");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox90, "hbox90");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, FileStatus1, "FileStatus1");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox91, "hbox91");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, FileStatus2, "FileStatus2");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox92, "hbox92");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, FileStatus3, "FileStatus3");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label180, "label180");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox93, "hbox93");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, RecordHintTrackButton, "RecordHintTrackButton");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox94, "hbox94");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, OptimizeMP4FileButton, "OptimizeMP4FileButton");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox95, "hbox95");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, RecordRawDataButton, "RecordRawDataButton");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, RawFileName, "RawFileName");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, RawFileNameBrowse, "RawFileNameBrowse");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, alignment26, "alignment26");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, hbox96, "hbox96");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, image26, "image26");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label181, "label181");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, label171, "label171");
  GLADE_HOOKUP_OBJECT_NO_REF(PreferencesDialog, dialog_action_area8, "dialog_action_area8");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, cancelbutton6, "cancelbutton6");
  GLADE_HOOKUP_OBJECT(PreferencesDialog, okbutton8, "okbutton8");
  GLADE_HOOKUP_OBJECT_NO_REF(PreferencesDialog, tooltips, "tooltips");

  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(DebugCheckButton),
			       MyConfig->GetBoolValue(CONFIG_APP_DEBUG));

  const char *dir;
  char dirname[PATH_MAX];
  dir = MyConfig->GetStringValue(CONFIG_APP_STREAM_DIRECTORY);
  if (dir != NULL) {
    gtk_entry_set_text(GTK_ENTRY(StreamDirectory), dir);
  } else {
    GetHomeDirectory(dirname);
    strcat(dirname, ".mp4live_d/Streams/");
    gtk_entry_set_text(GTK_ENTRY(StreamDirectory), dirname);
  }
  dir = MyConfig->GetStringValue(CONFIG_APP_PROFILE_DIRECTORY);
  if (dir != NULL) {
    gtk_entry_set_text(GTK_ENTRY(ProfileDirectory), dir);
  } else {
    GetHomeDirectory(dirname);
    strcat(dirname, ".mp4live_d/");
    gtk_entry_set_text(GTK_ENTRY(ProfileDirectory), dirname);
  }

  uint ttl = MyConfig->GetIntegerValue(CONFIG_RTP_MCAST_TTL);
  uint index;
  if (ttl <= 1) {
    index = 0;
  } else if (ttl <= 15) {
    index = 1;
  } else if (ttl <= 64) {
    index = 2;
  } else 
    index = 3;
  gtk_option_menu_set_history(GTK_OPTION_MENU(MulticastTtlMenu), index);
  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(AllowRtcpCheck),
			       MyConfig->GetBoolValue(CONFIG_RTP_NO_B_RR_0));
  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(AllowSSMCheck),
			       MyConfig->GetBoolValue(CONFIG_RTP_USE_SSM));

  uint fstatus = MyConfig->GetIntegerValue(CONFIG_RECORD_MP4_FILE_STATUS);
  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileStatus1),
			       fstatus == FILE_MP4_OVERWRITE);
  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileStatus2),
			       fstatus == FILE_MP4_APPEND);
  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileStatus3),
			       fstatus == FILE_MP4_CREATE_NEW);

  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(RecordHintTrackButton),
			       MyConfig->GetBoolValue(CONFIG_RECORD_MP4_HINT_TRACKS));
  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(OptimizeMP4FileButton),
			       MyConfig->GetBoolValue(CONFIG_RECORD_MP4_OPTIMIZE));
  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(RecordRawDataButton),
			       MyConfig->GetBoolValue(CONFIG_RECORD_RAW_IN_MP4));
  gtk_entry_set_text(GTK_ENTRY(RawFileName), 
		     MyConfig->GetStringValue(CONFIG_RECORD_RAW_MP4_FILE_NAME));

  gtk_widget_show(PreferencesDialog);
}
Example #13
0
GtkWidget * build_tgroup(MtxTickGroup *tgroup, gint index)
{
	/* MUCH faster that the ui way unfortunately */
	GtkWidget *notebook = NULL;
	GtkWidget *table = NULL;
	GtkWidget *subtable = NULL;
	GtkWidget *widget = NULL;
	GtkWidget *x_spin = NULL;
	GtkWidget *y_spin = NULL;
	GtkWidget *hbox = NULL;
	GtkWidget *img = NULL;
	GtkWidget *label = NULL;
	GtkWidget *start = NULL;
	GtkWidget *sweep = NULL;
	GtkWidget *low = NULL;
	GtkWidget *high = NULL;
	gchar * tmpbuf = NULL;

	table = gtk_table_new(2,2,FALSE);

	/* Close button */
	widget = gtk_button_new();
	img = gtk_image_new_from_stock("gtk-close",GTK_ICON_SIZE_MENU);
	gtk_container_add(GTK_CONTAINER(widget),img);
	OBJ_SET((widget),"tgroup_index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"clicked", G_CALLBACK(remove_tgroup),NULL);
	gtk_table_attach(GTK_TABLE(table),widget,0,1,0,4,0,0,0,0);

	notebook = gtk_notebook_new();
	gtk_table_attach(GTK_TABLE(table),notebook,1,2,0,1,GTK_EXPAND|GTK_FILL,0,0,0);
	/* Text/Color Tab */
	subtable = gtk_table_new(2,4,FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(subtable),5);
	label = gtk_label_new("Text & Color");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);
	widget = gtk_label_new("Text:");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,2,GTK_FILL,GTK_EXPAND|GTK_FILL,0,0);

	widget = gtk_entry_new();
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_TEXT));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	gtk_entry_set_width_chars(GTK_ENTRY(widget),12);
	gtk_entry_set_text(GTK_ENTRY(widget),tgroup->text);
	g_signal_connect(G_OBJECT(widget),"changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,2,GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,0,0);
	widget = gtk_label_new("Day");
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,0,1,0,GTK_FILL,0,0);

	widget = gtk_color_button_new_with_color(&tgroup->text_color[MTX_DAY]);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_TEXT_COLOR_DAY));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"color_set",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,1,2,GTK_FILL,GTK_EXPAND,0,0);

	widget = gtk_label_new("Night");
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,0,1,0,GTK_FILL,0,0);
	widget = gtk_color_button_new_with_color(&tgroup->text_color[MTX_NITE]);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_TEXT_COLOR_NITE));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"color_set",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,1,2,GTK_FILL,GTK_EXPAND,0,0);

	/* Font Tab */
	subtable = gtk_table_new(1,4,FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(subtable),5);
	label = gtk_label_new("Font");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);

	widget = gtk_label_new("Font:");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,1,GTK_FILL,GTK_EXPAND,0,0);

	widget = gtk_font_button_new();
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_FONT));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	tmpbuf = g_strdup_printf("%s 12",tgroup->font);
	gtk_font_button_set_font_name(GTK_FONT_BUTTON(widget),tmpbuf);
	gtk_font_button_set_show_size(GTK_FONT_BUTTON(widget),FALSE);
	gtk_font_button_set_use_size(GTK_FONT_BUTTON(widget),FALSE);
	gtk_font_button_set_use_font(GTK_FONT_BUTTON(widget),FALSE);
	g_free(tmpbuf);
	g_signal_connect(G_OBJECT(widget),"font_set",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,1,GTK_EXPAND|GTK_FILL,GTK_EXPAND,0,0);

	widget = gtk_label_new("Font\nScale");
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,0,1,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(0.001,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_FONT_SCALE));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tgroup->font_scale, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,0,1,0,GTK_EXPAND,0,0);

	widget = gtk_label_new("Text\nInset");
	gtk_table_attach(GTK_TABLE(subtable),widget,4,5,0,1,0,GTK_EXPAND,0,0);
	widget = gtk_spin_button_new_with_range(0.001,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_TEXT_INSET));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tgroup->text_inset, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,5,6,0,1,0,GTK_EXPAND,0,0);

	/* Major Ticks Tab */
	subtable = gtk_table_new(2,6,FALSE);
	/*gtk_table_set_col_spacings(GTK_TABLE(subtable),5);*/
	label = gtk_label_new(NULL);
	gtk_label_set_markup(GTK_LABEL(label),"<b>Major</b> Ticks");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);

	/* Labels */
	widget = gtk_label_new("Total Ticks");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Length");
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Width");
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Inset");
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Day");
	gtk_table_attach(GTK_TABLE(subtable),widget,4,5,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Night");
	gtk_table_attach(GTK_TABLE(subtable),widget,5,6,0,1,GTK_EXPAND,GTK_EXPAND,0,0);

	/* Spinners */
	widget = gtk_spin_button_new_with_range(0.0,100.0,1);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_NUM_MAJ_TICKS));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 1.0, "digits", 0, "numeric", TRUE, NULL);
	gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tgroup->num_maj_ticks);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,1,2,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(0.0,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MAJ_TICK_LENGTH));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tgroup->maj_tick_length, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,1,2,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(0.0,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MAJ_TICK_WIDTH));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tgroup->maj_tick_width, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,1,2,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(0.0,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MAJ_TICK_INSET));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tgroup->maj_tick_inset, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,1,2,0,GTK_EXPAND,0,0);

	widget = gtk_color_button_new_with_color(&tgroup->maj_tick_color[MTX_DAY]);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MAJ_TICK_COLOR_DAY));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"color_set",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,4,5,1,2,GTK_FILL,GTK_EXPAND,0,0);

	widget = gtk_color_button_new_with_color(&tgroup->maj_tick_color[MTX_NITE]);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MAJ_TICK_COLOR_NITE));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"color_set",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,5,6,1,2,GTK_FILL,GTK_EXPAND,0,0);

	/* Minor Ticks Tab */
	subtable = gtk_table_new(2,6,FALSE);
	/*gtk_table_set_col_spacings(GTK_TABLE(subtable),5);*/
	label = gtk_label_new(NULL);
	gtk_label_set_markup(GTK_LABEL(label),"<b>Minor</b> Ticks");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);

	/* Labels */
	widget = gtk_label_new("Total Ticks");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Length");
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Width");
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Inset");
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Day");
	gtk_table_attach(GTK_TABLE(subtable),widget,4,5,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Night");
	gtk_table_attach(GTK_TABLE(subtable),widget,5,6,0,1,GTK_EXPAND,GTK_EXPAND,0,0);

	/* Spinners */
	widget = gtk_spin_button_new_with_range(0.0,100.0,1);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_NUM_MIN_TICKS));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 1.0, "digits", 0, "numeric", TRUE, NULL);
	gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),tgroup->num_min_ticks);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,1,2,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(0.0,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MIN_TICK_LENGTH));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tgroup->min_tick_length, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,1,2,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(0.0,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MIN_TICK_WIDTH));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tgroup->min_tick_width, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,1,2,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(0.0,1.0,0.001);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MIN_TICK_INSET));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 0.001, "digits", 3, "numeric", TRUE, "value", tgroup->min_tick_inset, NULL);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,1,2,0,GTK_EXPAND,0,0);

	widget = gtk_color_button_new_with_color(&tgroup->min_tick_color[MTX_DAY]);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MIN_TICK_COLOR_DAY));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"color_set",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,4,5,1,2,GTK_FILL,GTK_EXPAND,0,0);

	widget = gtk_color_button_new_with_color(&tgroup->min_tick_color[MTX_NITE]);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_MIN_TICK_COLOR_NITE));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_signal_connect(G_OBJECT(widget),"color_set",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,5,6,1,2,GTK_FILL,GTK_EXPAND,0,0);

	/* Tick Span Tab */
	subtable = gtk_table_new(3,4,FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(subtable),5);
	label = gtk_label_new("Tick Span");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);

	widget = gtk_label_new("Angular Span (deg.)");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,2,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Span (Gauge Units)");
	gtk_table_attach(GTK_TABLE(subtable),widget,2,4,0,1,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Start Angle");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,1,2,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Sweep Angle");
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,1,2,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("Low Point");
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,1,2,GTK_EXPAND,GTK_EXPAND,0,0);
	widget = gtk_label_new("High Point");
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,1,2,GTK_EXPAND,GTK_EXPAND,0,0);
	/* Span Spinners */
	widget = gtk_spin_button_new_with_range(-360.0,360.0,0.1);
	start = widget;
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_START_ANGLE));
	OBJ_SET(widget,"spin_handler",GINT_TO_POINTER(ADJ_LOW_UNIT_PARTNER));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,2,3,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(-360.0,360.0,0.1);
	sweep = widget;
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_SWEEP_ANGLE));
	OBJ_SET(widget,"spin_handler",GINT_TO_POINTER(ADJ_HIGH_UNIT_PARTNER));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,2,3,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(-99999.0,99999.0,0.1);
	low = widget;
	OBJ_SET(widget,"handler",GINT_TO_POINTER(ADJ_START_ANGLE_PARTNER));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(low),"climb-rate", 0.1, "digits", 1, "numeric", TRUE, NULL);
	g_signal_connect(G_OBJECT(low),"value-changed",G_CALLBACK(tg_spin_button_handler),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,2,3,2,3,0,GTK_EXPAND,0,0);

	widget = gtk_spin_button_new_with_range(-99999.0,99999.0,0.1);
	high = widget;
	OBJ_SET(widget,"handler",GINT_TO_POINTER(ADJ_SWEEP_ANGLE_PARTNER));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(high),"climb-rate", 0.1, "digits", 1, "numeric", TRUE, NULL);
	g_signal_connect(G_OBJECT(high),"value-changed",G_CALLBACK(tg_spin_button_handler),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,3,4,2,3,0,GTK_EXPAND,0,0);

	/* Start/Sweep <-> Low/High interconnectedness 
	 * This is done like shit and I don't like it..
	 */
	OBJ_SET(start,"lowpartner",low);
	OBJ_SET(start,"highpartner",high);
	OBJ_SET(start,"high_angle",sweep);
	OBJ_SET(sweep,"highpartner",high);
	OBJ_SET(sweep,"low_angle",start);
	OBJ_SET(low,"lowpartner",start);
	OBJ_SET(high,"highpartner",sweep);
	OBJ_SET(high,"start_angle",start);
	/* Connect the signals, then set the values to trigger the linked
	 * spinners to update, THEN enable change handlers, as the gauge
	 * ALREADY has the info, no need to set it again..
	 */
	g_signal_connect(G_OBJECT(start),"value-changed",G_CALLBACK(tg_spin_button_handler),NULL);
	g_signal_connect(G_OBJECT(sweep),"value-changed",G_CALLBACK(tg_spin_button_handler),NULL);
	g_object_set(G_OBJECT(start),"climb-rate", 0.1, "digits", 1, "numeric", TRUE, "value", tgroup->start_angle, NULL);
	g_object_set(G_OBJECT(sweep),"climb-rate", 0.1, "digits", 1, "numeric", TRUE, "value", tgroup->sweep_angle, NULL);
	g_signal_connect(G_OBJECT(start),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	g_signal_connect(G_OBJECT(sweep),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);

	/* Layer Tab: Layer */
	subtable = gtk_table_new(1,4,FALSE);
	gtk_table_set_col_spacings(GTK_TABLE(subtable),5);
	label = gtk_label_new("Layer");
	gtk_notebook_append_page(GTK_NOTEBOOK(notebook),subtable,label);
	gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(notebook),subtable,TRUE,TRUE,GTK_PACK_START);

	widget = gtk_label_new("Layer:");
	gtk_table_attach(GTK_TABLE(subtable),widget,0,1,0,1,GTK_FILL,0,0,0);
	widget = gtk_spin_button_new_with_range(0.0,10.0,1.0);
	OBJ_SET(widget,"handler",GINT_TO_POINTER(TG_LAYER));
	OBJ_SET(widget,"index",GINT_TO_POINTER(index));
	g_object_set(G_OBJECT(widget),"climb-rate", 1.0, "digits", 0, "numeric", TRUE, NULL);
	gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),(gfloat)tgroup->layer);
	g_signal_connect(G_OBJECT(widget),"value-changed",G_CALLBACK(alter_tgroup_data),NULL);
	gtk_table_attach(GTK_TABLE(subtable),widget,1,2,0,1,GTK_FILL,0,0,0);

	widget = gtk_hseparator_new();
	gtk_table_attach(GTK_TABLE(table),widget,0,2,1,2,GTK_FILL,0,0,0);
	return table;
}