Index: menus/image-toolbar.xml =================================================================== --- menus/image-toolbar.xml (revision 0) +++ menus/image-toolbar.xml (revision 0) @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: menus/image-menu.xml.in =================================================================== --- menus/image-menu.xml.in (revision 25899) +++ menus/image-menu.xml.in (working copy) @@ -283,6 +283,7 @@ + Index: menus/Makefile.am =================================================================== --- menus/Makefile.am (revision 25899) +++ menus/Makefile.am (working copy) @@ -22,6 +22,7 @@ gradient-editor-menu.xml \ gradients-menu.xml \ images-menu.xml \ + image-toolbar.xml \ layers-menu.xml \ palette-editor-menu.xml \ palettes-menu.xml \ Index: app/dialogs/preferences-dialog.c =================================================================== --- app/dialogs/preferences-dialog.c (revision 25899) +++ app/dialogs/preferences-dialog.c (working copy) @@ -1282,6 +1282,9 @@ _("Show _menubar"), GTK_BOX (checks_vbox)); #endif /* !GDK_WINDOWING_QUARTZ */ + prefs_check_button_add (object, "show-toolbar", + _("Show t_oolbar"), + GTK_BOX (checks_vbox)); prefs_check_button_add (object, "show-rulers", _("Show _rulers"), GTK_BOX (checks_vbox)); Index: app/menus/menus.c =================================================================== --- app/menus/menus.c (revision 25899) +++ app/menus/menus.c (working copy) @@ -117,6 +117,8 @@ "image-menu.xml", image_menu_setup, "/quick-mask-popup", "quick-mask-menu.xml", NULL, + "/image-toolbar", + "image-toolbar.xml", NULL, NULL); gimp_menu_factory_manager_register (global_menu_factory, "", Index: app/actions/view-actions.c =================================================================== --- app/actions/view-actions.c (revision 25899) +++ app/actions/view-actions.c (working copy) @@ -205,6 +205,13 @@ TRUE, GIMP_HELP_VIEW_SHOW_MENUBAR }, + { "view-show-toolbar", NULL, + N_("Show T_oolbar"), NULL, + N_("Show this window's toolbar"), + G_CALLBACK (view_toggle_toolbar_cmd_callback), + TRUE, + GIMP_HELP_VIEW_SHOW_TOOLBAR }, + { "view-show-rulers", NULL, N_("Show R_ulers"), "R", N_("Show this window's rulers"), @@ -646,6 +653,8 @@ SET_SENSITIVE ("view-show-menubar", image); SET_ACTIVE ("view-show-menubar", display && options->show_menubar); + SET_SENSITIVE ("view-show-toolbar", image); + SET_ACTIVE ("view-show-toolbar", display && options->show_toolbar); SET_SENSITIVE ("view-show-rulers", image); SET_ACTIVE ("view-show-rulers", display && options->show_rulers); SET_SENSITIVE ("view-show-scrollbars", image); Index: app/actions/view-commands.c =================================================================== --- app/actions/view-commands.c (revision 25899) +++ app/actions/view-commands.c (working copy) @@ -380,6 +380,22 @@ } void +view_toggle_toolbar_cmd_callback (GtkAction *action, + gpointer data) +{ + GimpDisplay *display; + GimpDisplayShell *shell; + gboolean active; + return_if_no_display (display, data); + + shell = GIMP_DISPLAY_SHELL (display->shell); + + active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); + + gimp_display_shell_set_show_toolbar (shell, active); +} + +void view_toggle_rulers_cmd_callback (GtkAction *action, gpointer data) { Index: app/actions/view-commands.h =================================================================== --- app/actions/view-commands.h (revision 25899) +++ app/actions/view-commands.h (working copy) @@ -57,6 +57,8 @@ gpointer data); void view_toggle_menubar_cmd_callback (GtkAction *action, gpointer data); +void view_toggle_toolbar_cmd_callback (GtkAction *action, + gpointer data); void view_toggle_rulers_cmd_callback (GtkAction *action, gpointer data); void view_toggle_scrollbars_cmd_callback (GtkAction *action, Index: app/display/gimpdisplayshell.c =================================================================== --- app/display/gimpdisplayshell.c (revision 25899) +++ app/display/gimpdisplayshell.c (working copy) @@ -903,6 +903,10 @@ shell); } + shell->toolbar = gtk_ui_manager_get_widget(GTK_UI_MANAGER (shell->menubar_manager), "/image-toolbar"); + gtk_box_pack_start (GTK_BOX (main_vbox), shell->toolbar, FALSE, FALSE, 0); + gtk_widget_show_all (shell->toolbar); + /* another vbox for everything except the statusbar */ disp_vbox = gtk_vbox_new (FALSE, 1); gtk_box_pack_start (GTK_BOX (main_vbox), disp_vbox, TRUE, TRUE, 0); Index: app/display/gimpdisplayshell.h =================================================================== --- app/display/gimpdisplayshell.h (revision 25899) +++ app/display/gimpdisplayshell.h (working copy) @@ -128,6 +128,7 @@ GtkWidget *nav_ebox; /* SE: navigation event box */ GtkWidget *menubar; /* menubar */ + GtkWidget *toolbar; /* toolbar */ GtkWidget *statusbar; /* statusbar */ guchar *render_buf; /* buffer for rendering the image */ Index: app/display/gimpdisplayoptions.c =================================================================== --- app/display/gimpdisplayoptions.c (revision 25899) +++ app/display/gimpdisplayoptions.c (working copy) @@ -42,6 +42,7 @@ { PROP_0, PROP_SHOW_MENUBAR, + PROP_SHOW_TOOLBAR, PROP_SHOW_RULERS, PROP_SHOW_SCROLLBARS, PROP_SHOW_STATUSBAR, @@ -106,6 +107,10 @@ "show-menubar", SHOW_MENUBAR_BLURB, TRUE, GIMP_PARAM_STATIC_STRINGS); + GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_TOOLBAR, + "show-toolbar", SHOW_TOOLBAR_BLURB, + TRUE, + GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_RULERS, "show-rulers", SHOW_RULERS_BLURB, TRUE, @@ -164,6 +169,10 @@ "show-menubar", SHOW_MENUBAR_BLURB, FALSE, GIMP_PARAM_STATIC_STRINGS); + GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_TOOLBAR, + "show-toolbar", SHOW_TOOLBAR_BLURB, + FALSE, + GIMP_PARAM_STATIC_STRINGS); GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_RULERS, "show-rulers", SHOW_RULERS_BLURB, FALSE, @@ -264,6 +273,9 @@ case PROP_SHOW_MENUBAR: options->show_menubar = g_value_get_boolean (value); break; + case PROP_SHOW_TOOLBAR: + options->show_toolbar = g_value_get_boolean (value); + break; case PROP_SHOW_RULERS: options->show_rulers = g_value_get_boolean (value); break; @@ -314,6 +326,9 @@ case PROP_SHOW_MENUBAR: g_value_set_boolean (value, options->show_menubar); break; + case PROP_SHOW_TOOLBAR: + g_value_set_boolean (value, options->show_toolbar); + break; case PROP_SHOW_RULERS: g_value_set_boolean (value, options->show_rulers); break; Index: app/display/gimpdisplayoptions.h =================================================================== --- app/display/gimpdisplayoptions.h (revision 25899) +++ app/display/gimpdisplayoptions.h (working copy) @@ -42,6 +42,7 @@ /* GimpDisplayShell options */ gboolean show_menubar; + gboolean show_toolbar; gboolean show_rulers; gboolean show_scrollbars; gboolean show_statusbar; Index: app/display/gimpdisplayshell-appearance.c =================================================================== --- app/display/gimpdisplayshell-appearance.c (revision 25899) +++ app/display/gimpdisplayshell-appearance.c (working copy) @@ -168,6 +168,40 @@ } void +gimp_display_shell_set_show_toolbar (GimpDisplayShell *shell, + gboolean show) +{ + GimpDisplayOptions *options; + + g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell)); + + options = GET_OPTIONS (shell); + + g_object_set (options, "show-toolbar", show, NULL); + + if (shell->toolbar) + { + if (show) + gtk_widget_show (shell->toolbar); + else + gtk_widget_hide (shell->toolbar); + } + + SET_ACTIVE (shell->menubar_manager, "view-show-toolbar", show); + + if (IS_ACTIVE_DISPLAY (shell)) + SET_ACTIVE (shell->popup_manager, "view-show-toolbar", show); +} + +gboolean +gimp_display_shell_get_show_toolbar (GimpDisplayShell *shell) +{ + g_return_val_if_fail (GIMP_IS_DISPLAY_SHELL (shell), FALSE); + + return GET_OPTIONS (shell)->show_toolbar; +} + +void gimp_display_shell_set_show_rulers (GimpDisplayShell *shell, gboolean show) { Index: app/display/gimpdisplayshell-appearance.h =================================================================== --- app/display/gimpdisplayshell-appearance.h (revision 25899) +++ app/display/gimpdisplayshell-appearance.h (working copy) @@ -30,6 +30,10 @@ gboolean show); gboolean gimp_display_shell_get_show_menubar (GimpDisplayShell *shell); +void gimp_display_shell_set_show_toolbar (GimpDisplayShell *shell, + gboolean show); +gboolean gimp_display_shell_get_show_toolbar (GimpDisplayShell *shell); + void gimp_display_shell_set_show_rulers (GimpDisplayShell *shell, gboolean show); gboolean gimp_display_shell_get_show_rulers (GimpDisplayShell *shell); Index: app/config/gimprc-blurbs.h =================================================================== --- app/config/gimprc-blurbs.h (revision 25899) +++ app/config/gimprc-blurbs.h (working copy) @@ -295,6 +295,10 @@ N_("When enabled, the menubar is visible by default. This can also be " \ "toggled with the \"View->Show Menubar\" command.") +#define SHOW_TOOLBAR_BLURB \ +N_("When enabled, the toolbar is visible by default. This can also be " \ + "toggled with the \"View->Show Toolbar\" command.") + #define SHOW_RULERS_BLURB \ N_("When enabled, the rulers are visible by default. This can also be " \ "toggled with the \"View->Show Rulers\" command.") Index: app/widgets/gimphelp-ids.h =================================================================== --- app/widgets/gimphelp-ids.h (revision 25899) +++ app/widgets/gimphelp-ids.h (working copy) @@ -91,6 +91,7 @@ #define GIMP_HELP_VIEW_SNAP_TO_CANVAS "gimp-view-snap-to-canvas" #define GIMP_HELP_VIEW_SNAP_TO_VECTORS "gimp-view-snap-to-vectors" #define GIMP_HELP_VIEW_SHOW_MENUBAR "gimp-view-show-menubar" +#define GIMP_HELP_VIEW_SHOW_TOOLBAR "gimp-view-show-toolbar" #define GIMP_HELP_VIEW_SHOW_RULERS "gimp-view-show-rulers" #define GIMP_HELP_VIEW_SHOW_SCROLLBARS "gimp-view-show-scrollbars" #define GIMP_HELP_VIEW_SHOW_STATUSBAR "gimp-view-show-statusbar"