From 05839afa5f20f03ab9cf17ddd6d56967b68276db Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 02 Apr 2009 21:57:13 +0000 Subject: added copy/paste of stacks --- (limited to 'TurtleArtActivity.py') diff --git a/TurtleArtActivity.py b/TurtleArtActivity.py index 6a6e200..e16d2fe 100644 --- a/TurtleArtActivity.py +++ b/TurtleArtActivity.py @@ -81,6 +81,8 @@ class TurtleArtActivity(activity.Activity): # Add additional panels self.projectToolbar = ProjectToolbar(self) self.toolbox.add_toolbar( _('Project'), self.projectToolbar ) + self.editToolbar = EditToolbar(self) + self.toolbox.add_toolbar(_('Edit'), self.editToolbar) self.saveasToolbar = SaveAsToolbar(self) self.toolbox.add_toolbar( _('Save as'), self.saveasToolbar ) self.toolbox.show() @@ -439,6 +441,45 @@ class ChatTube(ExportedGObject): self.stack = text """ +Edit toolbar: copy and paste text and stacks +""" +class EditToolbar(gtk.Toolbar): + def __init__(self, pc): + gtk.Toolbar.__init__(self) + self.activity = pc + + # Copy button + self.copy = ToolButton( "edit-copy" ) + self.copy.set_tooltip(_('copy')) + self.copy.props.sensitive = True + self.copy.connect('clicked', self._copy_cb) + self.copy.props.accelerator = 'C' + self.insert(self.copy, -1) + self.copy.show() + + # Paste button + self.paste = ToolButton( "edit-paste" ) + self.paste.set_tooltip(_('paste')) + self.paste.props.sensitive = True + self.paste.connect('clicked', self._paste_cb) + self.paste.props.accelerator = 'V' + self.insert(self.paste, -1) + self.paste.show() + + def _copy_cb(self, button): + clipBoard = gtk.Clipboard() + _logger.debug("serialize the project and copy to clipboard") + text = tawindow.serialize_stack(self.activity.tw) + clipBoard.set_text(text) + + def _paste_cb(self, button): + clipBoard = gtk.Clipboard() + _logger.debug("paste to the project") + text = clipBoard.wait_for_text() + if text is not None: + tawindow.clone_stack(self.activity.tw,text) + +""" SaveAs toolbar: save as HTML, save as LOGO, and import Python code """ class SaveAsToolbar(gtk.Toolbar): -- cgit v0.9.1