diff options
author | Walter Bender <walter@sugarlabs.org> | 2013-08-01 21:36:29 (GMT) |
---|---|---|
committer | Walter Bender <walter@sugarlabs.org> | 2013-08-01 21:36:29 (GMT) |
commit | 767cb62496ba61f6c64705d61528f5b33d54a46a (patch) | |
tree | d3f297c0dce274c4e8106edfa048ce27217ccd99 | |
parent | edcdd04eed3adbe0e4d0d06cbe8c835e5665da43 (diff) |
add buddy icons to teacher canvas as data is shared
-rw-r--r-- | ShareStats.py | 53 | ||||
-rw-r--r-- | activity/activity-stats.svg (renamed from activity/activity-stats.py) | 0 |
2 files changed, 38 insertions, 15 deletions
diff --git a/ShareStats.py b/ShareStats.py index a39ecfc..2aebad2 100644 --- a/ShareStats.py +++ b/ShareStats.py @@ -29,7 +29,9 @@ from sugar3.activity.widgets import StopButton from sugar3.graphics.toolbarbox import ToolbarBox from sugar3.graphics.toolbarbox import ToolbarButton from sugar3.graphics.alert import NotifyAlert, Alert -from sugar3.graphics.icon import Icon +from sugar3.graphics.icon import Icon, CanvasIcon +from sugar3.graphics import style +from sugar3.graphics.xocolor import XoColor from sugar3.datastore import datastore @@ -65,32 +67,51 @@ class ShareStats(activity.Activity): super(ShareStats, self).__init__(handle) self.initiating = None # sharing (True) or joining (False) - self._old_cursor = self.get_window().get_cursor() + self._buddy_count = 0 + self._hboxes = [] self._setup_toolbars() self._setup_canvas() - self._setup_presence_service() def _setup_canvas(self): ''' Create a canvas ''' - self.fixed = Gtk.Fixed() - self.fixed.show() - self.set_canvas(self.fixed) + sw = Gtk.ScrolledWindow() + sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) + sw.show() + + self.set_canvas(sw) self.vbox = Gtk.VBox(False, 0) - self.vbox.set_size_request(Gdk.Screen.width(), Gdk.Screen.height()) - self.fixed.put(self.vbox, 0, 0) + self.vbox.set_size_request(Gdk.Screen.width(), + Gdk.Screen.height() - style.GRID_CELL_SIZE) + sw.add(self.vbox) self.vbox.show() - self._canvas = Gtk.DrawingArea() - self._canvas.set_size_request(int(Gdk.Screen.width()), - int(Gdk.Screen.height())) - self._canvas.show() - self.show_all() - self.vbox.pack_end(self._canvas, True, True, 0) - self.vbox.show() + def _create_buddy_icon(self, color): + return CanvasIcon(icon_name='computer-xo', + xo_color=XoColor(color), + pixel_size=style.STANDARD_ICON_SIZE) + + def _add_buddy(self, icon, nick): + ''' Add buddies to sharer's canavs to show whom has shared data ''' + + if self._buddy_count % 5 == 0: + self._hboxes.append(Gtk.HBox(False, 0)) + self._hboxes[-1].show() + self.vbox.pack_end(self._hboxes[-1], True, False, 0) + + self._buddy_count += 1 + + vbox = Gtk.VBox(False, 0) + label = Gtk.Label(nick) + vbox.pack_start(icon, False, False, 0) + vbox.pack_start(label, False, False, 10) + icon.show() + label.show() + vbox.show() + self._hboxes[-1].pack_end(vbox, True, False, 0) def _setup_toolbars(self): ''' Setup the toolbars. ''' @@ -169,6 +190,8 @@ class ShareStats(activity.Activity): self._notify_alert(title=_('Share Stats'), msg='%s %s' % (_('Received journal statistics from'), nick)) + icon = self._create_buddy_icon(colors) + self._add_buddy_icon(icon, nick) def _setup_presence_service(self): ''' Setup the Presence Service. ''' diff --git a/activity/activity-stats.py b/activity/activity-stats.svg index 4d06f10..4d06f10 100644 --- a/activity/activity-stats.py +++ b/activity/activity-stats.svg |