Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/PathsActivity.py
diff options
context:
space:
mode:
Diffstat (limited to 'PathsActivity.py')
-rw-r--r--PathsActivity.py89
1 files changed, 19 insertions, 70 deletions
diff --git a/PathsActivity.py b/PathsActivity.py
index 4e77714..faea56f 100644
--- a/PathsActivity.py
+++ b/PathsActivity.py
@@ -33,6 +33,9 @@ from sugar.graphics.menuitem import MenuItem
from sugar.graphics.icon import Icon
from sugar.datastore import datastore
+from toolbar_utils import button_factory, image_factory, label_factory, \
+ separator_factory
+
import telepathy
from dbus.service import signal
from dbus.gobject_service import ExportedGObject
@@ -56,60 +59,6 @@ IFACE = SERVICE
PATH = '/org/augarlabs/PathsActivity'
-def _button_factory(icon_name, tooltip, callback, toolbar, cb_arg=None,
- accelerator=None):
- """Factory for making toolbar buttons"""
- my_button = ToolButton(icon_name)
- my_button.set_tooltip(tooltip)
- my_button.props.sensitive = True
- if accelerator is not None:
- my_button.props.accelerator = accelerator
- if cb_arg is not None:
- my_button.connect('clicked', callback, cb_arg)
- else:
- my_button.connect('clicked', callback)
- if hasattr(toolbar, 'insert'): # the main toolbar
- toolbar.insert(my_button, -1)
- else: # or a secondary toolbar
- toolbar.props.page.insert(my_button, -1)
- my_button.show()
- return my_button
-
-
-def _label_factory(label, toolbar):
- """ Factory for adding a label to a toolbar """
- my_label = gtk.Label(label)
- my_label.set_line_wrap(True)
- my_label.show()
- toolitem = gtk.ToolItem()
- toolitem.add(my_label)
- toolbar.insert(toolitem, -1)
- toolitem.show()
- return my_label
-
-
-def _separator_factory(toolbar, visible=True, expand=False):
- """ Factory for adding a separator to a toolbar """
- separator = gtk.SeparatorToolItem()
- separator.props.draw = visible
- separator.set_expand(expand)
- toolbar.insert(separator, -1)
- separator.show()
-
-
-def _image_factory(image, toolbar, tooltip=None):
- """ Add an image to the toolbar """
- img = gtk.Image()
- img.set_from_pixbuf(image)
- img_tool = gtk.ToolItem()
- img_tool.add(img)
- if tooltip is not None:
- img.set_tooltip_text(tooltip)
- toolbar.insert(img_tool, -1)
- img_tool.show()
- return img
-
-
class PathsActivity(activity.Activity):
""" Path puzzle game """
@@ -170,33 +119,33 @@ class PathsActivity(activity.Activity):
toolbox.set_current_toolbar(1)
self.toolbar = games_toolbar
- self._new_game_button = _button_factory(
- 'new-game', _('Start a new game.'), self._new_game_cb,
- self.toolbar)
+ self._new_game_button = button_factory(
+ 'new-game', self.toolbar, self._new_game_cb,
+ tooltip=_('Start a new game.'))
- self.robot_button = _button_factory(
- 'robot-off', _('Play with the robot.'), self._robot_cb,
- self.toolbar)
+ self.robot_button = button_factory(
+ 'robot-off', self.toolbar, self._robot_cb,
+ tooltip= _('Play with the robot.'))
- self.player = _image_factory(
+ self.player = image_factory(
svg_str_to_pixbuf(generate_xo(scale=0.8,
colors=['#303030', '#303030'])),
self.toolbar, tooltip=self.nick)
- self.dialog_button = _button_factory('go-next',
- _('Turn complete'),
- self._dialog_cb, self.toolbar)
+ self.dialog_button = button_factory(
+ 'go-next', self.toolbar, self._dialog_cb,
+ tooltip=_('Turn complete'))
- self.status = _label_factory('', self.toolbar)
+ self.status = label_factory(self.toolbar, '')
- self.hint_button = _button_factory('help-toolbar',
- _('Help'),
- self._hint_cb, self.toolbar)
+ self.hint_button = button_factory(
+ 'help-toolbar', self.toolbar, self._hint_cb,
+ tooltip=_('Help'))
- self.score = _label_factory(_('Score: ') + '0', self.toolbar)
+ self.score = label_factory(self.toolbar, _('Score: ') + '0')
if _have_toolbox:
- _separator_factory(toolbox.toolbar, False, True)
+ separator_factory(toolbox.toolbar, True, False)
stop_button = StopButton(self)
stop_button.props.accelerator = '<Ctrl>q'