From 6f78b8104b3a9846e6c1e9171e2a0be8de4aca8b Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Thu, 15 Nov 2012 18:02:51 +0000 Subject: Use the new lockable Palette, SL #4008 This is based on the lockable Palette support in the toolkit that landed in 6064fb30cc3cca24d2c68c588bcf3de5a047f584 Signed-off-by: Simon Schampijer --- diff --git a/toolbox.py b/toolbox.py index 1165836..15d638c 100644 --- a/toolbox.py +++ b/toolbox.py @@ -256,9 +256,7 @@ class ToolsToolbarBuilder(): #self._stroke_color.set_icon_name('icon-stroke') self._stroke_color.set_title(_('Brush properties')) self._stroke_color.connect('notify::color', self._color_button_cb) - item = Gtk.ToolItem() - item.add(self._stroke_color) - toolbar.insert(item, -1) + toolbar.insert(self._stroke_color, -1) separator = Gtk.SeparatorToolItem() separator.set_draw(True) diff --git a/widgets.py b/widgets.py index b98a21e..9f996fa 100644 --- a/widgets.py +++ b/widgets.py @@ -47,7 +47,6 @@ class BrushButton(_ColorButton): GObject.GObject.__init__(self, **kwargs) self._preview.set_events(Gdk.EventMask.BUTTON_PRESS_MASK) - self._preview.connect('button_press_event', self.__mouse_down_cb) self._preview.connect("draw", self.draw) self.set_image(self._preview) @@ -167,15 +166,6 @@ class BrushButton(_ColorButton): def get_icon_size(self): pass - def __mouse_down_cb(self, event): - if self._palette: - if not self._palette.is_up(): - self._palette.popup(immediate=True, - state=self._palette.SECONDARY) - else: - self._palette.popdown(immediate=True) - return True - class ButtonStrokeColor(Gtk.ToolItem): """Class to manage the Stroke Color of a Button""" @@ -206,6 +196,8 @@ class ButtonStrokeColor(Gtk.ToolItem): self.color_button.set_relief(Gtk.ReliefStyle.NONE) self._palette_invoker.attach_tool(self) + self._palette_invoker.props.toggle_palette = True + self._palette_invoker.props.lock_palette = True # This widget just proxies the following properties to the colorbutton self.color_button.connect('notify::color', self.__notify_change) @@ -376,6 +368,29 @@ class ButtonStrokeColor(Gtk.ToolItem): palette_invoker = GObject.property( type=object, setter=set_palette_invoker, getter=get_palette_invoker) + def set_expanded(self, expanded): + box = self.toolbar_box + if not box: + return + + if not expanded: + self._palette_invoker.notify_popdown() + return + + if box.expanded_button is not None: + box.expanded_button.queue_draw() + if box.expanded_button != self: + box.expanded_button.set_expanded(False) + box.expanded_button = self + + def get_toolbar_box(self): + parent = self.get_parent() + if not hasattr(parent, 'owner'): + return None + return parent.owner + + toolbar_box = property(get_toolbar_box) + def set_color(self, color): self.color_button.set_color(color) -- cgit v0.9.1