# sugar_and_spock.py - proof verification activity based upon ghilbert # -*- coding: UTF-8 -*- # # ... and everything knock ;-) from sugar.activity import activity from sugar.graphics.toolbutton import ToolButton import spock import gtk import ghilbert import sys, os, array from gettext import gettext as _ class EditToolbar(gtk.Toolbar): def __init__(self, shpock): gtk.Toolbar.__init__(self) self.shpock = shpock # system-search self.find = ToolButton('system-search') self.find.set_tooltip(_('Find')) self.insert(self.find, -1) self.find.props.accelerator = _('F') self.find.connect('clicked', self._find_cb) self.find.show() # go-next self.find_next = ToolButton('go-next') self.find_next.set_tooltip(_('Find next occurrence')) self.insert(self.find_next, -1) self.find_next.props.accelerator = _('N') self.find_next.connect('clicked', self._find_next_cb) self.find_next.show() # go-previous self.find_prev = ToolButton('go-previous') self.find_prev.set_tooltip(_('Find previous occurrence')) self.insert(self.find_prev, -1) self.find_prev.props.accelerator = _('P') self.find_prev.connect('clicked', self._find_prev_cb) self.find_prev.show() def _find_next_cb(self, widget): spock = self.shpock.spockObj spock.search_op(True) def _find_prev_cb(self, widget): spock = self.shpock.spockObj spock.search_op(False) def _find_cb(self, widget): spock = self.shpock.spockObj spock.find() class Shpock(activity.Activity): def __init__(self, handle): activity.Activity.__init__(self, handle) # handle is a sugar.activity.activityhandle.ActivityHandle object self._name = handle # TRANS: The default title for the activity instance. self.set_title(_('Spock!')) # Creates the Toolbox. It contains the Activity Toolbar, which is the # bar that appears on every Sugar window and contains essential # functionalities, such as the 'Collaborate' and 'Close' buttons. toolbox = activity.ActivityToolbox(self) self._edit_toolbar = EditToolbar(self) toolbox.add_toolbar(_('Edit'), self._edit_toolbar) self._edit_toolbar.show() self.set_toolbox(toolbox) toolbox.show() self.vbox = gtk.VBox() self.spockObj = spock.Spock(self.vbox) self.set_canvas(self.vbox) self.show_all() def write_file(self, file_path): """Write Spock journal entries""" spock.logger.info(_('Writing to journal (%s)'), file_path) # delegate write_file to spock... self.spockObj.write_file(file_path) def read_file(self, file_path): """Read a journal record.""" spock.logger.info(_('Reading from journal (%s)'), file_path) # delegate read_file to spock... spockObj = self.spockObj spockObj.read_file(file_path)