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

from view.home.DonutItem import DonutItem
from view.home.MyIcon import MyIcon

class TasksItem(DonutItem):
	def __init__(self, shell_model):
		DonutItem.__init__(self, 250)

		self._items = {}

		self._shell_model = shell_model
		self._shell_model.connect('activity_opened', self.__activity_opened_cb)
		self._shell_model.connect('activity_closed', self.__activity_closed_cb)

	def __activity_opened_cb(self, model, activity):
		self._add(activity)

	def __activity_closed_cb(self, model, activity):
		self._remove(activity)
	
	def _remove(self, activity):
		item = self._items[activity.get_id()]
		self.remove_piece(item)
		del self._items[activity.get_id()]

	def _add(self, activity):
		icon_name = activity.get_icon_name()
		icon_color = activity.get_icon_color()

		item = self.add_piece(100 / 8, icon_name, icon_color)
		item.get_icon().connect('clicked',
								self.__activity_icon_clicked_cb,
								activity)

		self._items[activity.get_id()] = item

	def __activity_icon_clicked_cb(self, item, activity):
		activity.present()

class HomeGroup(goocanvas.Group):
	def __init__(self, shell_model):
		goocanvas.Group.__init__(self)

		tasks = TasksItem(shell_model)
		tasks.translate(600, 450)
		self.add_child(tasks)

		me = MyIcon(150)
		me.translate(600 - (me.get_property('size') / 2),
					 450 - (me.get_property('size') / 2))
		self.add_child(me)