Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/view/home/FriendsGroup.py
diff options
context:
space:
mode:
Diffstat (limited to 'shell/view/home/FriendsGroup.py')
-rw-r--r--shell/view/home/FriendsGroup.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/shell/view/home/FriendsGroup.py b/shell/view/home/FriendsGroup.py
new file mode 100644
index 0000000..1e2fb8f
--- /dev/null
+++ b/shell/view/home/FriendsGroup.py
@@ -0,0 +1,33 @@
+import random
+
+import goocanvas
+
+from view.home.IconLayout import IconLayout
+from view.home.MyIcon import MyIcon
+from view.FriendIcon import FriendIcon
+
+class FriendsGroup(goocanvas.Group):
+ def __init__(self, shell_model):
+ goocanvas.Group.__init__(self)
+
+ self._shell_model = shell_model
+ self._icon_layout = IconLayout(1200, 900)
+ self._friends = shell_model.get_friends()
+
+ me = MyIcon(100)
+ me.translate(600 - (me.get_property('size') / 2),
+ 450 - (me.get_property('size') / 2))
+ self.add_child(me)
+
+ for friend in self._friends:
+ self.add_friend(friend)
+
+ self._friends.connect('friend-added', self._friend_added_cb)
+
+ def add_friend(self, friend):
+ icon = FriendIcon(self._shell_model, friend)
+ self.add_child(icon)
+ self._icon_layout.add_icon(icon)
+
+ def _friend_added_cb(self, data_model, friend):
+ self.add_friend(friend)