diff options
author | Rob Kendrick <rjek@netsurf-browser.org> | 2007-07-09 13:49:58 +0000 |
---|---|---|
committer | Rob Kendrick <rjek@netsurf-browser.org> | 2007-07-09 13:49:58 +0000 |
commit | 6002c9d2170b66d725c97e6ed890114fffcbd3ef (patch) | |
tree | 2e82494ed3f2b1efd482faf23eddbbbf99c411f5 /gtk | |
parent | a3fcf23c3be916342f59efdeb90c45beb7354bc3 (diff) | |
download | netsurf-6002c9d2170b66d725c97e6ed890114fffcbd3ef.tar.gz netsurf-6002c9d2170b66d725c97e6ed890114fffcbd3ef.tar.bz2 |
Add popup version of main menu bar to nsgtk, accessable via right-mouse button
svn path=/trunk/netsurf/; revision=3390
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtk_scaffolding.c | 25 | ||||
-rw-r--r-- | gtk/gtk_scaffolding.h | 2 | ||||
-rw-r--r-- | gtk/gtk_window.c | 7 | ||||
-rw-r--r-- | gtk/res/netsurf.glade | 67 |
4 files changed, 92 insertions, 9 deletions
diff --git a/gtk/gtk_scaffolding.c b/gtk/gtk_scaffolding.c index 693d246e5..bbb8074fb 100644 --- a/gtk/gtk_scaffolding.c +++ b/gtk/gtk_scaffolding.c @@ -59,6 +59,9 @@ struct gtk_scaffolding { GladeXML *xml; + GladeXML *popup_xml; + GtkMenu *popup_menu; + struct gtk_history_window *history_window; int throb_frame; @@ -757,6 +760,22 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) g->being_destroyed = 0; g->fullscreen = false; + + /* create the popup version of the menu */ + g->popup_xml = glade_xml_new(glade_file_location, "menuPopup", NULL); + g->popup_menu = GTK_MENU(glade_xml_get_widget(g->popup_xml, "menuPopup")); + +#define POPUP_ATTACH(x, y) gtk_menu_item_set_submenu( \ + GTK_MENU_ITEM(glade_xml_get_widget(g->popup_xml, x)),\ + GTK_WIDGET(glade_xml_get_widget(g->xml, y))) + + POPUP_ATTACH("menupopup_file", "menumain_file"); + POPUP_ATTACH("menupopup_edit", "menumain_edit"); + POPUP_ATTACH("menupopup_view", "menumain_view"); + POPUP_ATTACH("menupopup_navigate", "menumain_navigate"); + POPUP_ATTACH("menupopup_help", "menumain_help"); + +#undef POPUP_ATTACH /* finally, show the window. */ gtk_widget_show(GTK_WIDGET(g->window)); @@ -833,3 +852,9 @@ gboolean nsgtk_scaffolding_is_busy(nsgtk_scaffolding *scaffold) /* We are considered "busy" if the stop button is sensitive */ return GTK_WIDGET_SENSITIVE((GTK_WIDGET(scaffold->stop_button))); } + +void nsgtk_scaffolding_popup_menu(nsgtk_scaffolding *g, guint button) +{ + printf("foo.\n"); + gtk_menu_popup(g->popup_menu, NULL, NULL, NULL, NULL, button, 0); +} diff --git a/gtk/gtk_scaffolding.h b/gtk/gtk_scaffolding.h index 5f786d94f..361b0d42f 100644 --- a/gtk/gtk_scaffolding.h +++ b/gtk/gtk_scaffolding.h @@ -22,4 +22,6 @@ void nsgtk_attach_toplevel_viewport(nsgtk_scaffolding *g, GtkViewport *vp); void nsgtk_scaffolding_destroy(nsgtk_scaffolding *scaffold); +void nsgtk_scaffolding_popup_menu(nsgtk_scaffolding *g, guint button); + #endif /* NETSURF_GTK_SCAFFOLDING_H */ diff --git a/gtk/gtk_window.c b/gtk/gtk_window.c index 43380647d..068756a17 100644 --- a/gtk/gtk_window.c +++ b/gtk/gtk_window.c @@ -334,8 +334,11 @@ gboolean nsgtk_window_button_press_event(GtkWidget *widget, if (event->button == 2) /* 2 == middle button on X */ button = BROWSER_MOUSE_CLICK_2; - if (event->button == 3) /* 3 == right button on X */ - return TRUE; /* Do nothing for right click for now */ + if (event->button == 3) { + /* 3 == right button on X */ + nsgtk_scaffolding_popup_menu(g->scaffold, event->button); + return TRUE; + } browser_window_mouse_click(g->bw, button, event->x / g->scale, event->y / g->scale); diff --git a/gtk/res/netsurf.glade b/gtk/res/netsurf.glade index ff3aadae3..7676963af 100644 --- a/gtk/res/netsurf.glade +++ b/gtk/res/netsurf.glade @@ -37,7 +37,7 @@ <property name="use_underline">True</property> <child> - <widget class="GtkMenu" id="menuitem4_menu"> + <widget class="GtkMenu" id="menumain_file"> <child> <widget class="GtkImageMenuItem" id="new_window"> @@ -262,7 +262,7 @@ <property name="use_underline">True</property> <child> - <widget class="GtkMenu" id="menuitem5_menu"> + <widget class="GtkMenu" id="menumain_edit"> <child> <widget class="GtkImageMenuItem" id="cut"> @@ -372,7 +372,7 @@ <property name="use_underline">True</property> <child> - <widget class="GtkMenu" id="menuitem6_menu"> + <widget class="GtkMenu" id="menumain_view"> <child> <widget class="GtkImageMenuItem" id="stop"> @@ -667,13 +667,13 @@ </child> <child> - <widget class="GtkMenuItem" id="navigate"> + <widget class="GtkMenuItem" id="menuitem7"> <property name="visible">True</property> <property name="label" translatable="yes">_Navigate</property> <property name="use_underline">True</property> <child> - <widget class="GtkMenu" id="navigate_menu"> + <widget class="GtkMenu" id="menumain_navigate"> <child> <widget class="GtkImageMenuItem" id="back"> @@ -796,13 +796,13 @@ </child> <child> - <widget class="GtkMenuItem" id="help"> + <widget class="GtkMenuItem" id="menuitem8"> <property name="visible">True</property> <property name="label" translatable="yes">_Help</property> <property name="use_underline">True</property> <child> - <widget class="GtkMenu" id="help_menu"> + <widget class="GtkMenu" id="menumain_help"> <child> <widget class="GtkImageMenuItem" id="contents"> @@ -5545,4 +5545,57 @@ OF THE POSSIBILITY OF SUCH DAMAGES. </child> </widget> +<widget class="GtkMenu" id="menuPopup"> + + <child> + <widget class="GtkMenuItem" id="menupopup_file"> + <property name="visible">True</property> + <property name="label" translatable="yes">File</property> + <property name="use_underline">True</property> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menupopup_object"> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="label" translatable="yes">Object</property> + <property name="use_underline">True</property> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menupopup_edit"> + <property name="visible">True</property> + <property name="label" translatable="yes">Edit</property> + <property name="use_underline">True</property> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menupopup_view"> + <property name="visible">True</property> + <property name="label" translatable="yes">View</property> + <property name="use_underline">True</property> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menupopup_navigate"> + <property name="visible">True</property> + <property name="label" translatable="yes">Navigate</property> + <property name="use_underline">True</property> + <signal name="activate" handler="on_menupopup_navigate_activate" last_modification_time="Mon, 09 Jul 2007 13:07:30 GMT"/> + </widget> + </child> + + <child> + <widget class="GtkMenuItem" id="menupopup_help"> + <property name="visible">True</property> + <property name="label" translatable="yes">Help</property> + <property name="use_underline">True</property> + </widget> + </child> +</widget> + </glade-interface> |