diff options
author | Rob Kendrick <rjek@netsurf-browser.org> | 2007-07-09 14:18:00 +0000 |
---|---|---|
committer | Rob Kendrick <rjek@netsurf-browser.org> | 2007-07-09 14:18:00 +0000 |
commit | 2ec28699537f7633bfa1801a65bb92f9639ae0ad (patch) | |
tree | 76f76aa8405609d2111fe724d34160314b2599c1 /gtk/gtk_scaffolding.c | |
parent | b35e923aea499c68f5c81dbff683f52630b157ab (diff) | |
download | netsurf-2ec28699537f7633bfa1801a65bb92f9639ae0ad.tar.gz netsurf-2ec28699537f7633bfa1801a65bb92f9639ae0ad.tar.bz2 |
Implement removing of menu bar, tool bar and status bar from menu.
Issues that remain:
* These options are not saved along with the window position and size
* When the menu is detached, keyboard shortcuts cease to work
svn path=/trunk/netsurf/; revision=3392
Diffstat (limited to 'gtk/gtk_scaffolding.c')
-rw-r--r-- | gtk/gtk_scaffolding.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/gtk/gtk_scaffolding.c b/gtk/gtk_scaffolding.c index 6b32f7c7b..5fcaed4a4 100644 --- a/gtk/gtk_scaffolding.c +++ b/gtk/gtk_scaffolding.c @@ -46,10 +46,12 @@ struct gtk_scaffolding { GtkEntry *url_bar; GtkEntryCompletion *url_bar_completion; GtkLabel *status_bar; + GtkToolbar *tool_bar; GtkToolButton *back_button; GtkToolButton *forward_button; GtkToolButton *stop_button; GtkToolButton *reload_button; + GtkMenuBar *menu_bar; GtkMenuItem *back_menu; GtkMenuItem *forward_menu; GtkMenuItem *stop_menu; @@ -127,6 +129,9 @@ MENUPROTO(zoom_in); MENUPROTO(normal_size); MENUPROTO(zoom_out); MENUPROTO(full_screen); +MENUPROTO(menu_bar); +MENUPROTO(tool_bar); +MENUPROTO(status_bar); MENUPROTO(save_window_size); MENUPROTO(toggle_debug_rendering); @@ -161,6 +166,9 @@ static struct menu_events menu_events[] = { MENUEVENT(normal_size), MENUEVENT(zoom_out), MENUEVENT(full_screen), + MENUEVENT(menu_bar), + MENUEVENT(tool_bar), + MENUEVENT(status_bar), MENUEVENT(save_window_size), MENUEVENT(toggle_debug_rendering), @@ -463,6 +471,45 @@ MENUHANDLER(full_screen) return TRUE; } +MENUHANDLER(menu_bar) +{ + struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g; + + if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { + gtk_widget_show(GTK_WIDGET(gw->menu_bar)); + } else { + gtk_widget_hide(GTK_WIDGET(gw->menu_bar)); + } + + return TRUE; +} + +MENUHANDLER(tool_bar) +{ + struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g; + + if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { + gtk_widget_show(GTK_WIDGET(gw->tool_bar)); + } else { + gtk_widget_hide(GTK_WIDGET(gw->tool_bar)); + } + + return TRUE; +} + +MENUHANDLER(status_bar) +{ + struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g; + + if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) { + gtk_widget_show(GTK_WIDGET(gw->status_bar)); + } else { + gtk_widget_hide(GTK_WIDGET(gw->status_bar)); + } + + return TRUE; +} + MENUHANDLER(save_window_size) { struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g; @@ -641,7 +688,9 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) glade_xml_signal_autoconnect(g->xml); g->window = GTK_WINDOW(GET_WIDGET("wndBrowser")); g->url_bar = GTK_ENTRY(GET_WIDGET("URLBar")); + g->menu_bar = GTK_MENU_BAR(GET_WIDGET("menubar")); g->status_bar = GTK_LABEL(GET_WIDGET("statusBar")); + g->tool_bar = GTK_TOOLBAR(GET_WIDGET("toolbar")); g->back_button = GTK_TOOL_BUTTON(GET_WIDGET("toolBack")); g->forward_button = GTK_TOOL_BUTTON(GET_WIDGET("toolForward")); g->stop_button = GTK_TOOL_BUTTON(GET_WIDGET("toolStop")); |