diff options
author | Vincent Sanders <vince@kyllikki.org> | 2015-04-12 01:12:43 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-04-12 01:12:43 +0100 |
commit | 997e8999d5a3a496a81d45b37f723d5bc539f5c4 (patch) | |
tree | 9917f68ec795c642abe11e9f6f6d4982cf458ede /gtk/scaffolding.c | |
parent | f3158f79b6357558e3a0083039857bba21c6ca5b (diff) | |
download | netsurf-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.c | 84 |
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)); |