Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolbar.py
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-05-05 13:27:54 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-05-05 13:27:54 (GMT)
commit73b65bc82086f97e1be2b666d9c4b82346000b2a (patch)
treebc6ece35328045fcf753926f856b18cb163184d4 /toolbar.py
parentd82a38e6e595db7da3abc460d090a78b68355a2a (diff)
Turn the alignment toggle buttons in a combo box.
Diffstat (limited to 'toolbar.py')
-rw-r--r--toolbar.py73
1 files changed, 48 insertions, 25 deletions
diff --git a/toolbar.py b/toolbar.py
index d72e92a..89530ea 100644
--- a/toolbar.py
+++ b/toolbar.py
@@ -22,8 +22,13 @@ import gtk
from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.toggletoolbutton import ToggleToolButton
+from sugar.graphics.combobox import ComboBox
class TextToolbar(gtk.Toolbar):
+ _ACTION_ALIGNMENT_LEFT = 0
+ _ACTION_ALIGNMENT_CENTER = 1
+ _ACTION_ALIGNMENT_RIGHT = 2
+
def __init__(self, abiword_canvas):
gtk.Toolbar.__init__(self)
@@ -48,23 +53,30 @@ class TextToolbar(gtk.Toolbar):
self.insert(separator, -1)
separator.show()
- self._align_left = ToggleToolButton('format-justify-left')
- self._align_left_id = self._align_left.connect('clicked', self._align_left_cb)
- self._abiword_canvas.connect('left-align', self._isLeftAlign_cb)
- self.insert(self._align_left, -1)
- self._align_left.show()
+ self._alignment = ComboBox()
+ self._alignment.append_item(self._ACTION_ALIGNMENT_LEFT, None,
+ 'format-justify-left')
+ self._alignment.append_item(self._ACTION_ALIGNMENT_CENTER, None,
+ 'format-justify-center')
+ self._alignment.append_item(self._ACTION_ALIGNMENT_RIGHT, None,
+ 'format-justify-right')
+ self._alignment_changed_id = self._alignment.connect('changed',
+ self._alignment_changed_cb)
+ self._add_widget(self._alignment)
- self._align_center = ToggleToolButton('format-justify-center')
- self._align_center_id = self._align_center.connect('clicked', self._align_center_cb)
+ self._abiword_canvas.connect('left-align', self._isLeftAlign_cb)
self._abiword_canvas.connect('center-align', self._isCenterAlign_cb)
- self.insert(self._align_center, -1)
- self._align_center.show()
-
- self._align_right = ToggleToolButton('format-justify-right')
- self._align_right_id = self._align_right.connect('clicked', self._align_right_cb)
self._abiword_canvas.connect('right-align', self._isRightAlign_cb)
- self.insert(self._align_right, -1)
- self._align_right.show()
+
+ def _add_widget(self, widget, expand=False):
+ tool_item = gtk.ToolItem()
+ tool_item.set_expand(expand)
+
+ tool_item.add(widget)
+ widget.show()
+
+ self.insert(tool_item, -1)
+ tool_item.show()
def setToggleButtonState(self,button,b,id):
button.handler_block(id)
@@ -85,26 +97,37 @@ class TextToolbar(gtk.Toolbar):
print 'isBold',b
self.setToggleButtonState(self._bold,b,self._bold_id)
- def _align_left_cb(self, button):
- self._abiword_canvas.align_left()
+ def _alignment_changed_cb(self, combobox):
+ if self._alignment.get_active() == self._ACTION_ALIGNMENT_LEFT:
+ self._abiword_canvas.align_left()
+ elif self._alignment.get_active() == self._ACTION_ALIGNMENT_CENTER:
+ self._abiword_canvas.align_center()
+ elif self._alignment.get_active() == self._ACTION_ALIGNMENT_RIGHT:
+ self._abiword_canvas.align_right()
+ else:
+ raise ValueError, 'Unknown option in alignment combobox.'
+
+ def _update_alignment_icon(self, index):
+ self._alignment.handler_block(self._alignment_changed_id)
+ try:
+ self._alignment.set_active(index)
+ finally:
+ self._alignment.handler_unblock(self._alignment_changed_id)
def _isLeftAlign_cb(self, abi, b):
print 'isLeftAlign',b
- self.setToggleButtonState(self._align_left,b,self._align_left_id)
-
- def _align_center_cb(self, button):
- self._abiword_canvas.align_center()
+ if b:
+ self._update_alignment_icon(self._ACTION_ALIGNMENT_LEFT)
def _isCenterAlign_cb(self, abi, b):
print 'isCenterAlign',b
- self.setToggleButtonState(self._align_center,b,self._align_center_id)
-
- def _align_right_cb(self, button):
- self._abiword_canvas.align_right()
+ if b:
+ self._update_alignment_icon(self._ACTION_ALIGNMENT_CENTER)
def _isRightAlign_cb(self, abi, b):
print 'isRightAlign',b
- self.setToggleButtonState(self._align_right,b,self._align_right_id)
+ if b:
+ self._update_alignment_icon(self._ACTION_ALIGNMENT_RIGHT)
class ImageToolbar(gtk.Toolbar):
def __init__(self, abiword_canvas):