summaryrefslogtreecommitdiff
path: root/gtk/gtk_scaffolding.c
diff options
context:
space:
mode:
authorRob Kendrick <rjek@netsurf-browser.org>2007-07-09 14:18:00 +0000
committerRob Kendrick <rjek@netsurf-browser.org>2007-07-09 14:18:00 +0000
commit2ec28699537f7633bfa1801a65bb92f9639ae0ad (patch)
tree76f76aa8405609d2111fe724d34160314b2599c1 /gtk/gtk_scaffolding.c
parentb35e923aea499c68f5c81dbff683f52630b157ab (diff)
downloadnetsurf-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.c49
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"));