From: Gonzalo Odiard godi...@sugarlabs.org
---
groupthink/sugar_tools.py | 23 +---
pippy_app.py | 87 +++--
2 files changed, 94 insertions(+), 16 deletions(-)
diff --git a/groupthink/sugar_tools.py b/groupthink/sugar_tools.py
index 0292a0b..66d4a0e 100644
--- a/groupthink/sugar_tools.py
+++ b/groupthink/sugar_tools.py
@@ -28,6 +28,13 @@ import gobject
import groupthink_base as groupthink
+OLD_TOOLBAR = False
+try:
+from sugar.graphics.toolbarbox import ToolbarBox, ToolbarButton
+from sugar.activity.widgets import ActivityToolbarButton
+except ImportError:
+OLD_TOOLBAR = True
+
def exhaust_event_loop():
while gtk.events_pending():
gtk.main_iteration()
@@ -69,11 +76,17 @@ class GroupActivity(Activity):
else:
self.message = self.message_preparing
-# top toolbar with share and close buttons:
-toolbox = ActivityToolbox(self)
-self.set_toolbox(toolbox)
-toolbox.show()
-
+if OLD_TOOLBAR:
+self.toolbox = ActivityToolbox(self)
+self.set_toolbox(self.toolbox)
+self.toolbox.show()
+self.set_toolbox(self.toolbox)
+else:
+toolbar_box = ToolbarBox()
+self.activity_button = ActivityToolbarButton(self)
+toolbar_box.toolbar.insert(self.activity_button, 0)
+self.set_toolbar_box(toolbar_box)
+
v = gtk.VBox()
self.startup_label = gtk.Label(self.message)
v.pack_start(self.startup_label)
diff --git a/pippy_app.py b/pippy_app.py
index fc8..636c52d 100644
--- a/pippy_app.py
+++ b/pippy_app.py
@@ -30,9 +30,10 @@ from port.style import font_zoom
from signal import SIGTERM
from gettext import gettext as _
+from sugar.activity import activity
from activity import ViewSourceActivity, TARGET_TYPE_TEXT
from sugar.activity.activity import ActivityToolbox, \
- get_bundle_path, get_bundle_name
+ EditToolbar, get_bundle_path, get_bundle_name
from sugar.graphics import style
from sugar.graphics.toolbutton import ToolButton
@@ -45,6 +46,13 @@ PYTHON_PREFIX=#!/usr/bin/python
# -*- coding: utf-8 -*-
+OLD_TOOLBAR = False
+try:
+from sugar.graphics.toolbarbox import ToolbarBox, ToolbarButton
+from sugar.activity.widgets import StopButton
+except ImportError:
+OLD_TOOLBAR = True
+
# get screen sizes
SIZE_X = gtk.gdk.screen_width()
SIZE_Y = gtk.gdk.screen_height()
@@ -62,10 +70,14 @@ class PippyActivity(ViewSourceActivity,
groupthink.sugar_tools.GroupActivity):
self._logger = logging.getLogger('pippy-activity')
# Top toolbar with share and close buttons:
-toolbox = ActivityToolbox(self)
-activity_toolbar = toolbox.get_activity_toolbar()
+
+if OLD_TOOLBAR:
+activity_toolbar = self.toolbox.get_activity_toolbar()
+else:
+activity_toolbar = self.activity_button.page
+
# add 'make bundle' entry to 'keep' palette.
-palette = toolbox.get_activity_toolbar().keep.get_palette()
+palette = activity_toolbar.keep.get_palette()
# XXX: should clear out old palette entries?
from sugar.graphics.menuitem import MenuItem
from sugar.graphics.icon import Icon
@@ -80,6 +92,32 @@ class PippyActivity(ViewSourceActivity,
groupthink.sugar_tools.GroupActivity):
palette.menu.append(menu_item)
menu_item.show()
+self._edit_toolbar = activity.EditToolbar()
+
+if OLD_TOOLBAR:
+activity_toolbar = gtk.Toolbar()
+self.toolbox.add_toolbar('Pippy', activity_toolbar)
+self.toolbox.set_current_toolbar(1)
+self.toolbox.add_toolbar(_('Edit'), self._edit_toolbar)
+else:
+edit_toolbar_button = ToolbarButton()
+edit_toolbar_button.set_page(self._edit_toolbar)
+edit_toolbar_button.props.icon_name = 'toolbar-edit'
+edit_toolbar_button.props.label = _('Edit')
+self.get_toolbar_box().toolbar.insert(edit_toolbar_button, -1)
+
+self._edit_toolbar.show()
+
+self._edit_toolbar.undo.connect('clicked', self.__undobutton_cb)
+self._edit_toolbar.redo.connect('clicked', self.__redobutton_cb)
+self._edit_toolbar.copy.connect('clicked', self.__copybutton_cb)
+self._edit_toolbar.paste.connect('clicked', self.__pastebutton_cb)
+
+if OLD_TOOLBAR:
+pippy_toolbar = activity_toolbar
+else:
+pippy_toolbar = self.get_toolbar_box().toolbar
+
# The go button
goicon_bw = gtk.Image()
goicon_bw.set_from_file(%s/icons/run_bw.svg % os.getcwd())
@@ -92,7 +130,7 @@ class PippyActivity(ViewSourceActivity,
groupthink.sugar_tools.GroupActivity):
gobutton.connect('clicked', self.flash_cb, dict({'bw':goicon_bw,
'color':goicon_color}))
gobutton.connect('clicked',