summaryrefslogtreecommitdiff
path: root/src/ephy-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ephy-window.c')
-rw-r--r--src/ephy-window.c104
1 files changed, 65 insertions, 39 deletions
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 538834878..8472fbef8 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -28,7 +28,6 @@
#include "window-commands.h"
#include "find-dialog.h"
#include "history-dialog.h"
-#include "popup-commands.h"
#include "ephy-shell.h"
#include "eel-gconf-extensions.h"
#include "ephy-prefs.h"
@@ -37,6 +36,7 @@
#include "ephy-file-helpers.h"
#include "statusbar.h"
#include "toolbar.h"
+#include "popup-commands.h"
#include <string.h>
#include <libgnome/gnome-i18n.h>
@@ -135,10 +135,10 @@ static EggActionGroupEntry ephy_menu_entries [] = {
/* View menu */
{ "ViewStop", N_("_Stop"), GTK_STOCK_STOP, "Escape",
N_("Stop current data transfer"),
- G_CALLBACK (window_cmd_view_reload), NULL },
+ G_CALLBACK (window_cmd_view_stop), NULL },
{ "ViewReload", N_("_Reload"), GTK_STOCK_REFRESH, "<control>R",
N_("Display the latest content of the current page"),
- G_CALLBACK (window_cmd_view_stop), NULL },
+ G_CALLBACK (window_cmd_view_reload), NULL },
{ "ViewStatusbar", N_("St_atusbar"), NULL, NULL,
N_("Show or hide statusbar"),
G_CALLBACK (window_cmd_view_statusbar), NULL, TOGGLE_ACTION },
@@ -205,6 +205,56 @@ static EggActionGroupEntry ephy_menu_entries [] = {
};
static guint ephy_menu_n_entries = G_N_ELEMENTS (ephy_menu_entries);
+static EggActionGroupEntry ephy_popups_entries [] = {
+ /* Toplevel */
+ { "FakeToplevel", (""), NULL, NULL, NULL, NULL, NULL },
+
+ /* Document */
+ { "SaveBackgroundAs", N_("Save Background As..."), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_save_background_as), NULL },
+ { "CopyPageLocation", N_("Copy Page Location"), GTK_STOCK_COPY, NULL,
+ NULL, G_CALLBACK (popup_cmd_copy_page_location), NULL },
+
+ /* Framed document */
+ { "OpenFrame", N_("Open Frame"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_open_frame), NULL },
+ { "OpenFrameInNewWindow", N_("Open Frame in New Window"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_frame_in_new_window), NULL },
+ { "OpenFrameInNewTab", N_("Open Frame in New Tab"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_frame_in_new_tab), NULL },
+
+ /* Links */
+ { "OpenLink", N_("Open Link"), GTK_STOCK_OPEN, NULL,
+ NULL, G_CALLBACK (popup_cmd_open_link), NULL },
+ { "OpenLinkInNewWindow", N_("Open Link in New Window"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_link_in_new_window), NULL },
+ { "OpenLinkInNewTab", N_("Open Link in New Tab"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_link_in_new_tab), NULL },
+ { "DownloadLink", N_("Download Link"), GTK_STOCK_SAVE, NULL,
+ NULL, G_CALLBACK (popup_cmd_download_link), NULL },
+ { "AddLinkBookmark", N_("Add Bookmark"), GTK_STOCK_ADD, NULL,
+ NULL, G_CALLBACK (popup_cmd_add_link_bookmark), NULL },
+ { "CopyLinkLocation", N_("Copy Link Location"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_copy_link_location), NULL },
+ { "CopyEmail", N_("Copy Email"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_copy_email), NULL },
+
+ /* Images */
+ { "OpenImage", N_("Open Image"), GTK_STOCK_OPEN, NULL,
+ NULL, G_CALLBACK (popup_cmd_open_image), NULL },
+ { "OpenImageInNewWindow", N_("Open Image in New Window"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_image_in_new_window), NULL },
+ { "OpenImageInNewTab", N_("Open Image in New Tab"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_image_in_new_tab), NULL },
+ { "SaveImageAs", N_("Save Image As..."), GTK_STOCK_SAVE_AS, NULL,
+ NULL, G_CALLBACK (popup_cmd_save_image_as), NULL },
+ { "SetImageAsBackground", N_("Use Image as Background"), NULL, NULL,
+ NULL, G_CALLBACK (popup_cmd_set_image_as_background), NULL },
+ { "CopyImageLocation", N_("Copy Image Location"), GTK_STOCK_COPY, NULL,
+ NULL, G_CALLBACK (popup_cmd_copy_image_location), NULL },
+};
+static guint ephy_popups_n_entries = G_N_ELEMENTS (ephy_popups_entries);
+
struct EphyWindowPrivate
{
GtkWidget *main_vbox;
@@ -212,12 +262,12 @@ struct EphyWindowPrivate
Toolbar *toolbar;
GtkWidget *statusbar;
EggActionGroup *action_group;
+ EggActionGroup *popups_action_group;
EphyFavoritesMenu *fav_menu;
PPViewToolbar *ppview_toolbar;
GtkNotebook *notebook;
EphyTab *active_tab;
GtkWidget *sidebar;
- EphyEmbedPopupBW *embed_popup;
EphyDialog *find_dialog;
EphyDialog *history_dialog;
EphyDialog *history_sidebar;
@@ -392,6 +442,11 @@ setup_window (EphyWindow *window)
ephy_menu_entries[i].user_data = window;
}
+ for (i = 0; i < ephy_popups_n_entries; i++)
+ {
+ ephy_popups_entries[i].user_data = window;
+ }
+
merge = egg_menu_merge_new ();
action_group = egg_action_group_new ("WindowActions");
@@ -400,6 +455,12 @@ setup_window (EphyWindow *window)
egg_menu_merge_insert_action_group (merge, action_group, 0);
window->priv->action_group = action_group;
+ action_group = egg_action_group_new ("PopupsActions");
+ egg_action_group_add_actions (action_group, ephy_popups_entries,
+ ephy_popups_n_entries);
+ egg_menu_merge_insert_action_group (merge, action_group, 0);
+ window->priv->popups_action_group = action_group;
+
window->ui_merge = G_OBJECT (merge);
g_signal_connect (merge, "add_widget", G_CALLBACK (add_widget), window);
egg_menu_merge_add_ui_from_file (merge, ephy_file ("epiphany-ui.xml"), NULL);
@@ -421,17 +482,6 @@ setup_window (EphyWindow *window)
window);
}
-static EphyEmbedPopupBW *
-setup_popup_factory (EphyWindow *window)
-{
-/* EphyEmbedPopupBW *popup;
-
- popup = ephy_window_get_popup_factory (window);
- g_object_set_data (G_OBJECT(popup), "EphyWindow", window);
-
- return popup;*/
-}
-
static GtkNotebook *
setup_notebook (EphyWindow *window)
{
@@ -471,7 +521,6 @@ ephy_window_init (EphyWindow *window)
session = ephy_shell_get_session (ephy_shell);
window->priv = g_new0 (EphyWindowPrivate, 1);
- window->priv->embed_popup = NULL;
window->priv->active_tab = NULL;
window->priv->chrome_mask = 0;
window->priv->ignore_layout_toggles = FALSE;
@@ -488,9 +537,6 @@ ephy_window_init (EphyWindow *window)
/* Setup the window and connect verbs */
setup_window (window);
- /* Setup the embed popups factory */
- window->priv->embed_popup = setup_popup_factory (window);
-
window->priv->fav_menu = ephy_favorites_menu_new (window);
/* Setup window contents */
@@ -562,11 +608,6 @@ ephy_window_finalize (GObject *object)
remove_from_session (window);
- if (window->priv->embed_popup)
- {
- g_object_unref (G_OBJECT (window->priv->embed_popup));
- }
-
if (window->priv->find_dialog)
{
g_object_unref (G_OBJECT (window->priv->find_dialog));
@@ -1239,21 +1280,6 @@ ephy_window_get_active_embed (EphyWindow *window)
else return NULL;
}
-EphyEmbedPopupBW *
-ephy_window_get_popup_factory (EphyWindow *window)
-{
-/* if (!window->priv->embed_popup)
- {
- window->priv->embed_popup = ephy_embed_popup_bw_new
- (BONOBO_WINDOW(window));
- ephy_embed_popup_connect_verbs
- (EPHY_EMBED_POPUP (window->priv->embed_popup),
- BONOBO_UI_COMPONENT (window->ui_component));
- }
-
- return window->priv->embed_popup;*/
-}
-
GList *
ephy_window_get_tabs (EphyWindow *window)
{