Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/AbiWordActivity.py
diff options
context:
space:
mode:
authorMarc Maurer <uwog@uwog.net>2007-05-01 21:05:35 (GMT)
committer Marc Maurer <uwog@uwog.net>2007-05-01 21:05:35 (GMT)
commitd82a38e6e595db7da3abc460d090a78b68355a2a (patch)
tree609c6a8612b93650b6c47b7f6d84e7ac5180a84b /AbiWordActivity.py
parente2bc409d176c8704d6c5d23fd588c0405436a53f (diff)
This patch makes Write use the gtk-based controls instead of the hippo
ones. (Tomeu Vizoso)
Diffstat (limited to 'AbiWordActivity.py')
-rw-r--r--AbiWordActivity.py59
1 files changed, 44 insertions, 15 deletions
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: