From 66e341c58ec7a6a1cb976a33103914bfddf7ebf6 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 9 Mar 2007 13:12:52 +0100 Subject: [PATCH] Use button_press virtual method instead of the connect_after hacks. --- sugar/graphics/canvasicon.py | 5 ++--- sugar/graphics/iconbutton.py | 7 ++----- sugar/graphics/toggleiconbutton.py | 8 +++----- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/sugar/graphics/canvasicon.py b/sugar/graphics/canvasicon.py index 3438c829..6f7a0a9d 100644 --- a/sugar/graphics/canvasicon.py +++ b/sugar/graphics/canvasicon.py @@ -176,7 +176,6 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): hippo.CanvasBox.__init__(self, **kwargs) - self.connect_after('button-press-event', self._button_press_event_cb) self.connect_after('motion-notify-event', self._motion_notify_event_cb) def _clear_buffers(self): @@ -326,9 +325,9 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem): [width, height] = self._get_icon_size() return height - def _button_press_event_cb(self, item, event): + def do_button_press_event(self, event): item.emit_activated() - return False + return True def get_popup(self): if self._tooltip: diff --git a/sugar/graphics/iconbutton.py b/sugar/graphics/iconbutton.py index 5c807a7f..be08ead8 100644 --- a/sugar/graphics/iconbutton.py +++ b/sugar/graphics/iconbutton.py @@ -27,7 +27,7 @@ from sugar.graphics import color STANDARD_SIZE = 0 SMALL_SIZE = 1 -class IconButton(CanvasIcon): +class IconButton(CanvasIcon, hippo.CanvasItem): __gtype_name__ = 'SugarIconButton' __gproperties__ = { @@ -45,9 +45,6 @@ class IconButton(CanvasIcon): self._set_size(STANDARD_SIZE) - self.connect_after('button-press-event', - self._icon_button_button_press_event_cb) - def _set_size(self, size): if size == SMALL_SIZE: self.props.box_width = -1 @@ -72,7 +69,7 @@ class IconButton(CanvasIcon): else: return CanvasIcon.do_get_property(self, pspec) - def _icon_button_button_press_event_cb(self, widget, event): + def do_button_press_event(self, event): if self._active: self.emit_activated() return True diff --git a/sugar/graphics/toggleiconbutton.py b/sugar/graphics/toggleiconbutton.py index a637fcd1..06f55217 100644 --- a/sugar/graphics/toggleiconbutton.py +++ b/sugar/graphics/toggleiconbutton.py @@ -16,11 +16,12 @@ # Boston, MA 02111-1307, USA. import gobject +import hippo from sugar.graphics.iconbutton import IconButton from sugar.graphics import color -class ToggleIconButton(IconButton): +class ToggleIconButton(IconButton, hippo.CanvasItem): __gtype_name__ = 'SugarToggleIconButton' __gproperties__ = { @@ -33,9 +34,6 @@ class ToggleIconButton(IconButton): IconButton.__init__(self, **kwargs) - self.connect('button-press-event', - self._toggle_icon_button_press_event_cb) - def _get_bg_color(self): if self._toggled: col = color.TOGGLE_BUTTON_BACKGROUND @@ -60,7 +58,7 @@ class ToggleIconButton(IconButton): return IconButton.do_get_property(self, pspec) - def _toggle_icon_button_press_event_cb(self, widget, event): + def do_button_press_event(self, event): self.props.toggled = not self._toggled return True