From: Dan Dennedy Date: Sat, 13 Nov 2010 19:59:53 +0000 (-0800) Subject: Cleanup the menu and toolbars. X-Git-Url: http://research.m1stereo.tv/gitweb?a=commitdiff_plain;h=9d371665b5776eb4cb529fe8f242fccce32f6c8d;p=rugen Cleanup the menu and toolbars. --- diff --git a/src/dv1394app.c b/src/dv1394app.c index bbc86dd..801ae90 100644 --- a/src/dv1394app.c +++ b/src/dv1394app.c @@ -99,6 +99,10 @@ static gboolean on_connect_pressed( GtkWidget *button, gpointer user_data ) instance_connect( this, server, port ); } gtk_widget_destroy( this->connect ); + this->guard = 1; + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( lookup_widget( this->window, "button_connect" ) ), TRUE ); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( lookup_widget( this->window, "button_disconnect" ) ), FALSE ); + this->guard = 0; return FALSE; } @@ -109,6 +113,7 @@ static gboolean on_connect_pressed( GtkWidget *button, gpointer user_data ) static gboolean on_cancel_pressed( GtkWidget *button, gpointer user_data ) { dv1394app this = user_data; + if ( this->guard ) return FALSE; gtk_widget_destroy( this->connect ); return FALSE; } @@ -121,6 +126,7 @@ void on_item_connect_activate( GtkMenuItem *menuitem, gpointer user_data ) dv1394app this = user_data; GtkWidget *widget; + if ( this->guard ) return; this->connect = create_window_connection( ); /* Connection set up handling */ @@ -138,7 +144,14 @@ void on_item_connect_activate( GtkMenuItem *menuitem, gpointer user_data ) void on_item_disconnect_activate( GtkMenuItem *menuitem, gpointer user_data ) { dv1394app this = user_data; + + if ( this->guard ) return; dv1394app_disconnect( this ); + + this->guard = 1; + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( lookup_widget( this->window, "button_connect" ) ), FALSE ); + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( lookup_widget( this->window, "button_disconnect" ) ), TRUE ); + this->guard = 0; } /** Main window - quit menu item selected. @@ -154,14 +167,20 @@ static gboolean on_page_switch_pressed( GtkWidget *button, gpointer user_data ) dv1394app this = user_data; int index = 0; GtkWidget *notebook = lookup_widget( button, "notebook1" ); - + + if ( this->guard ) return TRUE; + this->guard = 1; + for ( index = 0; index < this->page_count; index ++ ) + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( this->page_buttons[ index ] ), FALSE ); for ( index = 0; index < this->page_count; index ++ ) { + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( this->page_buttons[ index ] ), FALSE ); if ( this->page_buttons[ index ] == button ) break; } - + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( this->page_buttons[ index ] ), TRUE ); gtk_notebook_set_current_page( GTK_NOTEBOOK( notebook ), index ); + this->guard = 0; return TRUE; } @@ -232,7 +251,7 @@ static gboolean on_transport_pressed( GtkWidget *button, gpointer data ) static void dv1394app_register_page( dv1394app this, page item ) { - GtkWidget *toolbar = lookup_widget( this->window, "toolbar2" ); + GtkWidget *toolbar = lookup_widget( this->window, "toolbar1" ); GtkIconSize size = gtk_toolbar_get_icon_size( GTK_TOOLBAR( toolbar ) ); GtkWidget *widget = lookup_widget( this->window, "notebook1" ); GtkWidget *bin = gtk_frame_new( NULL ); @@ -246,7 +265,7 @@ static void dv1394app_register_page( dv1394app this, page item ) gtk_widget_show( bin ); page_get_toolbar_info( item, size, &widget, &label ); - this->page_buttons[ this->page_count ] = gtk_toolbar_append_element( GTK_TOOLBAR ( toolbar ), GTK_TOOLBAR_CHILD_BUTTON, NULL, label, NULL, NULL, widget, NULL, NULL); + this->page_buttons[ this->page_count ] = gtk_toolbar_append_element( GTK_TOOLBAR ( toolbar ), GTK_TOOLBAR_CHILD_TOGGLEBUTTON, NULL, label, NULL, NULL, widget, NULL, NULL); gtk_label_set_use_underline( GTK_LABEL(((GtkToolbarChild*)(g_list_last( GTK_TOOLBAR( toolbar )->children)->data))->label), TRUE); gtk_widget_show( widget ); gtk_signal_connect( GTK_OBJECT( this->page_buttons[ this->page_count ] ), "clicked", GTK_SIGNAL_FUNC( on_page_switch_pressed ), this ); @@ -355,23 +374,26 @@ dv1394app dv1394app_init( GtkWidget *window, char *instance ) gtk_signal_connect( GTK_OBJECT( this->window ), "destroy", GTK_SIGNAL_FUNC( on_main_window_delete_event ), this ); /* Menu item signal handling */ - widget = lookup_widget( this->window, "item_connect" ); - gtk_signal_connect( GTK_OBJECT( widget ), "activate", GTK_SIGNAL_FUNC( on_item_connect_activate ), this ); +// widget = lookup_widget( this->window, "item_connect" ); +// gtk_signal_connect( GTK_OBJECT( widget ), "activate", GTK_SIGNAL_FUNC( on_item_connect_activate ), this ); widget = lookup_widget( this->window, "button_connect" ); gtk_signal_connect( GTK_OBJECT( widget ), "clicked", GTK_SIGNAL_FUNC( on_item_connect_activate ), this ); - widget = lookup_widget( this->window, "item_disconnect" ); - gtk_signal_connect( GTK_OBJECT( widget ), "activate", GTK_SIGNAL_FUNC( on_item_disconnect_activate ), this ); +// widget = lookup_widget( this->window, "item_disconnect" ); +// gtk_signal_connect( GTK_OBJECT( widget ), "activate", GTK_SIGNAL_FUNC( on_item_disconnect_activate ), this ); widget = lookup_widget( this->window, "button_disconnect" ); gtk_signal_connect( GTK_OBJECT( widget ), "clicked", GTK_SIGNAL_FUNC( on_item_disconnect_activate ), this ); - widget = lookup_widget( this->window, "item_quit" ); - gtk_signal_connect( GTK_OBJECT( widget ), "activate", GTK_SIGNAL_FUNC( on_item_quit_activate ), this ); - widget = lookup_widget( this->window, "button_quit" ); - gtk_signal_connect( GTK_OBJECT( widget ), "clicked", GTK_SIGNAL_FUNC( on_item_quit_activate ), this ); - +// widget = lookup_widget( this->window, "item_quit" ); +// gtk_signal_connect( GTK_OBJECT( widget ), "activate", GTK_SIGNAL_FUNC( on_item_quit_activate ), this ); +// widget = lookup_widget( this->window, "button_quit" ); +// gtk_signal_connect( GTK_OBJECT( widget ), "clicked", GTK_SIGNAL_FUNC( on_item_quit_activate ), this ); + /* Initialise the pages. */ dv1394app_register_page( this, page_status_init( this ) ); dv1394app_register_page( this, page_clips_init( this ) ); dv1394app_register_page( this, page_command_init( this ) ); + this->guard = 1; + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( this->page_buttons[ 0 ] ), TRUE ); + this->guard = 0; /* Remove the empty page */ widget = lookup_widget( this->window, "notebook1" ); @@ -427,7 +449,12 @@ dv1394app dv1394app_init( GtkWidget *window, char *instance ) *port ++ = '\0'; else port = "5250"; - instance_connect( this, server, port ); + this->guard = 1; + if ( instance_connect( this, server, port ) ) + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( lookup_widget( this->window, "button_connect" ) ), TRUE ); + else + gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( lookup_widget( this->window, "button_disconnect" ) ), TRUE ); + this->guard = 0; free( server ); } diff --git a/src/dv1394app.h b/src/dv1394app.h index 0bac95b..6b22e18 100644 --- a/src/dv1394app.h +++ b/src/dv1394app.h @@ -45,6 +45,7 @@ typedef struct int trim_in; int trim_out; + int guard; } *dv1394app, dv1394app_t; diff --git a/src/interface.c b/src/interface.c index 1d841d3..8aff9cf 100644 --- a/src/interface.c +++ b/src/interface.c @@ -31,24 +31,24 @@ create_gdv1394d (void) { GtkWidget *gdv1394d; GtkWidget *vbox1; - GtkWidget *handlebox2; +// GtkWidget *handlebox2; GtkWidget *hbox27; GtkWidget *vbox9; - GtkWidget *menubar; - GtkWidget *menuitem1; - GtkWidget *menuitem1_menu; - GtkWidget *item_connect; - GtkWidget *item_disconnect; - GtkWidget *separatormenuitem1; - GtkWidget *item_quit; +// GtkWidget *menubar; +// GtkWidget *menuitem1; +// GtkWidget *menuitem1_menu; +// GtkWidget *item_connect; +// GtkWidget *item_disconnect; +// GtkWidget *separatormenuitem1; +// GtkWidget *item_quit; GtkWidget *toolbar1; GtkWidget *tmp_toolbar_icon; GtkWidget *button_connect; GtkWidget *button_disconnect; - GtkWidget *vseparator1; - GtkWidget *button_quit; +// GtkWidget *vseparator1; +// GtkWidget *button_quit; GtkWidget *hbox; - GtkWidget *toolbar2; +// GtkWidget *toolbar2; GtkWidget *vbox6; GtkWidget *notebook1; GtkWidget *empty_notebook_page; @@ -93,96 +93,97 @@ create_gdv1394d (void) gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (gdv1394d), vbox1); - handlebox2 = gtk_handle_box_new (); - gtk_widget_show (handlebox2); - gtk_box_pack_start (GTK_BOX (vbox1), handlebox2, FALSE, FALSE, 0); +// handlebox2 = gtk_handle_box_new (); +// gtk_widget_show (handlebox2); +// gtk_box_pack_start (GTK_BOX (vbox1), handlebox2, FALSE, FALSE, 0); hbox27 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox27); - gtk_container_add (GTK_CONTAINER (handlebox2), hbox27); +// gtk_container_add (GTK_CONTAINER (handlebox2), hbox27); + gtk_box_pack_start (GTK_BOX (vbox1), hbox27, FALSE, FALSE, 0); vbox9 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox9); gtk_box_pack_start (GTK_BOX (hbox27), vbox9, TRUE, TRUE, 0); - menubar = gtk_menu_bar_new (); - gtk_widget_show (menubar); - gtk_box_pack_start (GTK_BOX (vbox9), menubar, TRUE, TRUE, 0); +// menubar = gtk_menu_bar_new (); +// gtk_widget_show (menubar); +// gtk_box_pack_start (GTK_BOX (vbox9), menubar, TRUE, TRUE, 0); - menuitem1 = gtk_menu_item_new_with_mnemonic (_("_File")); - gtk_widget_show (menuitem1); - gtk_container_add (GTK_CONTAINER (menubar), menuitem1); +// menuitem1 = gtk_menu_item_new_with_mnemonic (_("_File")); +// gtk_widget_show (menuitem1); +// gtk_container_add (GTK_CONTAINER (menubar), menuitem1); - menuitem1_menu = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menuitem1_menu); +// menuitem1_menu = gtk_menu_new (); +// gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menuitem1_menu); - item_connect = gtk_menu_item_new_with_mnemonic (_("_Connect")); - gtk_widget_show (item_connect); - gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_connect); +// item_connect = gtk_menu_item_new_with_mnemonic (_("_Connect")); +// gtk_widget_show (item_connect); +// gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_connect); - item_disconnect = gtk_menu_item_new_with_mnemonic (_("_Disconnect")); - gtk_widget_show (item_disconnect); - gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_disconnect); +// item_disconnect = gtk_menu_item_new_with_mnemonic (_("_Disconnect")); +// gtk_widget_show (item_disconnect); +// gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_disconnect); - separatormenuitem1 = gtk_menu_item_new (); - gtk_widget_show (separatormenuitem1); - gtk_container_add (GTK_CONTAINER (menuitem1_menu), separatormenuitem1); - gtk_widget_set_sensitive (separatormenuitem1, FALSE); +// separatormenuitem1 = gtk_menu_item_new (); +// gtk_widget_show (separatormenuitem1); +// gtk_container_add (GTK_CONTAINER (menuitem1_menu), separatormenuitem1); +// gtk_widget_set_sensitive (separatormenuitem1, FALSE); - item_quit = gtk_menu_item_new_with_mnemonic (_("_Quit")); - gtk_widget_show (item_quit); - gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_quit); +// item_quit = gtk_menu_item_new_with_mnemonic (_("_Quit")); +// gtk_widget_show (item_quit); +// gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_quit); toolbar1 = gtk_toolbar_new (); gtk_widget_show (toolbar1); - gtk_box_pack_start (GTK_BOX (hbox27), toolbar1, FALSE, FALSE, 0); - gtk_toolbar_set_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_ICONS); + gtk_box_pack_start (GTK_BOX (hbox27), toolbar1, TRUE, TRUE, 0); + gtk_toolbar_set_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_BOTH); - tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-yes", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); + tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-connect", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); button_connect = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), - GTK_TOOLBAR_CHILD_BUTTON, + GTK_TOOLBAR_CHILD_TOGGLEBUTTON, NULL, - "", + "Connect", _("Connect to a server"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); gtk_widget_show (button_connect); - tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-stop", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); + tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-disconnect", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); button_disconnect = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), - GTK_TOOLBAR_CHILD_BUTTON, + GTK_TOOLBAR_CHILD_TOGGLEBUTTON, NULL, - "", + "Disconnect", _("Disconnect from server"), NULL, tmp_toolbar_icon, NULL, NULL); gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); gtk_widget_show (button_disconnect); - vseparator1 = gtk_vseparator_new (); - gtk_widget_show (vseparator1); gtk_toolbar_append_space (GTK_TOOLBAR (toolbar1)); - gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), vseparator1, NULL, NULL); +// vseparator1 = gtk_vseparator_new (); +// gtk_widget_show (vseparator1); +// gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), vseparator1, NULL, NULL); - tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-quit", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); - button_quit = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - "", - _("Exit"), NULL, - tmp_toolbar_icon, NULL, NULL); - gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); - gtk_widget_show (button_quit); +// tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-quit", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); +// button_quit = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), +// GTK_TOOLBAR_CHILD_BUTTON, +// NULL, +// "", +// _("Exit"), NULL, +// tmp_toolbar_icon, NULL, NULL); +// gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); +// gtk_widget_show (button_quit); hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox1), hbox, TRUE, TRUE, 0); - toolbar2 = gtk_toolbar_new (); - gtk_widget_show (toolbar2); - gtk_box_pack_start (GTK_BOX (hbox), toolbar2, FALSE, TRUE, 0); - gtk_toolbar_set_style (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_BOTH); - gtk_toolbar_set_orientation (GTK_TOOLBAR (toolbar2), GTK_ORIENTATION_VERTICAL); +// toolbar2 = gtk_toolbar_new (); +// gtk_widget_show (toolbar2); +// gtk_box_pack_start (GTK_BOX (hbox), toolbar2, FALSE, TRUE, 0); +// gtk_toolbar_set_style (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_BOTH); +// gtk_toolbar_set_orientation (GTK_TOOLBAR (toolbar2), GTK_ORIENTATION_VERTICAL); vbox6 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox6); @@ -195,6 +196,7 @@ create_gdv1394d (void) gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook1), FALSE); gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook1), GTK_POS_RIGHT); gtk_notebook_popup_enable (GTK_NOTEBOOK (notebook1)); + gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook1), FALSE); empty_notebook_page = gtk_vbox_new (FALSE, 0); gtk_widget_show (empty_notebook_page); @@ -368,23 +370,23 @@ create_gdv1394d (void) /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (gdv1394d, gdv1394d, "gdv1394d"); GLADE_HOOKUP_OBJECT (gdv1394d, vbox1, "vbox1"); - GLADE_HOOKUP_OBJECT (gdv1394d, handlebox2, "handlebox2"); +// GLADE_HOOKUP_OBJECT (gdv1394d, handlebox2, "handlebox2"); GLADE_HOOKUP_OBJECT (gdv1394d, hbox27, "hbox27"); GLADE_HOOKUP_OBJECT (gdv1394d, vbox9, "vbox9"); - GLADE_HOOKUP_OBJECT (gdv1394d, menubar, "menubar"); - GLADE_HOOKUP_OBJECT (gdv1394d, menuitem1, "menuitem1"); - GLADE_HOOKUP_OBJECT (gdv1394d, menuitem1_menu, "menuitem1_menu"); - GLADE_HOOKUP_OBJECT (gdv1394d, item_connect, "item_connect"); - GLADE_HOOKUP_OBJECT (gdv1394d, item_disconnect, "item_disconnect"); - GLADE_HOOKUP_OBJECT (gdv1394d, separatormenuitem1, "separatormenuitem1"); - GLADE_HOOKUP_OBJECT (gdv1394d, item_quit, "item_quit"); +// GLADE_HOOKUP_OBJECT (gdv1394d, menubar, "menubar"); +// GLADE_HOOKUP_OBJECT (gdv1394d, menuitem1, "menuitem1"); +// GLADE_HOOKUP_OBJECT (gdv1394d, menuitem1_menu, "menuitem1_menu"); +// GLADE_HOOKUP_OBJECT (gdv1394d, item_connect, "item_connect"); +// GLADE_HOOKUP_OBJECT (gdv1394d, item_disconnect, "item_disconnect"); +// GLADE_HOOKUP_OBJECT (gdv1394d, separatormenuitem1, "separatormenuitem1"); +// GLADE_HOOKUP_OBJECT (gdv1394d, item_quit, "item_quit"); GLADE_HOOKUP_OBJECT (gdv1394d, toolbar1, "toolbar1"); GLADE_HOOKUP_OBJECT (gdv1394d, button_connect, "button_connect"); GLADE_HOOKUP_OBJECT (gdv1394d, button_disconnect, "button_disconnect"); - GLADE_HOOKUP_OBJECT (gdv1394d, vseparator1, "vseparator1"); - GLADE_HOOKUP_OBJECT (gdv1394d, button_quit, "button_quit"); +// GLADE_HOOKUP_OBJECT (gdv1394d, vseparator1, "vseparator1"); +// GLADE_HOOKUP_OBJECT (gdv1394d, button_quit, "button_quit"); GLADE_HOOKUP_OBJECT (gdv1394d, hbox, "hbox"); - GLADE_HOOKUP_OBJECT (gdv1394d, toolbar2, "toolbar2"); +// GLADE_HOOKUP_OBJECT (gdv1394d, toolbar2, "toolbar2"); GLADE_HOOKUP_OBJECT (gdv1394d, vbox6, "vbox6"); GLADE_HOOKUP_OBJECT (gdv1394d, notebook1, "notebook1"); GLADE_HOOKUP_OBJECT (gdv1394d, label40, "label40");