Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarco 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)
commit77a7b5771b76fd59a4ef3a857c0d2eb7860c3121 (patch)
tree2c84ab9c9018e6d997995e17c2b5497110b2e972 /src
parent59471d920fef2bc1289fa2621f285698f4f71997 (diff)
Allow to listen to root window events.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am1
-rw-r--r--src/browser.py8
-rw-r--r--src/hulahop-browser.cpp24
-rw-r--r--src/hulahop-browser.h9
-rw-r--r--src/hulahop.defs6
-rw-r--r--src/hulahop.override7
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));
+}
+%%