diff options
author | Marco 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) |
commit | fb829989c7c04d1d5063df3a2c64d28f1f541704 (patch) | |
tree | 7f500ce5e64bb977ed15ff4b519eaa2a0e20f4e2 /shell | |
parent | e5ed8275a1f375da460b3a757994f39ba80c4f08 (diff) |
Get tasks adding to work
Diffstat (limited to 'shell')
-rw-r--r-- | shell/HomeWindow.py | 31 |
1 files changed, 27 insertions, 4 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): |