From b44a90a199dad680cbaa58bedb8f9bf61a2877f6 Mon Sep 17 00:00:00 2001 From: Grant Bowman Date: Fri, 11 Jun 2010 11:06:54 +0000 Subject: First Installable ToasterActivity! --- diff --git a/MANIFEST b/MANIFEST index 0d2d04c..94e81a9 100644 --- a/MANIFEST +++ b/MANIFEST @@ -6,6 +6,7 @@ locale/en/activity.linfo locale/en/LC_MESSAGES/org.sugarlabs.wiki.Toaster.mo po/en.po po/Toaster.pot +icons/configure.svg icons/toaster.svg bin/wodim.9 bin/wodim.11 diff --git a/ToasterActivity.py b/ToasterActivity.py index 24f886d..3f34724 100644 --- a/ToasterActivity.py +++ b/ToasterActivity.py @@ -22,8 +22,6 @@ import pygtk pygtk.require('2.0') import gtk -import gobject -import cairo import os.path import sugar @@ -47,7 +45,6 @@ from sugar.datastore import datastore GRID_CELL_SIZE = 0 import logging -_logger = logging.getLogger("toaster-activity") from gettext import gettext as _ @@ -61,36 +58,34 @@ class ToasterActivity(activity.Activity): def __init__(self, handle): """Setup the Toaster Activity.""" - super(ToasterActivity,self).__init__(handle) + activity.Activity.__init__(self, handle) + self.set_title(_('Toaster Activity')) + self._logger = logging.getLogger("toaster-activity") + self.chosenImage = 'hard_coded' + self.chosenTarget = 'hard_coded' - _font = 'helvetica 12' - _font_bold = 'helvetica bold 12' + # initial button to move to the next screen + # self.button = gtk.Button(_('Choose Target')) + # self.button.connect('clicked', self.chooseTarget, None)) - # - # We need a canvas - # - label = gtk.Label(_("Share Software")) - self.set_canvas(label) - label.show() - - _width = gtk.gdk.screen_width() - _height = gtk.gdk.screen_height()-GRID_CELL_SIZE + #_width = gtk.gdk.screen_width() + #_height = gtk.gdk.screen_height()-GRID_CELL_SIZE # add button detection - self.connect('key-press-event', self._keyPressCb) + self.connect('key-press-event', self._keyPressEventCb) # Read the dpi from the Journal - try: - dpi = self.metadata['dpi'] - _logger.debug("Read dpi: " + str(dpi)) - self._canvas.set_dpi(int(dpi)) - except: - if os.path.exists('/sys/power/olpc-pm'): - self._canvas.set_dpi(200) # OLPC XO + #try: + # dpi = self.metadata['dpi'] + # _logger.debug("Read dpi: " + str(dpi)) + # self._canvas.set_dpi(int(dpi)) + #except: + # if os.path.exists('/sys/power/olpc-pm'): + #self.set_canvas.set_dpi(200) # OLPC XO, error when setting - TODO fix # won't work for XO-1.5 - maybe see if /etc/olpc-release exists # decent _get_hardware() function in Measure.activity/measure.py - else: - self._canvas.set_dpi(100) # Just a guess + # else: + # self._canvas.set_dpi(100) # Just a guess # no collaboration features yet self.max_participants = 1 @@ -134,60 +129,131 @@ class ToasterActivity(activity.Activity): # #except NameError: # Use pre-0.86 toolbar design + # add the toolbox to the activity frame toolbox = activity.ActivityToolbox(self) - self.set_toolbox(toolbox) - self.projectToolbar = ProjectToolbar(self) - toolbox.add_toolbar( _('Toaster'), self.projectToolbar ) + editbar = activity.EditToolbar() + editbar.undo.props.visible = False + editbar.redo.props.visible = False + editbar.separator.props.visible = False + editbar.copy.connect('clicked', self._copy_cb) + editbar.copy.props.accelerator = 'C' + editbar.paste.connect('clicked', self._paste_cb) + editbar.paste.props.accelerator = 'V' + toolbox.add_toolbar(_('Edit'), editbar) + editbar.show() + + choosebtn = sugar.graphics.toolbutton.ToolButton('choose') + choosebtn.set_tooltip(_('Image/Target')) + #choosebtn.connect('clicked', self._chooseImage()) + + tabsep = gtk.SeparatorToolItem() + tabsep.set_expand(True) + tabsep.set_draw(False) + + createcopybtn = sugar.graphics.toolbutton.ToolButton('toaster') + createcopybtn.set_tooltip(_('Create Copy')) + #createcopybtn.connect('clicked', self._createCopy()) + + createbar = gtk.Toolbar() + createbar.insert(tabsep, -1) + createbar.insert(createcopybtn, -1) + createbar.show_all() + toolbox.add_toolbar(_('Create'), createbar) + activity_toolbar = toolbox.get_activity_toolbar() + activity_toolbar.share.props.visible = False + activity_toolbar.keep.props.visible = False + activity_toolbar.keep.props.accelerator = 'S' + activity_toolbar.stop.props.accelerator = 'Q' + activity_toolbar.share.hide() + activity_toolbar.keep.hide() + + self.set_toolbox(toolbox) + + # and make it visible toolbox.show() toolbox.set_current_toolbar(1) # end of future pre-0.86 except block + self.notebook = gtk.Notebook() + self.notebook.set_property("tab-pos", gtk.POS_BOTTOM) + self.notebook.set_scrollable(True) + self.notebook.show() self.show_all() - # Method _keyPressCb, which catches any presses of the game buttons. - def _keyPressCb(self, widget, event) + # + # We need a canvas + # + label = gtk.Label(_("Choose Image")) + self.set_canvas(label) + label.show() + + + # Method _keyPressEventCb, which catches any presses of the game buttons. + def _keyPressEventCb(self, widget, event): keyname = gtk.gdk.keyval_name(event.keyval) if (keyname == 'KP_Page_Up'): - self._chat += "\nCircle Pressed!" # needs function + self._chat += "\nCircle Pressed!" # ? needs "Back" function self._chat_buffer.set_text(self._chat) elif (keyname == 'KP_Page_Down'): - self._chat += "\nX Pressed!" # needs function + self._chat += "\nX Pressed!" # ? needs "Forward" function self._chat_buffer.set_text(self._chat) elif (keyname == 'KP_Home'): - self._chat += "\nSquare Pressed!" # needs function + self._chat += "\nSquare Pressed!" # needs "Back" function self._chat_buffer.set_text(self._chat) elif (keyname == 'KP_End'): - self._chat += "\nCheck Pressed!" # needs function + self._chat += "\nCheck Pressed!" # needs "Forward" function self._chat_buffer.set_text(self._chat) elif (keyname == 'KP_Up'): - self._chat += "\nUp Pressed!" # needs function + self._chat += "\nUp Pressed!" # ? needs "Back" function self._chat_buffer.set_text(self._chat) elif (keyname == 'KP_Down'): - self._chat += "\nDown Pressed!" # needs function + self._chat += "\nDown Pressed!" # ? needs "Forward" function self._chat_buffer.set_text(self._chat) elif (keyname == 'KP_Left'): - self._chat += "\nLeft Pressed!" # needs function + self._chat += "\nLeft Pressed!" # needs "Back" function self._chat_buffer.set_text(self._chat) elif (keyname == 'KP_Right'): - self._chat += "\nRight Pressed!" # needs function + self._chat += "\nRight Pressed!" # needs "Forward" function self._chat_buffer.set_text(self._chat) return False # def read_file(self, filename): -# "Read the journal item" +# "Read journal data" unpickle histories # def write_file(self, filename): -# "Save meta data for the journal item" +# "Save journal data" unpickle histories +# def can_close(self): +# "Make sure no burn is in progress before closing Activity" +# def handle_view_source(self): +# "not many Activities implement this" +# def _chooseImage(self): +# "" + # forward + # self.button = gtk.Button(_('Choose Target')) + # self.button.connect('clicked', self.chooseTarget, None)) +# def _chooseTarget(self): +# "" + # back + # self.button = gtk.Button(_('Choose Image')) + # self.button.connect('clicked', self.chooseImage, None)) + # forward + # self.button = gtk.Button(_('Begin Creation')) + # self.button.connect('clicked', self.chooseCreation, None)) +# def _createCopy(self): +# "" + # back + # self.button = gtk.Button(_('Choose Target')) + # self.button.connect('clicked', self.chooseTarget, None)) -# -# Project toolbar for pre-0.86 toolbars -# -class ProjectToolbar(gtk.Toolbar): + def _copy_cb(self, buttom): + vt = self.notebook.get_nth_page(self.notebook.get_current_page()).vt + if vt.get_has_selection(): + vt.copy_clipboard() - def __init__(self, pc): - gtk.Toolbar.__init__(self) - self.activity = pc + def _paste_cb(self, buttom): + vt = self.notebook.get_nth_page(self.notebook.get_current_page()).vt + vt.paste_clipboard() -- cgit v0.9.1