Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2007-05-13 20:49:27 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2007-05-13 20:49:27 (GMT)
commit9e10d15c21a6ec767e0a4d9606e2b01dad57636a (patch)
treea9e3d05105c8e892ba4f7968a6c36c3b211012f0 /sugar
parent7e0fd77b13d8e4d8a169adf3733ef70d47933eea (diff)
More work on pyxpcom integration
Diffstat (limited to 'sugar')
-rw-r--r--sugar/browser/__init__.py23
-rw-r--r--sugar/browser/_sugarbrowser.defs6
-rw-r--r--sugar/browser/browser.py1
-rw-r--r--sugar/browser/xulrunner.cpp2
4 files changed, 29 insertions, 3 deletions
diff --git a/sugar/browser/__init__.py b/sugar/browser/__init__.py
index 7de5339..d02c90c 100644
--- a/sugar/browser/__init__.py
+++ b/sugar/browser/__init__.py
@@ -5,7 +5,26 @@ XUL Runner and gtkmozembed and is produced by the PyGTK
"""
try:
- from sugar.browser._sugarbrowser import *
+ from sugar.browser._sugarbrowser import startup, shutdown
+ from sugar.browser import _sugarbrowser
except ImportError:
from sugar import ltihooks
- from sugar.browser._sugarbrowser import *
+ from sugar.browser._sugarbrowser import startup, shutdown
+ from sugar.browser import _sugarbrowser
+
+class Browser(_sugarbrowser.Browser):
+ def __init__(self):
+ _sugarbrowser.Browser.__init__(self)
+
+ def get_browser(self):
+ from xpcom import components
+ cls = components.classes["@laptop.org/browser/browserhelper;1"]
+ browser_helper = cls.getService(components.interfaces.nsIBrowserHelper)
+ print self.get_instance_id()
+ return browser_helper.getBrowser(self.get_instance_id())
+
+ def get_document(self):
+ return self.browser.contentDOMWindow.document
+
+ document = property(get_document)
+ browser = property(get_browser)
diff --git a/sugar/browser/_sugarbrowser.defs b/sugar/browser/_sugarbrowser.defs
index f323d5e..036a34c 100644
--- a/sugar/browser/_sugarbrowser.defs
+++ b/sugar/browser/_sugarbrowser.defs
@@ -128,6 +128,12 @@
)
)
+(define-method get_instance_id
+ (of-object "SugarBrowser")
+ (c-name "sugar_browser_get_instance_id")
+ (return-type "int")
+)
+
;; From sugar-key-grabber.h
(define-function sugar_key_grabber_get_type
diff --git a/sugar/browser/browser.py b/sugar/browser/browser.py
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/sugar/browser/browser.py
@@ -0,0 +1 @@
+
diff --git a/sugar/browser/xulrunner.cpp b/sugar/browser/xulrunner.cpp
index f7dc0fd..a03604d 100644
--- a/sugar/browser/xulrunner.cpp
+++ b/sugar/browser/xulrunner.cpp
@@ -39,7 +39,7 @@ xulrunner_startup(void)
fprintf(stderr, "Couldn't find a compatible GRE.\n");
return 1;
}
-
+
rv = XPCOMGlueStartup(xpcomPath);
if (NS_FAILED(rv)) {
fprintf(stderr, "Couldn't start XPCOM.");