| 
									
										
										
										
											2006-07-08 11:56:13 +02:00
										 |  |  | import gtk | 
					
						
							| 
									
										
										
										
											2006-08-15 12:20:09 +02:00
										 |  |  | import goocanvas | 
					
						
							| 
									
										
										
										
											2006-08-17 12:09:45 +02:00
										 |  |  | import wnck | 
					
						
							| 
									
										
										
										
											2006-07-14 15:47:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-09-04 21:34:54 +02:00
										 |  |  | import conf | 
					
						
							| 
									
										
										
										
											2006-08-16 19:55:13 +02:00
										 |  |  | from sugar.canvas.IconItem import IconItem | 
					
						
							| 
									
										
										
										
											2006-08-23 21:03:17 +02:00
										 |  |  | from sugar.canvas.IconColor import IconColor | 
					
						
							| 
									
										
										
										
											2006-08-26 11:47:02 +02:00
										 |  |  | from home.DonutItem import DonutItem | 
					
						
							| 
									
										
										
										
											2006-08-23 13:09:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-17 11:47:41 +02:00
										 |  |  | class TasksItem(DonutItem): | 
					
						
							| 
									
										
										
										
											2006-08-17 14:23:52 +02:00
										 |  |  | 	def __init__(self, shell): | 
					
						
							| 
									
										
										
										
											2006-08-17 13:16:48 +02:00
										 |  |  | 		DonutItem.__init__(self, 250) | 
					
						
							| 
									
										
										
										
											2006-08-17 12:09:45 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		self._items = {} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-29 16:29:56 +02:00
										 |  |  | 		self._shell = shell | 
					
						
							|  |  |  | 		self._shell.connect('activity_opened', self.__activity_opened_cb) | 
					
						
							|  |  |  | 		self._shell.connect('activity_closed', self.__activity_closed_cb) | 
					
						
							| 
									
										
										
										
											2006-08-17 12:09:45 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-17 14:23:52 +02:00
										 |  |  | 	def __activity_opened_cb(self, shell, activity): | 
					
						
							|  |  |  | 		self._add(activity) | 
					
						
							| 
									
										
										
										
											2006-08-17 12:09:45 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-17 14:23:52 +02:00
										 |  |  | 	def __activity_closed_cb(self, shell, activity): | 
					
						
							|  |  |  | 		self._remove(activity) | 
					
						
							| 
									
										
										
										
											2006-08-17 12:09:45 +02:00
										 |  |  | 	 | 
					
						
							| 
									
										
										
										
											2006-08-17 14:23:52 +02:00
										 |  |  | 	def _remove(self, activity): | 
					
						
							|  |  |  | 		item = self._items[activity.get_id()] | 
					
						
							| 
									
										
										
										
											2006-08-17 14:42:29 +02:00
										 |  |  | 		self.remove_piece(item) | 
					
						
							| 
									
										
										
										
											2006-08-17 14:23:52 +02:00
										 |  |  | 		del self._items[activity.get_id()] | 
					
						
							| 
									
										
										
										
											2006-08-17 12:09:45 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-17 14:23:52 +02:00
										 |  |  | 	def _add(self, activity): | 
					
						
							|  |  |  | 		icon_name = activity.get_icon_name() | 
					
						
							| 
									
										
										
										
											2006-08-26 14:17:55 +02:00
										 |  |  | 		icon_color = activity.get_icon_color() | 
					
						
							| 
									
										
										
										
											2006-08-17 14:42:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-29 16:29:56 +02:00
										 |  |  | 		item = self.add_piece(100 / 8, icon_name, icon_color) | 
					
						
							|  |  |  | 		item.get_icon().connect('clicked', | 
					
						
							|  |  |  | 								self.__activity_icon_clicked_cb, | 
					
						
							|  |  |  | 								activity) | 
					
						
							| 
									
										
										
										
											2006-08-17 14:42:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-17 14:23:52 +02:00
										 |  |  | 		self._items[activity.get_id()] = item | 
					
						
							| 
									
										
										
										
											2006-08-16 19:55:13 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-29 16:29:56 +02:00
										 |  |  | 	def __activity_icon_clicked_cb(self, item, activity): | 
					
						
							|  |  |  | 		activity.present() | 
					
						
							| 
									
										
										
										
											2006-08-29 14:39:34 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | class HomeGroup(goocanvas.Group): | 
					
						
							|  |  |  | 	def __init__(self, shell): | 
					
						
							|  |  |  | 		goocanvas.Group.__init__(self) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-17 14:23:52 +02:00
										 |  |  | 		tasks = TasksItem(shell) | 
					
						
							| 
									
										
										
										
											2006-08-17 11:47:41 +02:00
										 |  |  | 		tasks.translate(600, 450) | 
					
						
							| 
									
										
										
										
											2006-08-29 11:48:20 +02:00
										 |  |  | 		self.add_child(tasks) | 
					
						
							| 
									
										
										
										
											2006-08-17 11:47:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-09-04 21:34:54 +02:00
										 |  |  | 		profile = conf.get_profile() | 
					
						
							| 
									
										
										
										
											2006-08-28 12:44:46 +02:00
										 |  |  | 		me = IconItem(icon_name = 'stock-buddy', | 
					
						
							|  |  |  | 					  color = profile.get_color(), size = 150) | 
					
						
							| 
									
										
										
										
											2006-08-31 22:29:31 +02:00
										 |  |  | 		me.translate(600 - (me.get_property('size') / 2), | 
					
						
							|  |  |  | 					 450 - (me.get_property('size') / 2)) | 
					
						
							| 
									
										
										
										
											2006-08-29 11:48:20 +02:00
										 |  |  | 		self.add_child(me) |