From ce5b9dda9af22f97ed0dac08ac5f96ea764c3eae Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sun, 20 May 2007 17:27:19 +0000 Subject: s/Browser/WebView, cleanup startup --- (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 541c4e4..efe531b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ sugardir = $(pythondir)/hulahop sugar_PYTHON = \ __init__.py \ - browser.py + webview.py INCLUDES = \ $(DEPS_CFLAGS) \ @@ -31,8 +31,8 @@ _hulahop_la_LIBADD = \ _hulahop_la_SOURCES = \ HulahopDirectoryProvider.cpp \ HulahopDirectoryProvider.h \ - hulahop-browser.cpp \ - hulahop-browser.h \ + hulahop-web-view.cpp \ + hulahop-web-view.h \ hulahop.c \ hulahopmodule.c diff --git a/src/__init__.py b/src/__init__.py index 5052a51..aaa29a9 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -15,9 +15,13 @@ # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. -from hulahop._hulahop import startup, shutdown -from hulahop._hulahop import set_profile_path, add_components_path +from hulahop._hulahop import shutdown +from hulahop import _hulahop -startup() +def startup(profile_path, components_dirs=[]): + _hulahop.set_profile_path(profile_path) -from hulahop.browser import Browser + for path in components_dirs: + _hulahop.add_components_path(path) + + _hulahop.startup() diff --git a/src/hulahop-browser.h b/src/hulahop-browser.h deleted file mode 100644 index 72c2d0c..0000000 --- a/src/hulahop-browser.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2006, Red Hat, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __HULAHOP_BROWSER_H__ -#define __HULAHOP_BROWSER_H__ - -#include -#include - -G_BEGIN_DECLS - -typedef struct _HulahopBrowser HulahopBrowser; -typedef struct _HulahopBrowserClass HulahopBrowserClass; - -#define HULAHOP_TYPE_BROWSER (hulahop_browser_get_type()) -#define HULAHOP_BROWSER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), HULAHOP_TYPE_BROWSER, HulahopBrowser)) -#define HULAHOP_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), HULAHOP_TYPE_BROWSER, HulahopBrowserClass)) -#define HULAHOP_IS_BROWSER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), HULAHOP_TYPE_BROWSER)) -#define HULAHOP_IS_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), HULAHOP_TYPE_BROWSER)) -#define HULAHOP_BROWSER_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), HULAHOP_TYPE_BROWSER, HulahopBrowserClass)) - -gboolean hulahop_startup (void); -void hulahop_shutdown (void); -void hulahop_set_profile_path (const char *path); -void hulahop_add_components_path (const char *path); - -GType hulahop_browser_get_type (void); -PyObject *hulahop_browser_get_browser (HulahopBrowser *browser); -PyObject *hulahop_browser_get_window_root (HulahopBrowser *browser); - -G_END_DECLS - -#endif diff --git a/src/hulahop-browser.cpp b/src/hulahop-web-view.cpp index 6c09964..ec4e3be 100644 --- a/src/hulahop-browser.cpp +++ b/src/hulahop-web-view.cpp @@ -32,10 +32,10 @@ #include #include -#include "hulahop-browser.h" +#include "hulahop-web-view.h" #include "HulahopDirectoryProvider.h" -struct _HulahopBrowser { +struct _HulahopWebView { GtkBin base_instance; nsCOMPtr browser; @@ -45,11 +45,11 @@ struct _HulahopBrowser { GtkWidget *mozilla_widget; }; -struct _HulahopBrowserClass { +struct _HulahopWebViewClass { GtkBinClass base_class; }; -G_DEFINE_TYPE(HulahopBrowser, hulahop_browser, GTK_TYPE_BIN) +G_DEFINE_TYPE(HulahopWebView, hulahop_web_view, GTK_TYPE_BIN) static GObjectClass *parent_class = NULL; @@ -88,7 +88,6 @@ void hulahop_set_profile_path(const char *path) { kDirectoryProvider.SetProfilePath(path); - XRE_NotifyProfile(); } void @@ -100,10 +99,10 @@ hulahop_add_components_path(const char *path) static gboolean child_focus_in_cb(GtkWidget *widget, GdkEventFocus *event, - HulahopBrowser *browser) + HulahopWebView *web_view) { nsCOMPtr webBrowserFocus; - webBrowserFocus = do_QueryInterface(browser->browser); + webBrowserFocus = do_QueryInterface(web_view->browser); NS_ENSURE_TRUE(webBrowserFocus, FALSE); webBrowserFocus->Activate(); @@ -114,10 +113,10 @@ child_focus_in_cb(GtkWidget *widget, static gboolean child_focus_out_cb(GtkWidget *widget, GdkEventFocus *event, - HulahopBrowser *browser) + HulahopWebView *web_view) { nsCOMPtr webBrowserFocus; - webBrowserFocus = do_QueryInterface(browser->browser); + webBrowserFocus = do_QueryInterface(web_view->browser); NS_ENSURE_TRUE(webBrowserFocus, FALSE); webBrowserFocus->Deactivate(); @@ -126,19 +125,19 @@ child_focus_out_cb(GtkWidget *widget, } static void -hulahop_browser_unrealize(GtkWidget *widget) +hulahop_web_view_unrealize(GtkWidget *widget) { - HulahopBrowser *browser = HULAHOP_BROWSER(widget); + HulahopWebView *web_view = HULAHOP_WEB_VIEW(widget); - gtk_widget_reparent(browser->mozilla_widget, browser->offscreen_window); + gtk_widget_reparent(web_view->mozilla_widget, web_view->offscreen_window); GTK_WIDGET_CLASS(parent_class)->unrealize(widget); } static void -hulahop_browser_realize(GtkWidget *widget) +hulahop_web_view_realize(GtkWidget *widget) { - HulahopBrowser *browser = HULAHOP_BROWSER(widget); + HulahopWebView *web_view = HULAHOP_WEB_VIEW(widget); GdkWindowAttr attributes; gint attributes_mask; @@ -163,130 +162,130 @@ hulahop_browser_realize(GtkWidget *widget) widget->style = gtk_style_attach (widget->style, widget->window); gtk_style_set_background(widget->style, widget->window, GTK_STATE_NORMAL); - g_assert(GTK_IS_WIDGET(browser->mozilla_widget)); + g_assert(GTK_IS_WIDGET(web_view->mozilla_widget)); - gtk_widget_reparent(browser->mozilla_widget, widget); + gtk_widget_reparent(web_view->mozilla_widget, widget); - g_signal_connect_object(browser->mozilla_widget, + g_signal_connect_object(web_view->mozilla_widget, "focus-in-event", G_CALLBACK(child_focus_in_cb), - browser, (GConnectFlags)0); - g_signal_connect_object(browser->mozilla_widget, + web_view, (GConnectFlags)0); + g_signal_connect_object(web_view->mozilla_widget, "focus-out-event", G_CALLBACK(child_focus_out_cb), - browser, (GConnectFlags)0); + web_view, (GConnectFlags)0); } static void -hulahop_browser_map(GtkWidget *widget) +hulahop_web_view_map(GtkWidget *widget) { - HulahopBrowser *browser = HULAHOP_BROWSER(widget); + HulahopWebView *web_view = HULAHOP_WEB_VIEW(widget); GTK_WIDGET_SET_FLAGS(widget, GTK_MAPPED); - browser->base_window->SetVisibility(PR_TRUE); + web_view->base_window->SetVisibility(PR_TRUE); gdk_window_show(widget->window); } static void -hulahop_browser_unmap(GtkWidget *widget) +hulahop_web_view_unmap(GtkWidget *widget) { - HulahopBrowser *browser = HULAHOP_BROWSER(widget); + HulahopWebView *web_view = HULAHOP_WEB_VIEW(widget); GTK_WIDGET_UNSET_FLAGS(widget, GTK_MAPPED); - browser->base_window->SetVisibility(PR_FALSE); + web_view->base_window->SetVisibility(PR_FALSE); gdk_window_hide(widget->window); } static void -hulahop_browser_size_allocate(GtkWidget *widget, GtkAllocation *allocation) +hulahop_web_view_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { - HulahopBrowser *browser = HULAHOP_BROWSER(widget); + HulahopWebView *web_view = HULAHOP_WEB_VIEW(widget); if (GTK_WIDGET_REALIZED(widget)) { gdk_window_move_resize(widget->window, allocation->x, allocation->y, allocation->width, allocation->height); - browser->base_window->SetSize(allocation->width, - allocation->height, PR_TRUE); + web_view->base_window->SetSize(allocation->width, + allocation->height, PR_TRUE); } } static void -hulahop_browser_dispose(GObject *object) +hulahop_web_view_dispose(GObject *object) { - HulahopBrowser *browser = HULAHOP_BROWSER(object); + HulahopWebView *web_view = HULAHOP_WEB_VIEW(object); - if (browser->offscreen_window) { - gtk_widget_destroy(browser->offscreen_window); - browser->offscreen_window = NULL; + if (web_view->offscreen_window) { + gtk_widget_destroy(web_view->offscreen_window); + web_view->offscreen_window = NULL; } } static void -hulahop_browser_class_init(HulahopBrowserClass *browser_class) +hulahop_web_view_class_init(HulahopWebViewClass *web_view_class) { - GObjectClass *gobject_class = G_OBJECT_CLASS(browser_class); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(browser_class); + GObjectClass *gobject_class = G_OBJECT_CLASS(web_view_class); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(web_view_class); - parent_class = (GObjectClass *) g_type_class_peek_parent(browser_class); + parent_class = (GObjectClass *) g_type_class_peek_parent(web_view_class); - widget_class->realize = hulahop_browser_realize; - widget_class->unrealize = hulahop_browser_unrealize; - widget_class->map = hulahop_browser_map; - widget_class->unmap = hulahop_browser_unmap; - widget_class->size_allocate = hulahop_browser_size_allocate; + widget_class->realize = hulahop_web_view_realize; + widget_class->unrealize = hulahop_web_view_unrealize; + widget_class->map = hulahop_web_view_map; + widget_class->unmap = hulahop_web_view_unmap; + widget_class->size_allocate = hulahop_web_view_size_allocate; - gobject_class->dispose = hulahop_browser_dispose; + gobject_class->dispose = hulahop_web_view_dispose; } static void -hulahop_browser_init(HulahopBrowser *browser) +hulahop_web_view_init(HulahopWebView *web_view) { - browser->offscreen_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_widget_realize(browser->offscreen_window); + web_view->offscreen_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_widget_realize(web_view->offscreen_window); nsresult rv; - browser->browser = do_CreateInstance + web_view->browser = do_CreateInstance ("@mozilla.org/embedding/browser/nsWebBrowser;1"); - g_assert(browser->browser); + g_assert(web_view->browser); - nsCOMPtr item = do_QueryInterface(browser->browser); + nsCOMPtr item = do_QueryInterface(web_view->browser); item->SetItemType(nsIDocShellTreeItem::typeContentWrapper); - browser->base_window = do_QueryInterface(browser->browser); + web_view->base_window = do_QueryInterface(web_view->browser); - rv = browser->base_window->InitWindow(browser->offscreen_window, + rv = web_view->base_window->InitWindow(web_view->offscreen_window, nsnull, 0, 0, 100, 100); g_assert(NS_SUCCEEDED(rv)); - rv = browser->base_window->Create(); + rv = web_view->base_window->Create(); g_assert(NS_SUCCEEDED(rv)); - browser->mozilla_widget = GTK_BIN(browser->offscreen_window)->child; + web_view->mozilla_widget = GTK_BIN(web_view->offscreen_window)->child; - GTK_WIDGET_UNSET_FLAGS(GTK_WIDGET(browser), GTK_NO_WINDOW); + GTK_WIDGET_UNSET_FLAGS(GTK_WIDGET(web_view), GTK_NO_WINDOW); } PyObject * -hulahop_browser_get_browser(HulahopBrowser *browser) +hulahop_web_view_get_browser(HulahopWebView *web_view) { - return PyObject_FromNSInterface(browser->browser, + return PyObject_FromNSInterface(web_view->browser, NS_GET_IID(nsIWebBrowser)); } PyObject * -hulahop_browser_get_window_root(HulahopBrowser *browser) +hulahop_web_view_get_window_root(HulahopWebView *web_view) { nsresult rv; nsCOMPtr contentWindow; - rv = browser->browser->GetContentDOMWindow(getter_AddRefs(contentWindow)); + rv = web_view->browser->GetContentDOMWindow(getter_AddRefs(contentWindow)); NS_ENSURE_SUCCESS(rv, NULL); nsCOMPtr domWindow(do_QueryInterface(contentWindow)); diff --git a/src/hulahop-web-view.h b/src/hulahop-web-view.h new file mode 100644 index 0000000..28b44a3 --- /dev/null +++ b/src/hulahop-web-view.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2006, Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __HULAHOP_WEB_VIEW_H__ +#define __HULAHOP_WEB_VIEW_H__ + +#include +#include + +G_BEGIN_DECLS + +typedef struct _HulahopWebView HulahopWebView; +typedef struct _HulahopWebViewClass HulahopWebViewClass; + +#define HULAHOP_TYPE_WEB_VIEW (hulahop_web_view_get_type()) +#define HULAHOP_WEB_VIEW(object) (G_TYPE_CHECK_INSTANCE_CAST((object), HULAHOP_TYPE_WEB_VIEW, HulahopWebView)) +#define HULAHOP_WEB_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), HULAHOP_TYPE_WEB_VIEW, HulahopWebViewClass)) +#define HULAHOP_IS_WEB_VIEW(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), HULAHOP_TYPE_WEB_VIEW)) +#define HULAHOP_IS_WEB_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), HULAHOP_TYPE_WEB_VIEW)) +#define HULAHOP_WEB_VIEW_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), HULAHOP_TYPE_WEB_VIEW, HulahopWebViewClass)) + +gboolean hulahop_startup (void); +void hulahop_shutdown (void); +void hulahop_set_profile_path (const char *path); +void hulahop_add_components_path (const char *path); + +GType hulahop_web_view_get_type (void); +PyObject *hulahop_web_view_get_browser (HulahopWebView *web_view); +PyObject *hulahop_web_view_get_window_root (HulahopWebView *web_view); + +G_END_DECLS + +#endif diff --git a/src/hulahop.defs b/src/hulahop.defs index 8df394b..811b6c5 100644 --- a/src/hulahop.defs +++ b/src/hulahop.defs @@ -1,19 +1,19 @@ -(define-object Browser +(define-object WebView (in-module "Hulahop") (parent "GtkBin") - (c-name "HulahopBrowser") - (gtype-id "HULAHOP_TYPE_BROWSER") + (c-name "HulahopWebView") + (gtype-id "HULAHOP_TYPE_WEB_VIEW") ) (define-method get_browser - (of-object "HulahopBrowser") - (c-name "hulahop_browser_get_browser") + (of-object "HulahopWebView") + (c-name "hulahop_web_view_get_browser") (return-type "none") ) (define-method get_window_root - (of-object "HulahopBrowser") - (c-name "hulahop_browser_get_window_root") + (of-object "HulahopWebView") + (c-name "hulahop_web_view_get_window_root") (return-type "none") ) diff --git a/src/hulahop.override b/src/hulahop.override index 38ea00d..d846c64 100644 --- a/src/hulahop.override +++ b/src/hulahop.override @@ -4,7 +4,7 @@ headers #include #include -#include "hulahop-browser.h" +#include "hulahop-web-view.h" %% modulename _hulahop @@ -15,17 +15,17 @@ ignore-glob *_get_type _* %% -override hulahop_browser_get_browser noargs +override hulahop_web_view_get_browser noargs static PyObject * -_wrap_hulahop_browser_get_browser(PyGObject *self) +_wrap_hulahop_web_view_get_browser(PyGObject *self) { - return hulahop_browser_get_browser(HULAHOP_BROWSER(self->obj)); + return hulahop_web_view_get_browser(HULAHOP_WEB_VIEW(self->obj)); } %% -override hulahop_browser_get_window_root noargs +override hulahop_web_view_get_window_root noargs static PyObject * -_wrap_hulahop_browser_get_window_root(PyGObject *self) +_wrap_hulahop_web_view_get_window_root(PyGObject *self) { - return hulahop_browser_get_window_root(HULAHOP_BROWSER(self->obj)); + return hulahop_web_view_get_window_root(HULAHOP_WEB_VIEW(self->obj)); } %% diff --git a/src/browser.py b/src/webview.py index ad62d41..3b5e380 100644 --- a/src/browser.py +++ b/src/webview.py @@ -20,15 +20,15 @@ from hulahop import _hulahop from xpcom import components from xpcom.components import interfaces -class Browser(_hulahop.Browser): +class WebView(_hulahop.WebView): def __init__(self): - _hulahop.Browser.__init__(self) + _hulahop.WebView.__init__(self) def get_window_root(self): - return _hulahop.Browser.get_window_root(self) + return _hulahop.WebView.get_window_root(self) def get_browser(self): - return _hulahop.Browser.get_browser(self) + return _hulahop.WebView.get_browser(self) def get_window(self): return self.browser.contentDOMWindow -- cgit v0.9.1