Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/panel/TopPanel.py
blob: 2881c419662ff859a8369d2b18d4ff042862c2c6 (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
import goocanvas

from panel.Panel import Panel
from sugar.canvas.IconItem import IconItem
import sugar

class ZoomBar(goocanvas.Group):
	def __init__(self, shell, height):
		goocanvas.Group.__init__(self)
		self._height = height
		self._shell = shell

		self.add_zoom_level(sugar.ZOOM_ACTIVITY, 'stock-zoom-activity')
		self.add_zoom_level(sugar.ZOOM_HOME, 'stock-zoom-home')
		self.add_zoom_level(sugar.ZOOM_FRIENDS, 'stock-zoom-friends')
		self.add_zoom_level(sugar.ZOOM_MESH, 'stock-zoom-mesh')

	def add_zoom_level(self, level, icon_name):
		icon = IconItem(icon_name=icon_name, size=self._height)
		icon.connect('clicked', self.__level_clicked_cb, level)

		icon_size = self._height
		x = (icon_size + 6) * self.get_n_children()
		icon.set_property('x', x)

		self.add_child(icon)

	def __level_clicked_cb(self, item, level):
		self._shell.set_zoom_level(level)

class TopPanel(Panel):
	def __init__(self, shell):
		Panel.__init__(self)
		self._shell = shell

	def construct(self):
		Panel.construct(self)

		zoom_bar = ZoomBar(self._shell, self.get_height())
		zoom_bar.translate(self.get_border(), self.get_border())
		self.get_root().add_child(zoom_bar)