diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-05-20 02:35:24 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-05-20 02:35:24 (GMT) |
commit | 77a7b5771b76fd59a4ef3a857c0d2eb7860c3121 (patch) | |
tree | 2c84ab9c9018e6d997995e17c2b5497110b2e972 /src | |
parent | 59471d920fef2bc1289fa2621f285698f4f71997 (diff) |
Allow to listen to root window events.
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/browser.py | 8 | ||||
-rw-r--r-- | src/hulahop-browser.cpp | 24 | ||||
-rw-r--r-- | src/hulahop-browser.h | 9 | ||||
-rw-r--r-- | src/hulahop.defs | 6 | ||||
-rw-r--r-- | src/hulahop.override | 7 |
6 files changed, 48 insertions, 7 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index bdd6daf..541c4e4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -9,6 +9,7 @@ INCLUDES = \ $(PYGTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ -I$(MOZILLA_INCLUDE_ROOT)/docshell \ + -I$(MOZILLA_INCLUDE_ROOT)/dom \ -I$(MOZILLA_INCLUDE_ROOT)/xulapp \ -I$(MOZILLA_INCLUDE_ROOT)/nspr \ -I$(MOZILLA_INCLUDE_ROOT)/pyxpcom \ diff --git a/src/browser.py b/src/browser.py index 6f91184..ad62d41 100644 --- a/src/browser.py +++ b/src/browser.py @@ -24,10 +24,13 @@ class Browser(_hulahop.Browser): def __init__(self): _hulahop.Browser.__init__(self) + def get_window_root(self): + return _hulahop.Browser.get_window_root(self) + def get_browser(self): return _hulahop.Browser.get_browser(self) - def get_document(self): + def get_window(self): return self.browser.contentDOMWindow def load_uri(self, uri): @@ -35,5 +38,6 @@ class Browser(_hulahop.Browser): web_nav.loadURI(uri, interfaces.nsIWebNavigation.LOAD_FLAGS_NONE, None, None, None) - document = property(get_document) + window = property(get_window) browser = property(get_browser) + window_root = property(get_window_root) diff --git a/src/hulahop-browser.cpp b/src/hulahop-browser.cpp index b0ba3ab..f092ffc 100644 --- a/src/hulahop-browser.cpp +++ b/src/hulahop-browser.cpp @@ -22,6 +22,8 @@ #include <nsCOMPtr.h> #include <nsIWebBrowser.h> #include <nsIWebBrowserFocus.h> +#include <nsIDOMWindow2.h> +#include <nsIDOMEventTarget.h> #include <nsILocalFile.h> #include <nsIBaseWindow.h> #include <nsXULAppAPI.h> @@ -261,8 +263,28 @@ hulahop_browser_init(HulahopBrowser *browser) } PyObject * -hulahop_browser_get_browser (HulahopBrowser *browser) +hulahop_browser_get_browser(HulahopBrowser *browser) { return PyObject_FromNSInterface(browser->browser, NS_GET_IID(nsIWebBrowser)); } + +PyObject * +hulahop_browser_get_window_root(HulahopBrowser *browser) +{ + nsresult rv; + + nsCOMPtr<nsIDOMWindow> contentWindow; + rv = browser->browser->GetContentDOMWindow(getter_AddRefs(contentWindow)); + NS_ENSURE_SUCCESS(rv, NULL); + + nsCOMPtr<nsIDOMWindow2> domWindow(do_QueryInterface(contentWindow)); + NS_ENSURE_TRUE (domWindow, NULL); + + nsCOMPtr<nsIDOMEventTarget> eventTarget; + domWindow->GetWindowRoot(getter_AddRefs(eventTarget)); + NS_ENSURE_TRUE (eventTarget, NULL); + + return PyObject_FromNSInterface(eventTarget, + NS_GET_IID(nsIDOMEventTarget)); +} diff --git a/src/hulahop-browser.h b/src/hulahop-browser.h index a9e00c4..0f15821 100644 --- a/src/hulahop-browser.h +++ b/src/hulahop-browser.h @@ -35,11 +35,12 @@ typedef struct _HulahopBrowserClass HulahopBrowserClass; #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); +gboolean hulahop_startup (void); +void hulahop_shutdown (void); -GType hulahop_browser_get_type (void); -PyObject *hulahop_browser_get_browser (HulahopBrowser *browser); +GType hulahop_browser_get_type (void); +PyObject *hulahop_browser_get_browser (HulahopBrowser *browser); +PyObject *hulahop_browser_get_window_root (HulahopBrowser *browser); G_END_DECLS diff --git a/src/hulahop.defs b/src/hulahop.defs index cee5e28..2278a9c 100644 --- a/src/hulahop.defs +++ b/src/hulahop.defs @@ -11,6 +11,12 @@ (return-type "none") ) +(define-method get_window_root + (of-object "HulahopBrowser") + (c-name "hulahop_browser_get_window_root") + (return-type "none") +) + (define-function startup (c-name "hulahop_startup") (return-type "gboolean") diff --git a/src/hulahop.override b/src/hulahop.override index bdc0729..38ea00d 100644 --- a/src/hulahop.override +++ b/src/hulahop.override @@ -22,3 +22,10 @@ _wrap_hulahop_browser_get_browser(PyGObject *self) return hulahop_browser_get_browser(HULAHOP_BROWSER(self->obj)); } %% +override hulahop_browser_get_window_root noargs +static PyObject * +_wrap_hulahop_browser_get_window_root(PyGObject *self) +{ + return hulahop_browser_get_window_root(HULAHOP_BROWSER(self->obj)); +} +%% |