Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@sugarlabs.org>2013-08-01 21:36:29 (GMT)
committer Walter Bender <walter@sugarlabs.org>2013-08-01 21:36:29 (GMT)
commit767cb62496ba61f6c64705d61528f5b33d54a46a (patch)
treed3f297c0dce274c4e8106edfa048ce27217ccd99
parentedcdd04eed3adbe0e4d0d06cbe8c835e5665da43 (diff)
add buddy icons to teacher canvas as data is shared
-rw-r--r--ShareStats.py53
-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