aboutsummaryrefslogtreecommitdiffstats
path: root/embed
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2004-03-19 04:22:25 +0800
committerMarco Pesenti Gritti <marco@src.gnome.org>2004-03-19 04:22:25 +0800
commit40f9870ee0b060e7fdbfff104343d4c2f0eb4ac2 (patch)
tree17b9b8fd132e01e1ff62590bdefa4d057ab92b69 /embed
parentfb9bc516d855e7422d6e6e3b5b93baf5238a0b38 (diff)
downloadgsoc2013-epiphany-40f9870ee0b060e7fdbfff104343d4c2f0eb4ac2.tar
gsoc2013-epiphany-40f9870ee0b060e7fdbfff104343d4c2f0eb4ac2.tar.gz
gsoc2013-epiphany-40f9870ee0b060e7fdbfff104343d4c2f0eb4ac2.tar.bz2
gsoc2013-epiphany-40f9870ee0b060e7fdbfff104343d4c2f0eb4ac2.tar.lz
gsoc2013-epiphany-40f9870ee0b060e7fdbfff104343d4c2f0eb4ac2.tar.xz
gsoc2013-epiphany-40f9870ee0b060e7fdbfff104343d4c2f0eb4ac2.tar.zst
gsoc2013-epiphany-40f9870ee0b060e7fdbfff104343d4c2f0eb4ac2.zip
Cleanups chromes code and register a type for the enum.
2004-03-16 Marco Pesenti Gritti <marco@gnome.org> * embed/ephy-embed.c: (ephy_embed_chrome_get_type): * embed/ephy-embed.h: * embed/mozilla/Makefile.am: * embed/mozilla/mozilla-embed.cpp: Cleanups chromes code and register a type for the enum. * src/ephy-nautilus-view.c: (gnv_embed_new_window_cb): Adapt to the api changes * src/ephy-tab.c: (ephy_tab_new_window_cb): Move js chrome lockdown pref check here. * src/ephy-window.c: (get_chromes_visibility), (sync_chromes_visibility), (ephy_window_fullscreen), (ephy_window_unfullscreen), (update_chromes_actions), (update_actions_sensitivity), (show_embed_popup), (get_default_chrome), (ephy_window_set_property), (ephy_window_class_init), (actions_notifier), (navigation_notifier), (ephy_window_init), (ephy_window_finalize), (ephy_window_new_with_chrome), (ephy_window_set_print_preview), (ephy_window_show), (sync_prefs_with_chrome), (sync_chrome_with_view_toggle), (ephy_window_view_statusbar_cb), (ephy_window_view_toolbar_cb), (ephy_window_view_bookmarksbar_cb): Rework chrome handling so that it's not applied to all windows. Changes are now saved on the fly like for window size. * src/ephy-window.h: Use a construct property instead of a _set for chrome. * src/window-commands.c: * src/window-commands.h: Move chromes actions to EphyWindow so we dont need to expose chrome handling.
Diffstat (limited to 'embed')
-rw-r--r--embed/ephy-embed.c22
-rw-r--r--embed/ephy-embed.h28
-rw-r--r--embed/mozilla/Makefile.am1
-rw-r--r--embed/mozilla/mozilla-embed.cpp34
4 files changed, 49 insertions, 36 deletions
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index f371cfc15..852090e44 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -31,6 +31,28 @@
static void ephy_embed_base_init (gpointer g_class);
GType
+ephy_embed_chrome_get_type (void)
+{
+ static GType etype = 0;
+
+ if (etype == 0)
+ {
+ static const GFlagsValue values[] =
+ {
+ { EPHY_EMBED_CHROME_DEFAULT, "EPHY_EMBED_CHROME_DEFAULT", "default" },
+ { EPHY_EMBED_CHROME_MENUBAR, "EPHY_EMBED_CHROME_MENUBARON", "menubar" },
+ { EPHY_EMBED_CHROME_TOOLBAR, "EPHY_EMBED_CHROME_TOOLBARON", "toolbar" },
+ { EPHY_EMBED_CHROME_STATUSBAR, "EPHY_EMBED_CHROME_STATUSBARON", "statusbar" },
+ { 0, NULL, NULL }
+ };
+
+ etype = g_flags_register_static ("EphyEmbedChrome", values);
+ }
+
+ return etype;
+}
+
+GType
ephy_embed_get_type (void)
{
static GType ephy_embed_type = 0;
diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h
index f7e3bcfd4..afeee8d9f 100644
--- a/embed/ephy-embed.h
+++ b/embed/ephy-embed.h
@@ -37,6 +37,8 @@ G_BEGIN_DECLS
#define EPHY_IS_EMBED_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EPHY_TYPE_EMBED))
#define EPHY_EMBED_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EPHY_TYPE_EMBED, EphyEmbedIface))
+#define EPHY_TYPE_EMBED_CHROME_MASK (ephy_embed_chrome_get_type ())
+
typedef struct EphyEmbed EphyEmbed;
typedef struct EphyEmbedIface EphyEmbedIface;
@@ -57,21 +59,11 @@ typedef enum
typedef enum
{
- EMBED_CHROME_NONE = 0,
- EMBED_CHROME_DEFAULT = 1 << 0,
- EMBED_CHROME_MENUBARON = 1 << 1,
- EMBED_CHROME_TOOLBARON = 1 << 2,
- EMBED_CHROME_BOOKMARKSBARON = 1 << 3,
- EMBED_CHROME_BOOKMARKSBAR_DEFAULT = 1 << 4,
- EMBED_CHROME_STATUSBARON = 1 << 5,
- EMBED_CHROME_WINDOWRAISED = 1 << 6,
- EMBED_CHROME_WINDOWLOWERED = 1 << 7,
- EMBED_CHROME_CENTERSCREEN = 1 << 8,
- EMBED_CHROME_OPENASDIALOG = 1 << 9,
- EMBED_CHROME_OPENASCHROME = 1 << 10,
- EMBED_CHROME_OPENASPOPUP = 1 << 11,
- EMBED_CHROME_PPVIEWTOOLBARON = 1 << 12
-} EmbedChromeMask;
+ EPHY_EMBED_CHROME_DEFAULT = 1 << 0,
+ EPHY_EMBED_CHROME_MENUBAR = 1 << 1,
+ EPHY_EMBED_CHROME_TOOLBAR = 1 << 2,
+ EPHY_EMBED_CHROME_STATUSBAR = 1 << 3
+} EphyEmbedChrome;
typedef enum
{
@@ -164,7 +156,7 @@ struct EphyEmbedIface
EmbedState state);
void (* new_window) (EphyEmbed *embed,
EphyEmbed **new_embed,
- EmbedChromeMask chromemask);
+ EphyEmbedChrome chromemask);
gboolean (* dom_mouse_click) (EphyEmbed *embed,
EphyEmbedEvent *event);
gboolean (* dom_mouse_down) (EphyEmbed *embed,
@@ -230,6 +222,8 @@ struct EphyEmbedIface
gboolean (* has_modified_forms) (EphyEmbed *embed);
};
+GType ephy_embed_chrome_get_type (void);
+
GType ephy_embed_get_type (void);
/* Base */
@@ -280,7 +274,7 @@ void ephy_embed_shistory_go_nth (EphyEmbed *embed,
void ephy_embed_get_security_level (EphyEmbed *embed,
EmbedSecurityLevel *level,
- char **description);
+ char **description);
/* Zoom */
void ephy_embed_zoom_set (EphyEmbed *embed,
diff --git a/embed/mozilla/Makefile.am b/embed/mozilla/Makefile.am
index f538c8ae6..33e1baed3 100644
--- a/embed/mozilla/Makefile.am
+++ b/embed/mozilla/Makefile.am
@@ -24,6 +24,7 @@ INCLUDES = \
-I$(MOZILLA_INCLUDE_ROOT)/pref \
-I$(MOZILLA_INCLUDE_ROOT)/progressDlg \
-I$(MOZILLA_INCLUDE_ROOT)/shistory \
+ -I$(MOZILLA_INCLUDE_ROOT)/string \
-I$(MOZILLA_INCLUDE_ROOT)/unicharutil \
-I$(MOZILLA_INCLUDE_ROOT)/uriloader \
-I$(MOZILLA_INCLUDE_ROOT)/wallet \
diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp
index b37e56cd2..70a17bbb6 100644
--- a/embed/mozilla/mozilla-embed.cpp
+++ b/embed/mozilla/mozilla-embed.cpp
@@ -983,45 +983,41 @@ mozilla_embed_dom_mouse_down_cb (GtkMozEmbed *embed, gpointer dom_event,
static void
mozilla_embed_new_window_cb (GtkMozEmbed *embed,
GtkMozEmbed **newEmbed,
- guint chromemask,
+ guint chrome_mask,
MozillaEmbed *membed)
{
- int i;
- EmbedChromeMask mask = EMBED_CHROME_OPENASPOPUP;
+ guint i;
+ guint mask = 0;
EphyEmbed *new_embed = NULL;
struct
{
- guint chromemask;
- EmbedChromeMask embed_mask;
+ guint mozilla_mask;
+ guint embed_mask;
}
conversion_map [] =
{
- { GTK_MOZ_EMBED_FLAG_DEFAULTCHROME, EMBED_CHROME_DEFAULT },
- { GTK_MOZ_EMBED_FLAG_MENUBARON, EMBED_CHROME_MENUBARON },
- { GTK_MOZ_EMBED_FLAG_TOOLBARON, EMBED_CHROME_TOOLBARON },
- { GTK_MOZ_EMBED_FLAG_PERSONALTOOLBARON, EMBED_CHROME_BOOKMARKSBAR_DEFAULT },
- { GTK_MOZ_EMBED_FLAG_STATUSBARON, EMBED_CHROME_STATUSBARON },
- { GTK_MOZ_EMBED_FLAG_WINDOWRAISED, EMBED_CHROME_WINDOWRAISED },
- { GTK_MOZ_EMBED_FLAG_WINDOWLOWERED, EMBED_CHROME_WINDOWLOWERED },
- { GTK_MOZ_EMBED_FLAG_CENTERSCREEN, EMBED_CHROME_CENTERSCREEN },
- { 0, EMBED_CHROME_NONE }
+ { GTK_MOZ_EMBED_FLAG_DEFAULTCHROME, EPHY_EMBED_CHROME_DEFAULT },
+ { GTK_MOZ_EMBED_FLAG_MENUBARON, EPHY_EMBED_CHROME_MENUBAR },
+ { GTK_MOZ_EMBED_FLAG_TOOLBARON, EPHY_EMBED_CHROME_TOOLBAR },
+ { GTK_MOZ_EMBED_FLAG_STATUSBARON, EPHY_EMBED_CHROME_STATUSBAR },
+ { 0, 0 }
};
- if (chromemask & GTK_MOZ_EMBED_FLAG_OPENASCHROME)
+ if (chrome_mask & GTK_MOZ_EMBED_FLAG_OPENASCHROME)
{
*newEmbed = _mozilla_embed_new_xul_dialog ();
return;
}
- for (i = 0; conversion_map[i].chromemask != 0; i++)
+ for (i = 0; conversion_map[i].mozilla_mask != 0; i++)
{
- if (chromemask & conversion_map[i].chromemask)
+ if (chrome_mask & conversion_map[i].mozilla_mask)
{
- mask = (EmbedChromeMask) (mask | conversion_map[i].embed_mask);
+ mask |= conversion_map[i].embed_mask;
}
}
-
+
g_signal_emit_by_name (membed, "ge_new_window", &new_embed, mask);
g_assert (new_embed != NULL);