Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Bowman <grantbow@gmail.com>2010-06-11 11:06:54 (GMT)
committer Grant Bowman <grantbow@gmail.com>2010-06-11 11:06:54 (GMT)
commitb44a90a199dad680cbaa58bedb8f9bf61a2877f6 (patch)
tree43da8ee0f67bccdd58e4717b1ecc68e0492e8c8f
parent5e870ac998ad23895883f34109fc7979c1707231 (diff)
First Installable ToasterActivity!
-rw-r--r--MANIFEST1
-rw-r--r--ToasterActivity.py160
2 files changed, 114 insertions, 47 deletions
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 = '<Ctrl><Shift>C'
+ editbar.paste.connect('clicked', self._paste_cb)
+ editbar.paste.props.accelerator = '<Ctrl><Shift>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 = '<Ctrl><Shift>S'
+ activity_toolbar.stop.props.accelerator = '<Ctrl><Shift>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()