Author: peter Date: 2007-01-27 17:24:54 +0000 (Sat, 27 Jan 2007) New Revision: 24772
Modified: squeeze/trunk/src/main_window.c squeeze/trunk/src/main_window.h Log: fixed bugs concerning show menubar added show toolbar in the config file: ToolBar Modified: squeeze/trunk/src/main_window.c =================================================================== --- squeeze/trunk/src/main_window.c 2007-01-26 23:00:51 UTC (rev 24771) +++ squeeze/trunk/src/main_window.c 2007-01-27 17:24:54 UTC (rev 24772) @@ -206,6 +206,11 @@ else sq_settings_write_bool_entry(window->settings, "MenuBar", FALSE); + if(window->tool_bar) + sq_settings_write_bool_entry(window->settings, "ToolBar", TRUE); + else + sq_settings_write_bool_entry(window->settings, "ToolBar", FALSE); + if(!window->navigationbar) { sq_settings_write_entry(window->settings, "NavigationBar", "None"); @@ -245,7 +250,6 @@ static void sq_main_window_init(SQMainWindow *window) { - GtkWidget *toolbar; GtkToolItem *tool_separator; GtkWidget *menu_separator; GtkWidget *tmp_image; @@ -257,6 +261,7 @@ gboolean sort_folders = TRUE; gboolean use_tabs = TRUE; gboolean show_menubar = TRUE; + gboolean show_toolbar = TRUE; window->accel_group = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(window), window->accel_group); @@ -373,52 +378,57 @@ gtk_menu_bar_append(GTK_MENU_BAR(window->menu_bar), window->menubar.menu_item_help); } - toolbar = gtk_toolbar_new(); + show_toolbar = sq_settings_read_bool_entry(window->settings, "ToolBar", TRUE); -/* Archive pane */ - window->toolbar.tool_item_new = gtk_tool_button_new_from_stock(GTK_STOCK_NEW); - window->toolbar.tool_item_open = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN); - tool_separator = gtk_separator_tool_item_new (); + if(show_toolbar) + { + window->tool_bar = gtk_toolbar_new(); - gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(window->toolbar.tool_item_new)); - gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(window->toolbar.tool_item_open)); - gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(tool_separator)); + /* Archive pane */ + window->toolbar.tool_item_new = gtk_tool_button_new_from_stock(GTK_STOCK_NEW); + window->toolbar.tool_item_open = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN); + tool_separator = gtk_separator_tool_item_new (); - g_signal_connect(G_OBJECT(window->toolbar.tool_item_new), "clicked", G_CALLBACK(cb_sq_main_new_archive), window); - g_signal_connect(G_OBJECT(window->toolbar.tool_item_open), "clicked", G_CALLBACK(cb_sq_main_open_archive), window); + gtk_container_add(GTK_CONTAINER(window->tool_bar), GTK_WIDGET(window->toolbar.tool_item_new)); + gtk_container_add(GTK_CONTAINER(window->tool_bar), GTK_WIDGET(window->toolbar.tool_item_open)); + gtk_container_add(GTK_CONTAINER(window->tool_bar), GTK_WIDGET(tool_separator)); -/* Action pane */ - tmp_image = sq_main_window_find_image("archive-add.png", GTK_ICON_SIZE_LARGE_TOOLBAR); - window->toolbar.tool_item_add = gtk_tool_button_new(tmp_image, _("Add")); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE); + g_signal_connect(G_OBJECT(window->toolbar.tool_item_new), "clicked", G_CALLBACK(cb_sq_main_new_archive), window); + g_signal_connect(G_OBJECT(window->toolbar.tool_item_open), "clicked", G_CALLBACK(cb_sq_main_open_archive), window); - tmp_image = sq_main_window_find_image("archive-extract.png", GTK_ICON_SIZE_LARGE_TOOLBAR); - window->toolbar.tool_item_extract = gtk_tool_button_new(tmp_image, _("Extract")); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE); + /* Action pane */ + tmp_image = sq_main_window_find_image("archive-add.png", GTK_ICON_SIZE_LARGE_TOOLBAR); + window->toolbar.tool_item_add = gtk_tool_button_new(tmp_image, _("Add")); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE); - window->toolbar.tool_item_remove = gtk_tool_button_new_from_stock(GTK_STOCK_DELETE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE); + tmp_image = sq_main_window_find_image("archive-extract.png", GTK_ICON_SIZE_LARGE_TOOLBAR); + window->toolbar.tool_item_extract = gtk_tool_button_new(tmp_image, _("Extract")); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE); - tool_separator = gtk_separator_tool_item_new (); + window->toolbar.tool_item_remove = gtk_tool_button_new_from_stock(GTK_STOCK_DELETE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE); - gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(window->toolbar.tool_item_add)); - gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(window->toolbar.tool_item_extract)); - gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(window->toolbar.tool_item_remove)); - gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(tool_separator)); + tool_separator = gtk_separator_tool_item_new (); - g_signal_connect(G_OBJECT(window->toolbar.tool_item_add), "clicked", G_CALLBACK(cb_sq_main_add_to_archive), window); - g_signal_connect(G_OBJECT(window->toolbar.tool_item_extract), "clicked", G_CALLBACK(cb_sq_main_extract_archive), window); - g_signal_connect(G_OBJECT(window->toolbar.tool_item_remove), "clicked", G_CALLBACK(cb_sq_main_remove_from_archive), window); + gtk_container_add(GTK_CONTAINER(window->tool_bar), GTK_WIDGET(window->toolbar.tool_item_add)); + gtk_container_add(GTK_CONTAINER(window->tool_bar), GTK_WIDGET(window->toolbar.tool_item_extract)); + gtk_container_add(GTK_CONTAINER(window->tool_bar), GTK_WIDGET(window->toolbar.tool_item_remove)); + gtk_container_add(GTK_CONTAINER(window->tool_bar), GTK_WIDGET(tool_separator)); -/* control pane */ + g_signal_connect(G_OBJECT(window->toolbar.tool_item_add), "clicked", G_CALLBACK(cb_sq_main_add_to_archive), window); + g_signal_connect(G_OBJECT(window->toolbar.tool_item_extract), "clicked", G_CALLBACK(cb_sq_main_extract_archive), window); + g_signal_connect(G_OBJECT(window->toolbar.tool_item_remove), "clicked", G_CALLBACK(cb_sq_main_remove_from_archive), window); - window->toolbar.tool_item_stop = gtk_tool_button_new_from_stock(GTK_STOCK_STOP); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE); + /* control pane */ - gtk_container_add(GTK_CONTAINER(toolbar), GTK_WIDGET(window->toolbar.tool_item_stop)); + window->toolbar.tool_item_stop = gtk_tool_button_new_from_stock(GTK_STOCK_STOP); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE); - g_signal_connect(G_OBJECT(window->toolbar.tool_item_stop), "clicked", G_CALLBACK(cb_sq_main_stop_archive), window); + gtk_container_add(GTK_CONTAINER(window->tool_bar), GTK_WIDGET(window->toolbar.tool_item_stop)); + g_signal_connect(G_OBJECT(window->toolbar.tool_item_stop), "clicked", G_CALLBACK(cb_sq_main_stop_archive), window); + } + nav_bar = sq_settings_read_entry(window->settings, "NavigationBar", "None"); window->nav_style = SQ_MAIN_WINDOW_NAVIGATION_INTERNAL; window->navigationbar = NULL; @@ -457,30 +467,33 @@ g_signal_connect(G_OBJECT(window->notebook), "active-archive-status-changed", G_CALLBACK(cb_sq_main_window_notebook_status_changed), window); /* menu item */ - list = sq_widget_factory_create_property_menu(window->widget_factory, G_OBJECT(window->notebook), "show-icons"); - for(iter = list; iter; iter = iter->next) + if(show_menubar) { - gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data); - gtk_widget_show(iter->data); + list = sq_widget_factory_create_property_menu(window->widget_factory, G_OBJECT(window->notebook), "show-icons"); + for(iter = list; iter; iter = iter->next) + { + gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data); + gtk_widget_show(iter->data); + } + list = sq_widget_factory_create_property_menu(window->widget_factory, G_OBJECT(window->notebook), "sort-folders-first"); + for(iter = list; iter; iter = iter->next) + { + gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data); + gtk_widget_show(iter->data); + } + list = sq_widget_factory_create_property_menu(window->widget_factory, G_OBJECT(window->notebook), "sort-case-sensitive"); + for(iter = list; iter; iter = iter->next) + { + gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data); + gtk_widget_show(iter->data); + } + list = sq_widget_factory_create_property_menu(window->widget_factory, G_OBJECT(window->notebook), "rules-hint"); + for(iter = list; iter; iter = iter->next) + { + gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data); + gtk_widget_show(iter->data); + } } - list = sq_widget_factory_create_property_menu(window->widget_factory, G_OBJECT(window->notebook), "sort-folders-first"); - for(iter = list; iter; iter = iter->next) - { - gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data); - gtk_widget_show(iter->data); - } - list = sq_widget_factory_create_property_menu(window->widget_factory, G_OBJECT(window->notebook), "sort-case-sensitive"); - for(iter = list; iter; iter = iter->next) - { - gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data); - gtk_widget_show(iter->data); - } - list = sq_widget_factory_create_property_menu(window->widget_factory, G_OBJECT(window->notebook), "rules-hint"); - for(iter = list; iter; iter = iter->next) - { - gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data); - gtk_widget_show(iter->data); - } /* Statusbar */ @@ -489,7 +502,8 @@ if(show_menubar) gtk_box_pack_start(GTK_BOX(window->main_vbox), window->menu_bar, FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(window->main_vbox), toolbar, FALSE, FALSE, 0); + if(show_toolbar) + gtk_box_pack_start(GTK_BOX(window->main_vbox), window->tool_bar, FALSE, FALSE, 0); if(window->navigationbar) { @@ -502,7 +516,8 @@ gtk_box_pack_end(GTK_BOX(window->main_vbox), window->statusbar, FALSE, FALSE, 0); gtk_widget_show_all(window->main_vbox); - gtk_widget_show_all(toolbar); + if(show_toolbar) + gtk_widget_show_all(window->tool_bar); gtk_widget_show_all(window->notebook); gtk_widget_show_all(window->statusbar); @@ -588,6 +603,9 @@ static void sq_main_window_new_action_menu(SQMainWindow *window, LSQArchiveSupport *support, LSQArchive *archive) { + if(!window->menu_bar) + return; + GSList *iter, *list; gtk_container_remove(GTK_CONTAINER(window->menubar.menu_action), window->menubar.menu_item_add); @@ -981,25 +999,37 @@ if(lp_archive && (status == LSQ_ARCHIVESTATUS_IDLE || status == LSQ_ARCHIVESTATUS_ERROR || status == LSQ_ARCHIVESTATUS_USERBREAK)) { - gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_add), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_extract), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_remove), TRUE); + if(window->menu_bar) + { + gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_add), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_extract), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_remove), TRUE); + } - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE); + if(window->tool_bar) + { + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE); + } } else { - gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_add), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_extract), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_remove), FALSE); + if(window->menu_bar) + { + gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_add), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_extract), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(window->menubar.menu_item_remove), FALSE); + } - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), TRUE); + if(window->tool_bar) + { + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), TRUE); + } } gtk_window_set_title(GTK_WINDOW(window), g_strconcat(PACKAGE_NAME, " - ", lsq_archive_get_filename(lp_archive), NULL)); @@ -1017,17 +1047,23 @@ if(!gtk_notebook_get_n_pages(GTK_NOTEBOOK(notebook))) { - gtk_widget_set_sensitive(window->menubar.menu_item_close, FALSE); - gtk_widget_set_sensitive(window->menubar.menu_item_properties, FALSE); + if(window->menu_bar) + { + gtk_widget_set_sensitive(window->menubar.menu_item_close, FALSE); + gtk_widget_set_sensitive(window->menubar.menu_item_properties, FALSE); - gtk_widget_set_sensitive(window->menubar.menu_item_add, FALSE); - gtk_widget_set_sensitive(window->menubar.menu_item_extract, FALSE); - gtk_widget_set_sensitive(window->menubar.menu_item_remove, FALSE); + gtk_widget_set_sensitive(window->menubar.menu_item_add, FALSE); + gtk_widget_set_sensitive(window->menubar.menu_item_extract, FALSE); + gtk_widget_set_sensitive(window->menubar.menu_item_remove, FALSE); + } - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE); + if(window->tool_bar) + { + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE); + } gtk_window_set_title(GTK_WINDOW(window), PACKAGE_STRING); } @@ -1180,17 +1216,23 @@ if((status == LSQ_ARCHIVESTATUS_IDLE) || (status == LSQ_ARCHIVESTATUS_USERBREAK) || (status == LSQ_ARCHIVESTATUS_ERROR)) { - gtk_widget_set_sensitive(window->menubar.menu_item_close, TRUE); - gtk_widget_set_sensitive(window->menubar.menu_item_properties, TRUE); + if(window->menu_bar) + { + gtk_widget_set_sensitive(window->menubar.menu_item_close, TRUE); + gtk_widget_set_sensitive(window->menubar.menu_item_properties, TRUE); - gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE); - gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE); - gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE); + gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE); + gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE); + gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE); + } - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE); - gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE); + if(window->tool_bar) + { + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE); + } } guint context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(window->statusbar), "Window Statusbar"); Modified: squeeze/trunk/src/main_window.h =================================================================== --- squeeze/trunk/src/main_window.h 2007-01-26 23:00:51 UTC (rev 24771) +++ squeeze/trunk/src/main_window.h 2007-01-27 17:24:54 UTC (rev 24772) @@ -69,6 +69,7 @@ GtkIconTheme *icon_theme; SQApplication *app; GtkWidget *menu_bar; + GtkWidget *tool_bar; GtkWidget *main_vbox; SQWidgetFactory *widget_factory; struct { _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits