aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla
diff options
context:
space:
mode:
Diffstat (limited to 'embed/mozilla')
-rw-r--r--embed/mozilla/mozilla-embed-persist.cpp37
-rw-r--r--embed/mozilla/mozilla-embed-single.cpp165
-rw-r--r--embed/mozilla/mozilla-embed.cpp227
3 files changed, 163 insertions, 266 deletions
diff --git a/embed/mozilla/mozilla-embed-persist.cpp b/embed/mozilla/mozilla-embed-persist.cpp
index f2e586294..adb1699f7 100644
--- a/embed/mozilla/mozilla-embed-persist.cpp
+++ b/embed/mozilla/mozilla-embed-persist.cpp
@@ -43,11 +43,6 @@ mozilla_embed_persist_init (MozillaEmbedPersist *ges);
static void
mozilla_embed_persist_finalize (GObject *object);
-static gboolean
-impl_save (EphyEmbedPersist *persist);
-static void
-impl_cancel (EphyEmbedPersist *persist);
-
#define MOZILLA_EMBED_PERSIST_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), MOZILLA_TYPE_EMBED_PERSIST, MozillaEmbedPersistPrivate))
struct MozillaEmbedPersistPrivate
@@ -87,22 +82,6 @@ mozilla_embed_persist_get_type (void)
}
static void
-mozilla_embed_persist_class_init (MozillaEmbedPersistClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- EphyEmbedPersistClass *persist_class = EPHY_EMBED_PERSIST_CLASS (klass);
-
- parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
-
- object_class->finalize = mozilla_embed_persist_finalize;
-
- persist_class->save = impl_save;
- persist_class->cancel = impl_cancel;
-
- g_type_class_add_private (object_class, sizeof(MozillaEmbedPersistPrivate));
-}
-
-static void
mozilla_embed_persist_init (MozillaEmbedPersist *persist)
{
persist->priv = MOZILLA_EMBED_PERSIST_GET_PRIVATE (persist);
@@ -285,3 +264,19 @@ impl_save (EphyEmbedPersist *persist)
return TRUE;
}
+
+static void
+mozilla_embed_persist_class_init (MozillaEmbedPersistClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ EphyEmbedPersistClass *persist_class = EPHY_EMBED_PERSIST_CLASS (klass);
+
+ parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
+
+ object_class->finalize = mozilla_embed_persist_finalize;
+
+ persist_class->save = impl_save;
+ persist_class->cancel = impl_cancel;
+
+ g_type_class_add_private (object_class, sizeof(MozillaEmbedPersistPrivate));
+}
diff --git a/embed/mozilla/mozilla-embed-single.cpp b/embed/mozilla/mozilla-embed-single.cpp
index 595e291b1..df298d73a 100644
--- a/embed/mozilla/mozilla-embed-single.cpp
+++ b/embed/mozilla/mozilla-embed-single.cpp
@@ -72,35 +72,6 @@ mozilla_embed_single_init (MozillaEmbedSingle *ges);
static void
mozilla_embed_single_finalize (GObject *object);
-static void
-impl_clear_cache (EphyEmbedSingle *shell);
-static void
-impl_set_offline_mode (EphyEmbedSingle *shell,
- gboolean offline);
-static void
-impl_load_proxy_autoconf (EphyEmbedSingle *shell,
- const char* url);
-static GList *
-impl_get_font_list (EphyEmbedSingle *shell,
- const char *langGroup);
-static GList *
-impl_list_cookies (EphyEmbedSingle *shell);
-static void
-impl_remove_cookies (EphyEmbedSingle *shell,
- GList *cookies);
-static GList *
-impl_list_passwords (EphyEmbedSingle *shell,
- PasswordType type);
-static void
-impl_remove_passwords (EphyEmbedSingle *shell,
- GList *passwords,
- PasswordType type);
-
-static void mozilla_embed_single_new_window_orphan_cb (GtkMozEmbedSingle *embed,
- GtkMozEmbed **retval,
- guint chrome_mask,
- EphyEmbedSingle *shell);
-
#define MOZILLA_EMBED_SINGLE_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), MOZILLA_TYPE_EMBED_SINGLE, MozillaEmbedSinglePrivate))
struct MozillaEmbedSinglePrivate
@@ -141,28 +112,6 @@ mozilla_embed_single_get_type (void)
return mozilla_embed_single_type;
}
-static void
-mozilla_embed_single_class_init (MozillaEmbedSingleClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- EphyEmbedSingleClass *shell_class = EPHY_EMBED_SINGLE_CLASS (klass);
-
- parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
-
- object_class->finalize = mozilla_embed_single_finalize;
-
- shell_class->clear_cache = impl_clear_cache;
- shell_class->set_offline_mode = impl_set_offline_mode;
- shell_class->load_proxy_autoconf = impl_load_proxy_autoconf;
- shell_class->get_font_list = impl_get_font_list;
- shell_class->list_cookies = impl_list_cookies;
- shell_class->remove_cookies = impl_remove_cookies;
- shell_class->list_passwords = impl_list_passwords;
- shell_class->remove_passwords = impl_remove_passwords;
-
- g_type_class_add_private (object_class, sizeof(MozillaEmbedSinglePrivate));
-}
-
EphyEmbedSingle *
mozilla_embed_single_new (void)
{
@@ -276,6 +225,51 @@ mozilla_setup_colors (MozillaEmbedSingle *mes)
mes->priv->theme_window = window;
}
+static void
+mozilla_embed_single_new_window_orphan_cb (GtkMozEmbedSingle *embed,
+ GtkMozEmbed **retval,
+ guint chrome_mask,
+ EphyEmbedSingle *shell)
+{
+ /* FIXME conversion duped in mozilla_embed */
+ EphyEmbed *new_embed;
+ int i;
+ EmbedChromeMask mask = EMBED_CHROME_OPENASPOPUP;
+
+ struct
+ {
+ guint chromemask;
+ EmbedChromeMask 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_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 },
+ { GTK_MOZ_EMBED_FLAG_OPENASDIALOG, EMBED_CHROME_OPENASDIALOG },
+ { GTK_MOZ_EMBED_FLAG_OPENASCHROME, EMBED_CHROME_OPENASCHROME },
+ { 0, EMBED_CHROME_NONE }
+ };
+
+ for (i = 0; conversion_map[i].chromemask != 0; i++)
+ {
+ if (chrome_mask & conversion_map[i].chromemask)
+ {
+ mask = (EmbedChromeMask) (mask | conversion_map[i].embed_mask);
+ }
+ }
+
+ g_signal_emit_by_name (shell, "new_window_orphan", &new_embed, mask);
+
+ g_assert (new_embed != NULL);
+
+ *retval = GTK_MOZ_EMBED(EPHY_EMBED(new_embed));
+}
+
static void
mozilla_init_single (MozillaEmbedSingle *mes)
{
@@ -290,7 +284,7 @@ mozilla_init_single (MozillaEmbedSingle *mes)
/* allow creation of orphan windows */
g_signal_connect (G_OBJECT (single), "new_window_orphan",
- GTK_SIGNAL_FUNC (mozilla_embed_single_new_window_orphan_cb),
+ G_CALLBACK (mozilla_embed_single_new_window_orphan_cb),
mes);
}
@@ -462,51 +456,6 @@ mozilla_embed_single_init_services (MozillaEmbedSingle *single)
return TRUE;
}
-static void
-mozilla_embed_single_new_window_orphan_cb (GtkMozEmbedSingle *embed,
- GtkMozEmbed **retval,
- guint chrome_mask,
- EphyEmbedSingle *shell)
-{
- /* FIXME conversion duped in mozilla_embed */
- EphyEmbed *new_embed;
- int i;
- EmbedChromeMask mask = EMBED_CHROME_OPENASPOPUP;
-
- struct
- {
- guint chromemask;
- EmbedChromeMask 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_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 },
- { GTK_MOZ_EMBED_FLAG_OPENASDIALOG, EMBED_CHROME_OPENASDIALOG },
- { GTK_MOZ_EMBED_FLAG_OPENASCHROME, EMBED_CHROME_OPENASCHROME },
- { 0, EMBED_CHROME_NONE }
- };
-
- for (i = 0; conversion_map[i].chromemask != 0; i++)
- {
- if (chrome_mask & conversion_map[i].chromemask)
- {
- mask = (EmbedChromeMask) (mask | conversion_map[i].embed_mask);
- }
- }
-
- g_signal_emit_by_name (shell, "new_window_orphan", &new_embed, mask);
-
- g_assert (new_embed != NULL);
-
- *retval = GTK_MOZ_EMBED(EPHY_EMBED(new_embed));
-}
-
static void
mozilla_embed_single_finalize (GObject *object)
{
@@ -749,3 +698,25 @@ impl_remove_passwords (EphyEmbedSingle *shell,
};
};
}
+
+static void
+mozilla_embed_single_class_init (MozillaEmbedSingleClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ EphyEmbedSingleClass *shell_class = EPHY_EMBED_SINGLE_CLASS (klass);
+
+ parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
+
+ object_class->finalize = mozilla_embed_single_finalize;
+
+ shell_class->clear_cache = impl_clear_cache;
+ shell_class->set_offline_mode = impl_set_offline_mode;
+ shell_class->load_proxy_autoconf = impl_load_proxy_autoconf;
+ shell_class->get_font_list = impl_get_font_list;
+ shell_class->list_cookies = impl_list_cookies;
+ shell_class->remove_cookies = impl_remove_cookies;
+ shell_class->list_passwords = impl_list_passwords;
+ shell_class->remove_passwords = impl_remove_passwords;
+
+ g_type_class_add_private (object_class, sizeof(MozillaEmbedSinglePrivate));
+}
diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp
index 25018af17..97aefca23 100644
--- a/embed/mozilla/mozilla-embed.cpp
+++ b/embed/mozilla/mozilla-embed.cpp
@@ -47,77 +47,8 @@ static void mozilla_embed_init (MozillaEmbed *gs);
static void mozilla_embed_destroy (GtkObject *object);
static void ephy_embed_init (EphyEmbedClass *embed_class);
-static void
-impl_load_url (EphyEmbed *embed,
- const char *url);
-static void
-impl_stop_load (EphyEmbed *embed);
-static gboolean
-impl_can_go_back (EphyEmbed *embed);
-static gboolean
-impl_can_go_forward (EphyEmbed *embed);
-static gboolean
-impl_can_go_up (EphyEmbed *embed);
-static GSList *
-impl_get_go_up_list (EphyEmbed *embed);
-static void
-impl_go_back (EphyEmbed *embed);
-static void
-impl_go_forward (EphyEmbed *embed);
-static void
-impl_go_up (EphyEmbed *embed);
-static char *
-impl_get_title (EphyEmbed *embed);
-static char *
-impl_get_location (EphyEmbed *embed,
- gboolean toplevel);
-static void
-impl_reload (EphyEmbed *embed,
- EmbedReloadFlags flags);
-static void
-impl_zoom_set (EphyEmbed *embed,
- float zoom,
- gboolean reflow);
-static float
-impl_zoom_get (EphyEmbed *embed);
-static int
-impl_shistory_n_items (EphyEmbed *embed);
-static void
-impl_shistory_get_nth (EphyEmbed *embed,
- int nth,
- gboolean is_relative,
- char **url,
- char **title);
-static int
-impl_shistory_get_pos (EphyEmbed *embed);
-static void
-impl_shistory_go_nth (EphyEmbed *embed,
- int nth);
-static void
-impl_get_security_level (EphyEmbed *embed,
- EmbedSecurityLevel *level,
- char **description);
-static void
-impl_set_encoding (EphyEmbed *embed,
- const char *encoding);
-static EphyEncodingInfo *
-impl_get_encoding_info (EphyEmbed *embed);
-static void
-impl_print (EphyEmbed *embed,
- EmbedPrintInfo *info);
-static void
-impl_print_preview_close (EphyEmbed *embed);
-static int
-impl_print_preview_n_pages (EphyEmbed *embed);
-static void
-impl_print_preview_navigate (EphyEmbed *embed,
- EmbedPrintPreviewNavType navType,
- gint pageNum);
-
static void
mozilla_embed_connect_signals (MozillaEmbed *membed);
-static char *
-mozilla_embed_get_uri_parent (const char *uri);
static void
mozilla_embed_location_changed_cb (GtkMozEmbed *embed, MozillaEmbed *membed);
static void
@@ -310,39 +241,6 @@ impl_find_set_properties (EphyEmbed *embed,
}
static void
-ephy_embed_init (EphyEmbedClass *embed_class)
-{
- embed_class->load_url = impl_load_url;
- embed_class->stop_load = impl_stop_load;
- embed_class->can_go_back = impl_can_go_back;
- embed_class->can_go_forward =impl_can_go_forward;
- embed_class->can_go_up = impl_can_go_up;
- embed_class->get_go_up_list = impl_get_go_up_list;
- embed_class->go_back = impl_go_back;
- embed_class->go_forward = impl_go_forward;
- embed_class->go_up = impl_go_up;
- embed_class->get_title = impl_get_title;
- embed_class->get_location = impl_get_location;
- embed_class->reload = impl_reload;
- embed_class->zoom_set = impl_zoom_set;
- embed_class->zoom_get = impl_zoom_get;
- embed_class->shistory_n_items = impl_shistory_n_items;
- embed_class->shistory_get_nth = impl_shistory_get_nth;
- embed_class->shistory_get_pos = impl_shistory_get_pos;
- embed_class->shistory_go_nth = impl_shistory_go_nth;
- embed_class->get_security_level = impl_get_security_level;
- embed_class->find_next = impl_find_next;
- embed_class->activate = impl_activate;
- embed_class->find_set_properties = impl_find_set_properties;
- embed_class->set_encoding = impl_set_encoding;
- embed_class->get_encoding_info = impl_get_encoding_info;
- embed_class->print = impl_print;
- embed_class->print_preview_close = impl_print_preview_close;
- embed_class->print_preview_n_pages = impl_print_preview_n_pages;
- embed_class->print_preview_navigate = impl_print_preview_navigate;
-}
-
-static void
mozilla_embed_realize (GtkWidget *widget)
{
MozillaEmbedPrivate *mpriv = MOZILLA_EMBED (widget)->priv;
@@ -460,6 +358,52 @@ impl_can_go_forward (EphyEmbed *embed)
return gtk_moz_embed_can_go_forward (GTK_MOZ_EMBED(embed));
}
+static char *
+mozilla_embed_get_uri_parent (const char *aUri)
+{
+ nsresult rv;
+
+ nsCOMPtr<nsIURI> uri;
+ rv = NS_NewURI (getter_AddRefs(uri), aUri);
+ if (NS_FAILED(rv) || !uri) return NULL;
+
+ nsCOMPtr<nsIURL> url = do_QueryInterface(uri, &rv);
+ if (NS_FAILED(rv) || !url) return NULL;
+
+ nsCAutoString dirPath;
+ rv = url->GetDirectory (dirPath);
+ if (NS_FAILED(rv) || !dirPath.Length()) return NULL;
+
+ nsCAutoString filePath;
+ rv = url->GetFilePath (filePath);
+ if (NS_FAILED(rv) || !filePath.Length()) return NULL;
+
+ PRInt32 pathLength = filePath.Length();
+ PRInt32 trailingSlash = filePath.RFind("/");
+
+ if(pathLength < 2 || trailingSlash == -1)
+ {
+ return NULL;
+ }
+
+ if(trailingSlash != (pathLength-1))
+ {
+ uri->SetPath(dirPath);
+ }
+ else
+ {
+ PRInt32 nextSlash = filePath.RFind("/",PR_FALSE,trailingSlash-1);
+ nsCAutoString parentPath;
+ filePath.Left(parentPath, nextSlash);
+ uri->SetPath(parentPath);
+ }
+
+ nsCAutoString spec;
+ uri->GetSpec(spec);
+
+ return !spec.IsEmpty() ? g_strdup(spec.get()) : NULL;
+}
+
static gboolean
impl_can_go_up (EphyEmbed *embed)
{
@@ -541,52 +485,6 @@ impl_go_up (EphyEmbed *embed)
}
static char *
-mozilla_embed_get_uri_parent (const char *aUri)
-{
- nsresult rv;
-
- nsCOMPtr<nsIURI> uri;
- rv = NS_NewURI (getter_AddRefs(uri), aUri);
- if (NS_FAILED(rv) || !uri) return NULL;
-
- nsCOMPtr<nsIURL> url = do_QueryInterface(uri, &rv);
- if (NS_FAILED(rv) || !url) return NULL;
-
- nsCAutoString dirPath;
- rv = url->GetDirectory (dirPath);
- if (NS_FAILED(rv) || !dirPath.Length()) return NULL;
-
- nsCAutoString filePath;
- rv = url->GetFilePath (filePath);
- if (NS_FAILED(rv) || !filePath.Length()) return NULL;
-
- PRInt32 pathLength = filePath.Length();
- PRInt32 trailingSlash = filePath.RFind("/");
-
- if(pathLength < 2 || trailingSlash == -1)
- {
- return NULL;
- }
-
- if(trailingSlash != (pathLength-1))
- {
- uri->SetPath(dirPath);
- }
- else
- {
- PRInt32 nextSlash = filePath.RFind("/",PR_FALSE,trailingSlash-1);
- nsCAutoString parentPath;
- filePath.Left(parentPath, nextSlash);
- uri->SetPath(parentPath);
- }
-
- nsCAutoString spec;
- uri->GetSpec(spec);
-
- return !spec.IsEmpty() ? g_strdup(spec.get()) : NULL;
-}
-
-static char *
impl_get_title (EphyEmbed *embed)
{
nsXPIDLString uTitle;
@@ -1229,3 +1127,36 @@ mozilla_embed_security_level (MozillaEmbed *membed)
}
return level;
}
+
+static void
+ephy_embed_init (EphyEmbedClass *embed_class)
+{
+ embed_class->load_url = impl_load_url;
+ embed_class->stop_load = impl_stop_load;
+ embed_class->can_go_back = impl_can_go_back;
+ embed_class->can_go_forward =impl_can_go_forward;
+ embed_class->can_go_up = impl_can_go_up;
+ embed_class->get_go_up_list = impl_get_go_up_list;
+ embed_class->go_back = impl_go_back;
+ embed_class->go_forward = impl_go_forward;
+ embed_class->go_up = impl_go_up;
+ embed_class->get_title = impl_get_title;
+ embed_class->get_location = impl_get_location;
+ embed_class->reload = impl_reload;
+ embed_class->zoom_set = impl_zoom_set;
+ embed_class->zoom_get = impl_zoom_get;
+ embed_class->shistory_n_items = impl_shistory_n_items;
+ embed_class->shistory_get_nth = impl_shistory_get_nth;
+ embed_class->shistory_get_pos = impl_shistory_get_pos;
+ embed_class->shistory_go_nth = impl_shistory_go_nth;
+ embed_class->get_security_level = impl_get_security_level;
+ embed_class->find_next = impl_find_next;
+ embed_class->activate = impl_activate;
+ embed_class->find_set_properties = impl_find_set_properties;
+ embed_class->set_encoding = impl_set_encoding;
+ embed_class->get_encoding_info = impl_get_encoding_info;
+ embed_class->print = impl_print;
+ embed_class->print_preview_close = impl_print_preview_close;
+ embed_class->print_preview_n_pages = impl_print_preview_n_pages;
+ embed_class->print_preview_navigate = impl_print_preview_navigate;
+}