From fd4f7ff174621461810cf76597a73250ab2cf6fd Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Fri, 21 Nov 2003 23:03:32 +0000 Subject: New interfaces: EphyCookieManager, EphyPermissionManager, 2003-11-21 Christian Persch * embed/Makefile.am: * embed/ephy-cookie-manager.c: (ephy_cookie_get_type), (ephy_cookie_new), (ephy_cookie_copy), (ephy_cookie_free), (ephy_cookie_manager_get_type), (ephy_cookie_manager_base_init), (ephy_cookie_manager_list_cookies), (ephy_cookie_manager_remove_cookie), (ephy_cookie_manager_clear): * embed/ephy-cookie-manager.h: * embed/ephy-embed-single.c: (ephy_embed_single_get_type), (ephy_embed_single_class_init), (ephy_embed_single_clear_cache), (ephy_embed_single_set_offline_mode), (ephy_embed_single_load_proxy_autoconf), (ephy_embed_single_get_font_list): * embed/ephy-embed-single.h: * embed/ephy-password-manager.c: (ephy_password_info_get_type), (ephy_password_info_new), (ephy_password_info_copy), (ephy_password_info_free), (ephy_password_manager_get_type), (ephy_password_manager_add), (ephy_password_manager_remove), (ephy_password_manager_list): * embed/ephy-password-manager.h: * embed/ephy-permission-manager.c: (ephy_permission_info_get_type), (ephy_permission_info_new), (ephy_permission_info_copy), (ephy_permission_info_free), (ephy_permission_manager_get_type), (ephy_permission_manager_base_init), (ephy_permission_manager_add), (ephy_permission_manager_remove), (ephy_permission_manager_clear), (ephy_permission_manager_test), (ephy_permission_manager_list): * embed/ephy-permission-manager.h: * embed/mozilla/mozilla-embed-single.cpp: * embed/mozilla/mozilla-embed-single.h: * embed/mozilla/mozilla-notifiers.cpp: * src/Makefile.am: * src/pdm-dialog.c: (pdm_dialog_get_type), (pdm_dialog_cookie_add), (pdm_dialog_password_add), (pdm_dialog_cookie_remove), (pdm_dialog_password_remove), (pdm_dialog_cookies_free), (pdm_dialog_passwords_free), (pdm_dialog_init), (pdm_dialog_new), (show_cookies_properties), (pdm_dialog_cookies_properties_button_clicked_cb): * src/pdm-dialog.h: New interfaces: EphyCookieManager, EphyPermissionManager, EphyPasswordManager. Port all callers to new interfaces. Change linking order to make it link. Only set autoconf proxy url if it's non-empty. --- embed/ephy-embed-single.c | 168 +++++++++------------------------------------- 1 file changed, 31 insertions(+), 137 deletions(-) (limited to 'embed/ephy-embed-single.c') diff --git a/embed/ephy-embed-single.c b/embed/ephy-embed-single.c index e5bfd0f65..efaf2db39 100644 --- a/embed/ephy-embed-single.c +++ b/embed/ephy-embed-single.c @@ -22,66 +22,41 @@ #include "config.h" #endif -#include "ephy-embed-shell.h" +#include "ephy-embed-single.h" #include "ephy-marshal.h" -#include "ephy-favicon-cache.h" -#include "mozilla-embed-single.h" -#include "ephy-debug.h" -#include "downloader-view.h" -#include - -#define EPHY_EMBED_SINGLE_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_EMBED_SINGLE, EphyEmbedSinglePrivate)) - -struct EphyEmbedSinglePrivate -{ - EphyHistory *global_history; - DownloaderView *downloader_view; - EphyFaviconCache *favicon_cache; -}; - -static void -ephy_embed_single_class_init (EphyEmbedSingleClass *klass); -static void -ephy_embed_single_init (EphyEmbedSingle *ges); - -static GObjectClass *parent_class = NULL; +static void ephy_embed_single_class_init (gpointer g_class); GType ephy_embed_single_get_type (void) { - static GType ephy_embed_single_type = 0; + static GType type = 0; - if (ephy_embed_single_type == 0) + if (type == 0) { static const GTypeInfo our_info = { sizeof (EphyEmbedSingleClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) ephy_embed_single_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (EphyEmbedSingle), - 0, /* n_preallocs */ - (GInstanceInitFunc) ephy_embed_single_init + ephy_embed_single_class_init, + NULL, }; - ephy_embed_single_type = g_type_register_static (G_TYPE_OBJECT, - "EphyEmbedSingle", - &our_info, 0); + type = g_type_register_static (G_TYPE_INTERFACE, + "EphyEmbedSingle", + &our_info, + (GTypeFlags) 0); } - return ephy_embed_single_type; + return type; } static void -ephy_embed_single_class_init (EphyEmbedSingleClass *klass) +ephy_embed_single_class_init (gpointer g_class) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - parent_class = (GObjectClass *) g_type_class_peek_parent (klass); + static gboolean initialised = FALSE; + if (initialised == FALSE) + { g_signal_new ("handle_content", EPHY_TYPE_EMBED_SINGLE, G_SIGNAL_RUN_LAST, @@ -93,118 +68,37 @@ ephy_embed_single_class_init (EphyEmbedSingleClass *klass) G_TYPE_STRING, G_TYPE_STRING); - g_type_class_add_private (object_class, sizeof(EphyEmbedSinglePrivate)); -} - -static void -ephy_embed_single_init (EphyEmbedSingle *ges) -{ - ges->priv = EPHY_EMBED_SINGLE_GET_PRIVATE (ges); - - ges->priv->global_history = NULL; - ges->priv->downloader_view = NULL; - - ges->priv->favicon_cache = NULL; + initialised = TRUE; + } } void -ephy_embed_single_clear_cache (EphyEmbedSingle *shell) +ephy_embed_single_clear_cache (EphyEmbedSingle *single) { - EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (shell); - klass->clear_cache (shell); + EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (single); + klass->clear_cache (single); } void -ephy_embed_single_set_offline_mode (EphyEmbedSingle *shell, - gboolean offline) +ephy_embed_single_set_offline_mode (EphyEmbedSingle *single, + gboolean offline) { - EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (shell); - klass->set_offline_mode (shell, offline); + EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (single); + klass->set_offline_mode (single, offline); } void -ephy_embed_single_load_proxy_autoconf (EphyEmbedSingle *shell, - const char* url) +ephy_embed_single_load_proxy_autoconf (EphyEmbedSingle *single, + const char* url) { - EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (shell); - klass->load_proxy_autoconf (shell, url); + EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (single); + klass->load_proxy_autoconf (single, url); } GList * -ephy_embed_single_get_font_list (EphyEmbedSingle *shell, +ephy_embed_single_get_font_list (EphyEmbedSingle *single, const char *langGroup) { - EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (shell); - return klass->get_font_list (shell, langGroup); -} - -GList * -ephy_embed_single_list_cookies (EphyEmbedSingle *shell) -{ - EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (shell); - return klass->list_cookies (shell); -} - -void -ephy_embed_single_remove_cookies (EphyEmbedSingle *shell, - GList *cookies) -{ - EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (shell); - klass->remove_cookies (shell, cookies); -} - -GList * -ephy_embed_single_list_passwords (EphyEmbedSingle *shell, - PasswordType type) -{ - EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (shell); - return klass->list_passwords (shell, type); -} - -void -ephy_embed_single_remove_passwords (EphyEmbedSingle *shell, - GList *passwords, - PasswordType type) -{ - EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (shell); - klass->remove_passwords (shell, passwords, type); -} - -void -ephy_embed_single_free_cookies (EphyEmbedSingle *shell, - GList *cookies) -{ - GList *l; - - for (l = cookies; l != NULL; l = l->next) - { - CookieInfo *info = (CookieInfo *)l->data; - - g_free (info->domain); - g_free (info->name); - g_free (info->value); - g_free (info->path); - g_free (info->secure); - g_free (info->expire); - g_free (info); - } - - g_list_free (cookies); -} - -void -ephy_embed_single_free_passwords (EphyEmbedSingle *shell, - GList *passwords) -{ - GList *l; - - for (l = passwords; l != NULL; l = l->next) - { - PasswordInfo *info = (PasswordInfo *)l->data; - g_free (info->host); - g_free (info->username); - g_free (info); - } - - g_list_free (passwords); + EphyEmbedSingleClass *klass = EPHY_EMBED_SINGLE_GET_CLASS (single); + return klass->get_font_list (single, langGroup); } -- cgit v1.2.3