Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activities/web/webactivity.py
blob: 518d8bb747d827c086d9ec32e455260c922f4c61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from gettext import gettext as _
import gtk
import gtkmozembed

from sugar.activity.Activity import Activity
from sugar import env
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)

		links_model = LinksModel()
		links_view = LinksView(links_model)

		self._toolbar = Toolbar(self._browser)
		vbox.pack_start(self._toolbar, False)
		self._toolbar.show()

		hbox = gtk.HBox()

		hbox.pack_start(links_view, False)
		links_view.show()
		
		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 join(self, activity_ps):
		Activity.join(self, activity_ps)

		links_controller = LinksController(service, links_model)
		self._toolbar.set_links_controller(links_controller)

		url = self._service.get_published_value('URL')
		if url:
			self._browser.load_url(url)

	def share(self):
		Activity.share(self)

		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')