Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/browser
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2006-04-20 01:17:57 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2006-04-20 01:17:57 (GMT)
commitee94f6a74715f657807b9a21f6d926001e9b90af (patch)
tree3bed0fecaf82a9a66dcfccb3fc5cf0f2240e4901 /browser
parent4b596b91b94a0e86bf59c23b117c044bf6272008 (diff)
Integrate inside the shell
Diffstat (limited to 'browser')
-rwxr-xr-xbrowser/browser.py73
1 files changed, 47 insertions, 26 deletions
diff --git a/browser/browser.py b/browser/browser.py
index 84d11de..059a8e2 100755
--- a/browser/browser.py
+++ b/browser/browser.py
@@ -1,8 +1,13 @@
#!/usr/bin/env python
+import dbus
+import dbus.service
+import dbus.glib
+
import pygtk
pygtk.require('2.0')
import gtk
+
import geckoembed
class AddressToolbar(gtk.Toolbar):
@@ -14,8 +19,7 @@ class AddressToolbar(gtk.Toolbar):
address_item.show()
def __open_address_cb(self, address):
- browser = BrowserWindow(address)
- browser.show()
+ web_activity.openAddress(address)
class AddressItem(gtk.ToolItem):
def __init__(self, callback):
@@ -125,47 +129,35 @@ class NavigationToolbar(gtk.Toolbar):
def __open_address_cb(self, address):
self.embed.load_url(address)
-class BrowserWindow(gtk.Window):
+class BrowserPage(gtk.VBox):
def __init__(self, uri):
- gtk.Window.__init__(self)
- self.set_default_size(640, 480);
-
- vbox = gtk.VBox()
+ gtk.VBox.__init__(self)
self.embed = geckoembed.Embed()
- vbox.pack_start(self.embed)
+ self.pack_start(self.embed)
self.embed.show()
self.embed.load_url(uri)
nav_toolbar = NavigationToolbar(self.embed)
- vbox.pack_start(nav_toolbar, False)
+ self.pack_start(nav_toolbar, False)
nav_toolbar.show()
- self.add(vbox)
- vbox.show()
-
-class SearchWindow(gtk.Window):
+class SearchPage(gtk.VBox):
def __init__(self):
- gtk.Window.__init__(self)
+ gtk.VBox.__init__(self)
- self.set_default_size(640, 480);
self.connect("delete-event", self.__delete_event);
- vbox = gtk.VBox()
-
self.embed = geckoembed.Embed()
self.embed.connect("open-address", self.__open_address);
- vbox.pack_start(self.embed)
+ self.pack_start(self.embed)
self.embed.show()
address_toolbar = AddressToolbar()
- vbox.pack_start(address_toolbar, False)
+ self.pack_start(address_toolbar, False)
address_toolbar.show()
- self.add(vbox)
- vbox.show()
-
self.embed.load_url("http://www.google.com")
def __delete_event(self, widget, event, data=None):
@@ -175,10 +167,39 @@ class SearchWindow(gtk.Window):
if uri.startswith("http://www.google.com"):
return False
else:
- browser = BrowserWindow(uri)
- browser.show()
+ web_activity.openAddress(uri)
return True
-window = SearchWindow()
-window.show()
+class WebActivity:
+ def __init__(self):
+ bus = dbus.SessionBus()
+ container_object = bus.get_object("com.redhat.Sugar.Shell", \
+ "/com/redhat/Sugar/Shell/ActivityContainer")
+ self.container = dbus.Interface(container_object, \
+ "com.redhat.Sugar.Shell.ActivityContainer")
+
+ def run(self):
+ window_id = self.container.add_activity("Web")
+
+ plug = gtk.Plug(window_id)
+
+ window = SearchPage()
+ plug.add(window)
+ window.show()
+
+ plug.show()
+
+ def openAddress(self, uri):
+ window_id = self.container.add_activity("Page")
+
+ plug = gtk.Plug(window_id)
+
+ window = BrowserPage(uri)
+ plug.add(window)
+ window.show()
+
+ plug.show()
+
+web_activity = WebActivity()
+web_activity.run()
gtk.main()