Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/view/home/HomeWindow.py
blob: fad4476f81395021f4a3d49f4a63f19934b603eb (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
import gtk
import goocanvas
import hippo
import cairo

from sugar.canvas.CanvasView import CanvasView
from sugar.canvas.MenuShell import MenuShell
from view.home.MeshBox import MeshBox
from view.home.HomeGroup import HomeGroup
from view.home.FriendsBox import FriendsBox
import sugar

class HomeWindow(gtk.Window):
	def __init__(self, shell):
		gtk.Window.__init__(self)
		self._shell = shell

		self.realize()
		self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP)

		self._nb = gtk.Notebook()
		self._nb.set_show_border(False)
		self._nb.set_show_tabs(False)

		self.add(self._nb)
		self._nb.show()

		menu_shell = MenuShell()

		self._add_page(HomeGroup(shell))

		canvas = hippo.Canvas()
		box = FriendsBox(shell, menu_shell)
		canvas.set_root(box)
		self._nb.append_page(canvas)
		canvas.show()

		canvas = hippo.Canvas()
		box = MeshBox(shell, menu_shell)
		canvas.set_root(box)
		self._nb.append_page(canvas)
		canvas.show()

	def _add_page(self, group):
		view = CanvasView()
		self._nb.append_page(view)
		view.show()

		model = goocanvas.CanvasModelSimple()
		root = model.get_root_item()
		view.set_model(model)

		bg = goocanvas.Rect(width=1900, height=1200,
							line_width=0, fill_color='#e2e2e2')
		root.add_child(bg)
		root.add_child(group)

	def set_zoom_level(self, level):
		if level == sugar.ZOOM_HOME:
			self._nb.set_current_page(0)
		elif level == sugar.ZOOM_FRIENDS:
			self._nb.set_current_page(1)
		elif level == sugar.ZOOM_MESH:
			self._nb.set_current_page(2)