sugar-toolkit-gtk3/shell/view/home/FriendsBox.py
2006-10-03 16:31:32 +02:00

48 lines
1.3 KiB
Python

import random
import hippo
from sugar.graphics.spreadlayout import SpreadLayout
from view.home.MyIcon import MyIcon
from view.BuddyActivityView import BuddyActivityView
class FriendsBox(hippo.CanvasBox, hippo.CanvasItem):
__gtype_name__ = 'SugarFriendsBox'
def __init__(self, shell, menu_shell):
hippo.CanvasBox.__init__(self, background_color=0xe2e2e2ff)
self._shell = shell
self._menu_shell = menu_shell
self._layout = SpreadLayout()
self._friends = {}
#me = MyIcon(112)
#me.translate(600 - (me.get_property('size') / 2),
# 450 - (me.get_property('size') / 2))
#self.add_child(me)
friends = self._shell.get_model().get_friends()
for friend in friends:
self.add_friend(friend)
friends.connect('friend-added', self._friend_added_cb)
friends.connect('friend-removed', self._friend_removed_cb)
def add_friend(self, buddy_info):
icon = BuddyActivityView(self._shell, self._menu_shell, buddy_info)
self.append(icon, hippo.PACK_FIXED)
self._friends[buddy_info.get_name()] = icon
def _friend_added_cb(self, data_model, buddy_info):
self.add_friend(buddy_info)
def _friend_removed_cb(self, data_model, name):
self.remove(self._friends[name])
del self._friends[name]
def do_allocate(self, width, height):
hippo.CanvasBox.do_allocate(self, width, height)
self._layout.layout(self)