From d82a38e6e595db7da3abc460d090a78b68355a2a Mon Sep 17 00:00:00 2001 From: Marc Maurer Date: Tue, 01 May 2007 21:05:35 +0000 Subject: This patch makes Write use the gtk-based controls instead of the hippo ones. (Tomeu Vizoso) --- (limited to 'AbiWordActivity.py') diff --git a/AbiWordActivity.py b/AbiWordActivity.py index 2642b8a..ae7ca77 100644 --- a/AbiWordActivity.py +++ b/AbiWordActivity.py @@ -14,13 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - +from gettext import gettext as _ import logging import os import time -import gobject -import hippo +import gtk from sugar.activity import activity from sugar.datastore import datastore @@ -28,7 +27,7 @@ from sugar.datastore.datastore import Text from sugar import profile from abiword import Canvas -from toolbar import AbiToolbar +from toolbar import TextToolbar, ImageToolbar, TableToolbar class AbiWordActivity (activity.Activity): @@ -36,24 +35,42 @@ class AbiWordActivity (activity.Activity): activity.Activity.__init__ (self, handle) self.set_title ("Write") + toolbox = activity.ActivityToolbox(self) + self.set_toolbox(toolbox) + toolbox.show() + self._journal_handle = None self._last_saved_text = None - hippoCanvasBox = hippo.CanvasBox() - self.set_root(hippoCanvasBox) - # create our main abiword canvas self.abiword_canvas = Canvas() + self.abiword_canvas.connect("can-undo", self._can_undo_cb) + self.abiword_canvas.connect("can-redo", self._can_redo_cb) + + self._edit_toolbar = activity.EditToolbar() + + self._edit_toolbar.undo.set_sensitive(False) + self._edit_toolbar.undo.connect('clicked', self._undo_cb) + + self._edit_toolbar.redo.set_sensitive(False) + self._edit_toolbar.redo.connect('clicked', self._redo_cb) + + toolbox.add_toolbar(_('Edit'), self._edit_toolbar) + self._edit_toolbar.show() - # create and add a toolbar for our window, which listens to our canvas - abiToolbar = AbiToolbar(hippoCanvasBox, self.abiword_canvas) + text_toolbar = TextToolbar(self.abiword_canvas) + toolbox.add_toolbar(_('Text'), text_toolbar) + text_toolbar.show() - # create a hippo container to embed our canvas in - abiwordCanvasContainer = hippo.CanvasWidget() - abiwordCanvasContainer.props.widget = self.abiword_canvas + image_toolbar = ImageToolbar(self.abiword_canvas) + toolbox.add_toolbar(_('Image'), image_toolbar) + image_toolbar.show() - # add the controls to our window - hippoCanvasBox.append(abiwordCanvasContainer, hippo.PACK_EXPAND) + table_toolbar = TableToolbar(self.abiword_canvas) + toolbox.add_toolbar(_('Table'), table_toolbar) + table_toolbar.show() + + self.set_canvas(self.abiword_canvas) if handle.object_id: self._journal_handle = handle.object_id @@ -68,12 +85,24 @@ class AbiWordActivity (activity.Activity): self.connect('focus-out-event', self._focus_out_event_cb) self.connect('delete-event', self._delete_event_cb) + def _can_undo_cb(self, canvas, can_undo): + self._edit_toolbar.undo.set_sensitive(can_undo) + + def _can_redo_cb(self, canvas, can_redo): + self._edit_toolbar.redo.set_sensitive(can_redo) + + def _undo_cb(self, button): + self.abiword_canvas.undo() + + def _redo_cb(self, button): + self.abiword_canvas.redo() + def _focus_out_event_cb(self, widget, event): self._autosave() def _delete_event_cb(self, widget, event): self._autosave() - + def _autosave(self): text_content = self.abiword_canvas.get_content(".txt")[0] if not self._journal_handle: -- cgit v0.9.1