diff options
author | Marc Maurer <uwog@uwog.net> | 2007-06-04 22:52:04 (GMT) |
---|---|---|
committer | Marc Maurer <uwog@uwog.net> | 2007-06-04 22:52:04 (GMT) |
commit | 88fcec3084c940785ed6328244da7c06246e0edd (patch) | |
tree | 80eb018514737b7ce6b008a286d5e912e1d74832 | |
parent | 072b614eee4d4e7075fbf6b770d87ec384d479ed (diff) |
Select the Text, Image and Table toolbars depending on the context of the cursor
-rw-r--r-- | AbiWordActivity.py | 8 | ||||
-rw-r--r-- | toolbar.py | 42 |
2 files changed, 36 insertions, 14 deletions
diff --git a/AbiWordActivity.py b/AbiWordActivity.py index 2642bf7..7bfc5df 100644 --- a/AbiWordActivity.py +++ b/AbiWordActivity.py @@ -27,9 +27,7 @@ import telepathy import telepathy.client from sugar.activity.activity import Activity, ActivityToolbox, EditToolbar - from sugar.presence import presenceservice -#from buddiespanel import BuddiesPanel from abiword import Canvas from toolbar import TextToolbar, ImageToolbar, TableToolbar, ViewToolbar @@ -67,15 +65,15 @@ class AbiWordActivity (Activity): toolbox.add_toolbar(_('Edit'), self._edit_toolbar) self._edit_toolbar.show() - text_toolbar = TextToolbar(self.abiword_canvas) + text_toolbar = TextToolbar(toolbox, self.abiword_canvas) toolbox.add_toolbar(_('Text'), text_toolbar) text_toolbar.show() - image_toolbar = ImageToolbar(self.abiword_canvas) + image_toolbar = ImageToolbar(toolbox, self.abiword_canvas) toolbox.add_toolbar(_('Image'), image_toolbar) image_toolbar.show() - table_toolbar = TableToolbar(self.abiword_canvas) + table_toolbar = TableToolbar(toolbox, self.abiword_canvas) toolbox.add_toolbar(_('Table'), table_toolbar) table_toolbar.show() @@ -25,16 +25,25 @@ from sugar.graphics.toolbutton import ToolButton from sugar.graphics.toggletoolbutton import ToggleToolButton from sugar.graphics.combobox import ComboBox +#ick +TOOLBAR_ACTIVITY = 0 +TOOLBAR_EDIT = 1 +TOOLBAR_TEXT = 2 +TOOLBAR_IMAGE = 3 +TOOLBAR_TABLE = 4 +TOOLBAR_VIEW = 5 + class TextToolbar(gtk.Toolbar): _ACTION_ALIGNMENT_LEFT = 0 _ACTION_ALIGNMENT_CENTER = 1 _ACTION_ALIGNMENT_RIGHT = 2 - def __init__(self, abiword_canvas): + def __init__(self, toolbox, abiword_canvas): self._colorseldlg = None gtk.Toolbar.__init__(self) + self._toolbox = toolbox self._abiword_canvas = abiword_canvas self._bold = ToggleToolButton('format-text-bold') @@ -103,6 +112,8 @@ class TextToolbar(gtk.Toolbar): self._abiword_canvas.connect('center-align', self._isCenterAlign_cb) self._abiword_canvas.connect('right-align', self._isRightAlign_cb) + self._abiword_canvas.connect('text-selected', self._text_selected_cb) + def _add_widget(self, widget, expand=False): tool_item = gtk.ToolItem() tool_item.set_expand(expand) @@ -176,46 +187,56 @@ class TextToolbar(gtk.Toolbar): self._alignment.handler_unblock(self._alignment_changed_id) def _isLeftAlign_cb(self, abi, b): - print 'isLeftAlign',b if b: self._update_alignment_icon(self._ACTION_ALIGNMENT_LEFT) def _isCenterAlign_cb(self, abi, b): - print 'isCenterAlign',b if b: self._update_alignment_icon(self._ACTION_ALIGNMENT_CENTER) def _isRightAlign_cb(self, abi, b): - print 'isRightAlign',b if b: self._update_alignment_icon(self._ACTION_ALIGNMENT_RIGHT) + def _text_selected_cb(self, abi, b): + print 'text selected',b + if b: + self._toolbox.set_current_toolbar(TOOLBAR_TEXT) + self._abiword_canvas.grab_focus() # hack: bad toolbox, bad! + class ImageToolbar(gtk.Toolbar): - def __init__(self, abiword_canvas): + def __init__(self, toolbox, abiword_canvas): gtk.Toolbar.__init__(self) + self._toolbox = toolbox self._abiword_canvas = abiword_canvas - # insert-image does not exist yet; someone kick Eben please :) self._image = ToolButton('insert-image') self._image_id = self._image.connect('clicked', self._image_cb) self.insert(self._image, -1) self._image.show() + self._abiword_canvas.connect('image-selected', self._image_selected_cb) + def _image_cb(self, button): - print 'fileInsertGraphic' self._abiword_canvas.invoke_cmd('fileInsertGraphic', '', 0, 0) + def _image_selected_cb(self, abi, b): + print 'imageSelected',b + if b: + self._toolbox.set_current_toolbar(TOOLBAR_IMAGE) + self._abiword_canvas.grab_focus() # hack: bad toolbox, bad! + class TableToolbar(gtk.Toolbar): - def __init__(self, abiword_canvas): + def __init__(self, toolbox, abiword_canvas): gtk.Toolbar.__init__(self) + self._toolbox = toolbox self._abiword_canvas = abiword_canvas self._table = abiword.TableCreator() self._table.set_labels(_('Table'), _('Cancel')) self._table_id = self._table.connect('selected', self._table_cb) - #self._table_id = self._abiword_canvas.connect('table-state', self._tableState) self._table.show() tool_item = gtk.ToolItem() tool_item.add(self._table) @@ -264,6 +285,9 @@ class TableToolbar(gtk.Toolbar): self._table_delete_rows.set_sensitive(b) self._table_cols_after.set_sensitive(b) self._table_delete_cols.set_sensitive(b) + if b: + self._toolbox.set_current_toolbar(TOOLBAR_TABLE) + self._abiword_canvas.grab_focus() # hack: bad toolbox, bad! class ViewToolbar(gtk.Toolbar): def __init__(self, abiword_canvas): |