sugar-toolkit-gtk3/activities/web/webactivity.py

77 lines
1.7 KiB
Python

from gettext import gettext as _
import gtk
import gtkmozembed
from sugar.activity.Activity import Activity
from sugar import env
from sugar.graphics import style
import web.stylesheet
from webbrowser import WebBrowser
from toolbar import Toolbar
from linksmodel import LinksModel
from linksview import LinksView
from linkscontroller import LinksController
_HOMEPAGE = 'http://www.google.com'
class WebActivity(Activity):
def __init__(self):
Activity.__init__(self)
self.set_title(_('Web Activity'))
vbox = gtk.VBox()
self._browser = WebBrowser()
self._browser.connect('notify::title', self._title_changed_cb)
self._links_model = LinksModel()
links_view = LinksView(self._links_model, self._browser)
self._toolbar = Toolbar(self._browser)
vbox.pack_start(self._toolbar, False)
self._toolbar.show()
hbox = gtk.HBox()
hbox.pack_start(links_view, False)
hbox.pack_start(self._browser)
self._browser.show()
vbox.pack_start(hbox)
hbox.show()
self.add(vbox)
vbox.show()
self._browser.load_url(_HOMEPAGE)
def _setup_links_controller(self):
links_controller = LinksController(self._service, self._links_model)
self._toolbar.set_links_controller(links_controller)
def join(self, activity_ps):
Activity.join(self, activity_ps)
self._setup_links_controller()
url = self._service.get_published_value('URL')
if url:
self._browser.load_url(url)
def share(self):
Activity.share(self)
self._setup_links_controller()
url = self._browser.get_location()
if url:
self._service.set_published_value('URL', url)
def _title_changed_cb(self, embed, pspec):
self.set_title(embed.props.title)
def start():
gtkmozembed.set_profile_path(env.get_profile_path(), 'gecko')
style.load_stylesheet(web.stylesheet)