Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-08-17 10:09:45 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-08-17 10:09:45 (GMT)
commitfb829989c7c04d1d5063df3a2c64d28f1f541704 (patch)
tree7f500ce5e64bb977ed15ff4b519eaa2a0e20f4e2
parente5ed8275a1f375da460b3a757994f39ba80c4f08 (diff)
Get tasks adding to work
-rw-r--r--shell/HomeWindow.py31
-rw-r--r--sugar/canvas/DonutItem.py8
2 files changed, 33 insertions, 6 deletions
diff --git a/shell/HomeWindow.py b/shell/HomeWindow.py
index 9534a81..f19f4e0 100644
--- a/shell/HomeWindow.py
+++ b/shell/HomeWindow.py
@@ -1,5 +1,6 @@
import gtk
import goocanvas
+import wnck
from sugar.canvas.IconItem import IconItem
from sugar.canvas.DonutItem import DonutItem
@@ -7,10 +8,32 @@ from sugar.canvas.DonutItem import DonutItem
class TasksItem(DonutItem):
def __init__(self):
DonutItem.__init__(self, 200)
- self.add_piece(30)
- self.add_piece(30)
- self.add_piece(30)
- self.add_piece(10)
+
+ self._items = {}
+
+ screen = wnck.screen_get_default()
+ for window in screen.get_windows():
+ if not window.is_skip_tasklist():
+ self._add(window)
+ screen.connect('window_opened', self.__window_opened_cb)
+ screen.connect('window_closed', self.__window_closed_cb)
+
+ def __window_opened_cb(self, screen, window):
+ if not window.is_skip_tasklist():
+ self._add(window)
+
+ def __window_closed_cb(self, screen, window):
+ if not window.is_skip_tasklist():
+ self._remove(window)
+
+ def _remove(self, window):
+ item = self._items[window.get_xid()]
+ self.remove_child(item)
+ del self._items[window.get_xid()]
+
+ def _add(self, window):
+ item = self.add_piece(100 / 8)
+ self._items[window.get_xid()] = item
class ActivityItem(IconItem):
def __init__(self, activity):
diff --git a/sugar/canvas/DonutItem.py b/sugar/canvas/DonutItem.py
index 19c56f8..df64e85 100644
--- a/sugar/canvas/DonutItem.py
+++ b/sugar/canvas/DonutItem.py
@@ -25,8 +25,6 @@ class PieceItem(goocanvas.Path):
data += 'z'
- print data
-
self.set_property('data', data)
class DonutItem(goocanvas.Group):
@@ -45,5 +43,11 @@ class DonutItem(goocanvas.Group):
self.add_child(piece_item)
piece_item.construct()
+ return piece_item
+
+ def remove_piece(self, piece_item):
+ index = self.find(piece_item)
+ self.remove_child(index)
+
def get_radius(self):
return self._radius