summaryrefslogtreecommitdiff
path: root/src/glade-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/glade-window.c')
-rw-r--r--src/glade-window.c81
1 files changed, 70 insertions, 11 deletions
diff --git a/src/glade-window.c b/src/glade-window.c
index 67f9272a..398e1ca2 100644
--- a/src/glade-window.c
+++ b/src/glade-window.c
@@ -64,6 +64,7 @@
#define CONFIG_KEY_MAXIMIZED "maximized"
#define CONFIG_KEY_SHOW_TOOLBAR "show-toolbar"
#define CONFIG_KEY_SHOW_TABS "show-tabs"
+#define CONFIG_KEY_SHOW_STATUS "show-statusbar"
#define GLADE_WINDOW_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), \
GLADE_TYPE_WINDOW, \
@@ -1957,6 +1958,15 @@ toggle_toolbar_cb (GtkAction *action, GladeWindow *window)
}
static void
+toggle_statusbar_cb (GtkAction *action, GladeWindow *window)
+{
+ if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
+ gtk_widget_show (window->priv->statusbar);
+ else
+ gtk_widget_hide (window->priv->statusbar);
+}
+
+static void
toggle_tabs_cb (GtkAction *action, GladeWindow *window)
{
if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
@@ -2128,6 +2138,7 @@ static const gchar ui_info[] =
" </menu>"
" <menu action='ViewMenu'>"
" <menuitem action='ToolbarVisible'/>"
+" <menuitem action='StatusbarVisible'/>"
" <menuitem action='ProjectTabsVisible'/>"
" <menu action='PaletteAppearance'>"
" <menuitem action='IconsAndLabels'/>"
@@ -2265,11 +2276,15 @@ static GtkToggleActionEntry view_entries[] = {
N_("Dock the editor into the main window"),
G_CALLBACK (toggle_dock_cb), TRUE },
- { "ToolbarVisible", NULL, N_("Toolbar"), NULL,
- N_("Show the main toolbar"),
+ { "ToolbarVisible", NULL, N_("Tool_bar"), NULL,
+ N_("Show the toolbar"),
G_CALLBACK (toggle_toolbar_cb), TRUE },
- { "ProjectTabsVisible", NULL, N_("Project Tabs"), NULL,
+ { "StatusbarVisible", NULL, N_("_Statusbar"), NULL,
+ N_("Show the statusbar"),
+ G_CALLBACK (toggle_statusbar_cb), TRUE },
+
+ { "ProjectTabsVisible", NULL, N_("Project _Tabs"), NULL,
N_("Show notebook tabs for loaded projects"),
G_CALLBACK (toggle_tabs_cb), TRUE },
@@ -2980,6 +2995,11 @@ save_windows_config (GladeWindow *window, GKeyFile *config)
g_key_file_set_boolean (config,
CONFIG_GROUP_WINDOWS,
+ CONFIG_KEY_SHOW_STATUS,
+ gtk_widget_get_visible (window->priv->statusbar));
+
+ g_key_file_set_boolean (config,
+ CONFIG_GROUP_WINDOWS,
CONFIG_KEY_SHOW_TABS,
gtk_notebook_get_show_tabs (GTK_NOTEBOOK (window->priv->notebook)));
}
@@ -3039,12 +3059,21 @@ key_file_get_window_position (GKeyFile *config,
pos->width = key_file_get_int (config, CONFIG_GROUP_WINDOWS, key_width, pos->width);
pos->height = key_file_get_int (config, CONFIG_GROUP_WINDOWS, key_height, pos->height);
- if (detached && g_key_file_has_key (config, CONFIG_GROUP_WINDOWS, key_detached, NULL))
- *detached = g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, key_detached, NULL);
+ if (detached)
+ {
+ if (g_key_file_has_key (config, CONFIG_GROUP_WINDOWS, key_detached, NULL))
+ *detached = g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, key_detached, NULL);
+ else
+ *detached = FALSE;
+ }
- if (maximized && g_key_file_has_key (config, CONFIG_GROUP_WINDOWS, key_maximized, NULL))
- *maximized = g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, key_maximized, NULL);
-
+ if (maximized)
+ {
+ if (g_key_file_has_key (config, CONFIG_GROUP_WINDOWS, key_maximized, NULL))
+ *maximized = g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, key_maximized, NULL);
+ else
+ *maximized = FALSE;
+ }
g_free (key_x);
g_free (key_y);
@@ -3108,21 +3137,48 @@ static void
glade_window_config_load (GladeWindow *window)
{
GKeyFile *config = glade_app_get_config ();
- gboolean show_toolbar, show_tabs;
+ gboolean show_toolbar, show_tabs, show_status;
GtkAction *action;
+ GError *error = NULL;
/* Initial main dimensions */
glade_window_set_initial_size (window, config);
/* toolbar and tabs */
- show_toolbar = g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, CONFIG_KEY_SHOW_TOOLBAR, NULL);
- show_tabs = g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, CONFIG_KEY_SHOW_TABS, NULL);
+ if ((show_toolbar =
+ g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, CONFIG_KEY_SHOW_TOOLBAR, &error)) == FALSE &&
+ error != NULL)
+ {
+ show_toolbar = TRUE;
+ error = (g_error_free (error), NULL);
+ }
+
+ if ((show_tabs =
+ g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, CONFIG_KEY_SHOW_TABS, &error)) == FALSE &&
+ error != NULL)
+ {
+ show_tabs = TRUE;
+ error = (g_error_free (error), NULL);
+ }
+
+ if ((show_status =
+ g_key_file_get_boolean (config, CONFIG_GROUP_WINDOWS, CONFIG_KEY_SHOW_STATUS, &error)) == FALSE &&
+ error != NULL)
+ {
+ show_status = TRUE;
+ error = (g_error_free (error), NULL);
+ }
if (show_toolbar)
gtk_widget_show (window->priv->toolbar);
else
gtk_widget_hide (window->priv->toolbar);
+ if (show_status)
+ gtk_widget_show (window->priv->statusbar);
+ else
+ gtk_widget_hide (window->priv->statusbar);
+
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (window->priv->notebook), show_tabs);
action = gtk_action_group_get_action (window->priv->static_actions, "ToolbarVisible");
@@ -3131,6 +3187,9 @@ glade_window_config_load (GladeWindow *window)
action = gtk_action_group_get_action (window->priv->static_actions, "ProjectTabsVisible");
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), show_tabs);
+ action = gtk_action_group_get_action (window->priv->static_actions, "StatusbarVisible");
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), show_tabs);
+
/* Paned positions */
load_paned_position (config, window->priv->left_pane, "left_pane", 200);
load_paned_position (config, window->priv->center_pane, "center_pane", 400);