aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@it.gnome.org>2003-01-23 21:22:17 +0800
committerMarco Pesenti Gritti <mpeseng@src.gnome.org>2003-01-23 21:22:17 +0800
commit2db0d1ed3d15012d2d9c80d8d9499160e1f535dc (patch)
treed2caa10c004ddf0196656611acd4c3b3e0e05c0c /src
parent7fe73f1990a361a3c794ef5517e2cb4d3188466e (diff)
downloadgsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.tar.gz
gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.tar.zst
gsoc2013-epiphany-2db0d1ed3d15012d2d9c80d8d9499160e1f535dc.zip
Reimplement encoding menus. Work around eggmenu finalization problems. Fix
2003-01-23 Marco Pesenti Gritti <marco@it.gnome.org> * TODO: * data/ui/epiphany-ui.xml.in: * embed/ephy-embed-utils.c: (ephy_embed_utils_build_charsets_submenu): * lib/egg/egg-menu-merge.c: (egg_menu_merge_finalize), (egg_menu_merge_class_init), (egg_menu_merge_init), (egg_menu_merge_node_prepend_uierence), (egg_menu_merge_node_remove_uierence), (start_element_handler), (cleanup), (remove_ui), (update_node): * src/Makefile.am: * src/ephy-encoding-menu.c: (ephy_encoding_menu_class_init), (ephy_encoding_menu_init), (ephy_encoding_menu_finalize_impl), (ephy_encoding_menu_set_property), (ephy_encoding_menu_get_property), (ephy_encoding_menu_new), (ephy_encoding_menu_verb_cb), (build_group), (build_charset), (ephy_encoding_menu_rebuild): * src/ephy-encoding-menu.h: * src/ephy-favorites-menu.c: (ephy_favorites_menu_finalize_impl), (ephy_favorites_menu_verb_cb): * src/ephy-favorites-menu.h: * src/ephy-window.c: (ephy_window_init), (ephy_window_finalize): * src/ppview-toolbar.c: (ppview_toolbar_finalize): Reimplement encoding menus. Work around eggmenu finalization problems. Fix ppvtoolbar/favorites menu to correctly remove action group on finalize.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/ephy-favorites-menu.c13
-rw-r--r--src/ephy-favorites-menu.h2
-rw-r--r--src/ephy-window.c18
-rwxr-xr-xsrc/ppview-toolbar.c7
5 files changed, 20 insertions, 22 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 875926c3b..bf4fdb8a2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -46,6 +46,8 @@ epiphany_SOURCES = \
appearance-prefs.h \
ephy-automation.c \
ephy-automation.h \
+ ephy-encoding-menu.c \
+ ephy-encoding-menu.h \
ephy-favicon-action.c \
ephy-favicon-action.h \
ephy-favorites-menu.c \
diff --git a/src/ephy-favorites-menu.c b/src/ephy-favorites-menu.c
index 4c13072c8..c8be1e816 100644
--- a/src/ephy-favorites-menu.c
+++ b/src/ephy-favorites-menu.c
@@ -138,6 +138,14 @@ ephy_favorites_menu_finalize_impl (GObject *o)
EphyFavoritesMenu *wrhm = EPHY_FAVORITES_MENU (o);
EphyFavoritesMenuPrivate *p = wrhm->priv;
+ if (p->action_group != NULL)
+ {
+ egg_menu_merge_remove_action_group
+ (EGG_MENU_MERGE (p->window->ui_merge),
+ p->action_group);
+ g_object_unref (p->action_group);
+ }
+
g_free (p);
G_OBJECT_CLASS (g_object_class)->finalize (o);
@@ -186,9 +194,8 @@ ephy_favorites_menu_new (EphyWindow *window)
}
static void
-ephy_favorites_menu_verb_cb (BonoboUIComponent *uic,
- FavoriteData *data,
- const char *cname)
+ephy_favorites_menu_verb_cb (EggMenuMerge *merge,
+ FavoriteData *data)
{
ephy_window_load_url (data->window, data->url);
}
diff --git a/src/ephy-favorites-menu.h b/src/ephy-favorites-menu.h
index 228cbcef8..78bd74193 100644
--- a/src/ephy-favorites-menu.h
+++ b/src/ephy-favorites-menu.h
@@ -21,8 +21,6 @@
#include "ephy-window.h"
-#include <bonobo/bonobo-ui-component.h>
-
/* object forward declarations */
typedef struct _EphyFavoritesMenu EphyFavoritesMenu;
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 1da8cc949..ec023ff83 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -31,13 +31,13 @@
#include "ephy-shell.h"
#include "eel-gconf-extensions.h"
#include "ephy-prefs.h"
-#include "ephy-embed-utils.h"
#include "ephy-debug.h"
#include "ephy-file-helpers.h"
#include "statusbar.h"
#include "toolbar.h"
#include "popup-commands.h"
#include "egg-toggle-action.h"
+#include "ephy-encoding-menu.h"
#include <string.h>
#include <libgnome/gnome-i18n.h>
@@ -51,18 +51,6 @@
#include "egg-action-group.h"
#include "egg-menu-merge.h"
-#define CHARSET_MENU_PATH "/menu/View/EncodingMenuPlaceholder"
-#define GO_FAVORITES_PATH "/menu/Go/Favorites"
-
-#define GO_BACK_ACTION "GoBack"
-#define GO_FORWARD_ACTION "GoForward"
-#define GO_UP_ACTION "GoUp"
-#define EDIT_FIND_NEXT_ACTION "EditFindNext"
-#define EDIT_FIND_PREV_ACTION "EditFindPrev"
-#define VIEW_STATUSBAR_ACTION "ViewStatusbar"
-#define VIEW_TOOLBAR_ACTION "ViewToolbar"
-#define VIEW_FULLSCREEN_ACTION "ViewFullscreen"
-
static EggActionGroupEntry ephy_menu_entries [] = {
/* Toplevel */
@@ -159,6 +147,7 @@ static EggActionGroupEntry ephy_menu_entries [] = {
{ "ViewZoomNormal", N_("_Normal Size"), GTK_STOCK_ZOOM_100, NULL,
N_("Show the contents at the normal size"),
G_CALLBACK (window_cmd_view_zoom_normal), NULL },
+ { "ViewEncoding", N_("_Encoding"), NULL, NULL, NULL, NULL, NULL },
{ "ViewPageSource", N_("_Page Source"), NULL, NULL,
N_("View the source code of the page"),
G_CALLBACK (window_cmd_view_page_source), NULL },
@@ -271,6 +260,7 @@ struct EphyWindowPrivate
EggActionGroup *action_group;
EggActionGroup *popups_action_group;
EphyFavoritesMenu *fav_menu;
+ EphyEncodingMenu *enc_menu;
PPViewToolbar *ppview_toolbar;
GtkNotebook *notebook;
EphyTab *active_tab;
@@ -556,6 +546,7 @@ ephy_window_init (EphyWindow *window)
setup_window (window);
window->priv->fav_menu = ephy_favorites_menu_new (window);
+ window->priv->enc_menu = ephy_encoding_menu_new (window);
/* Setup window contents */
window->priv->notebook = setup_notebook (window);
@@ -639,6 +630,7 @@ ephy_window_finalize (GObject *object)
}
g_object_unref (window->priv->fav_menu);
+ g_object_unref (window->priv->enc_menu);
if (window->priv->toolbar)
{
diff --git a/src/ppview-toolbar.c b/src/ppview-toolbar.c
index 78b3b33d9..a97765930 100755
--- a/src/ppview-toolbar.c
+++ b/src/ppview-toolbar.c
@@ -26,10 +26,6 @@
#include <string.h>
#include <bonobo/bonobo-i18n.h>
-#include <bonobo/bonobo-window.h>
-#include <bonobo/bonobo-control.h>
-#include <bonobo/bonobo-ui-toolbar-button-item.h>
-#include <bonobo/bonobo-property-bag.h>
#include <gtk/gtkentry.h>
#include <gtk/gtkmenu.h>
@@ -275,7 +271,10 @@ ppview_toolbar_finalize (GObject *object)
t = PPVIEW_TOOLBAR (object);
g_return_if_fail (t->priv != NULL);
+
egg_menu_merge_remove_ui (t->priv->ui_merge, t->priv->ui_id);
+ egg_menu_merge_remove_action_group (t->priv->ui_merge,
+ t->priv->action_group);
g_object_unref (t->priv->action_group);
g_free (t->priv);