Cleanup the menu and toolbars.
authorDan Dennedy <dan@dennedy.org>
Sat, 13 Nov 2010 19:59:53 +0000 (11:59 -0800)
committerDan Dennedy <dan@dennedy.org>
Sat, 13 Nov 2010 19:59:53 +0000 (11:59 -0800)
src/dv1394app.c
src/dv1394app.h
src/interface.c

index bbc86dd..801ae90 100644 (file)
@@ -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 );
        }
 
index 0bac95b..6b22e18 100644 (file)
@@ -45,6 +45,7 @@ typedef struct
        
        int trim_in;
        int trim_out;
+       int guard;
 }
 *dv1394app, dv1394app_t;
 
index 1d841d3..8aff9cf 100644 (file)
@@ -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");