summaryrefslogtreecommitdiff
path: root/gtk/scaffolding.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-04-12 01:12:43 +0100
committerVincent Sanders <vince@kyllikki.org>2015-04-12 01:12:43 +0100
commit997e8999d5a3a496a81d45b37f723d5bc539f5c4 (patch)
tree9917f68ec795c642abe11e9f6f6d4982cf458ede /gtk/scaffolding.c
parentf3158f79b6357558e3a0083039857bba21c6ca5b (diff)
downloadnetsurf-997e8999d5a3a496a81d45b37f723d5bc539f5c4.tar.gz
netsurf-997e8999d5a3a496a81d45b37f723d5bc539f5c4.tar.bz2
Refactor GTK toolbar handling to correctly cope with text labels
Diffstat (limited to 'gtk/scaffolding.c')
-rw-r--r--gtk/scaffolding.c84
1 files changed, 56 insertions, 28 deletions
diff --git a/gtk/scaffolding.c b/gtk/scaffolding.c
index 2b30a3ed7..51f042443 100644
--- a/gtk/scaffolding.c
+++ b/gtk/scaffolding.c
@@ -1969,6 +1969,61 @@ static void nsgtk_scaffolding_initial_sensitivity(struct nsgtk_scaffolding *g)
gtk_widget_set_sensitive(GTK_WIDGET(g->menu_bar->view_submenu->images_menuitem), FALSE);
}
+
+void nsgtk_scaffolding_toolbars(struct nsgtk_scaffolding *g, int tbi)
+{
+ switch (tbi) {
+ /* case 0 is 'unset' [from fresh install / clearing options]
+ * see above */
+
+ case 1: /* Small icons */
+ /* main toolbar */
+ gtk_toolbar_set_style(GTK_TOOLBAR(g->tool_bar),
+ GTK_TOOLBAR_ICONS);
+ gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->tool_bar),
+ GTK_ICON_SIZE_SMALL_TOOLBAR);
+ /* search toolbar */
+ gtk_toolbar_set_style(GTK_TOOLBAR(g->search->bar),
+ GTK_TOOLBAR_ICONS);
+ gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->search->bar),
+ GTK_ICON_SIZE_SMALL_TOOLBAR);
+ break;
+
+ case 2: /* Large icons */
+ gtk_toolbar_set_style(GTK_TOOLBAR(g->tool_bar),
+ GTK_TOOLBAR_ICONS);
+ gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->tool_bar),
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ /* search toolbar */
+ gtk_toolbar_set_style(GTK_TOOLBAR(g->search->bar),
+ GTK_TOOLBAR_ICONS);
+ gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->search->bar),
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ break;
+
+ case 3: /* Large icons with text */
+ gtk_toolbar_set_style(GTK_TOOLBAR(g->tool_bar),
+ GTK_TOOLBAR_BOTH);
+ gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->tool_bar),
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ /* search toolbar */
+ gtk_toolbar_set_style(GTK_TOOLBAR(g->search->bar),
+ GTK_TOOLBAR_BOTH);
+ gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->search->bar),
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
+ break;
+
+ case 4: /* Text icons only */
+ gtk_toolbar_set_style(GTK_TOOLBAR(g->tool_bar),
+ GTK_TOOLBAR_TEXT);
+ /* search toolbar */
+ gtk_toolbar_set_style(GTK_TOOLBAR(g->search->bar),
+ GTK_TOOLBAR_TEXT);
+ default:
+ break;
+ }
+}
+
/* exported interface documented in gtk/scaffolding.h */
struct nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel)
{
@@ -2104,34 +2159,7 @@ struct nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel)
}
}
- switch (nsoption_int(button_type)) {
- /* case 0 is 'unset' [from fresh install / clearing options]
- * see above */
-
- case 1: /* Small icons */
- gtk_toolbar_set_style(GTK_TOOLBAR(g->tool_bar),
- GTK_TOOLBAR_ICONS);
- gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->tool_bar),
- GTK_ICON_SIZE_SMALL_TOOLBAR);
- break;
- case 2: /* Large icons */
- gtk_toolbar_set_style(GTK_TOOLBAR(g->tool_bar),
- GTK_TOOLBAR_ICONS);
- gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->tool_bar),
- GTK_ICON_SIZE_LARGE_TOOLBAR);
- break;
- case 3: /* Large icons with text */
- gtk_toolbar_set_style(GTK_TOOLBAR(g->tool_bar),
- GTK_TOOLBAR_BOTH);
- gtk_toolbar_set_icon_size(GTK_TOOLBAR(g->tool_bar),
- GTK_ICON_SIZE_LARGE_TOOLBAR);
- break;
- case 4: /* Text icons only */
- gtk_toolbar_set_style(GTK_TOOLBAR(g->tool_bar),
- GTK_TOOLBAR_TEXT);
- default:
- break;
- }
+ nsgtk_scaffolding_toolbars(g, nsoption_int(button_type));
gtk_toolbar_set_show_arrow(g->tool_bar, TRUE);
gtk_widget_show_all(GTK_WIDGET(g->tool_bar));