diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-06-25 12:31:43 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-06-25 12:31:43 (GMT) |
commit | e0793ef199c22faad4ead6755452535e0bf00a16 (patch) | |
tree | 6b39ca50a01d7be09815271dd58f7e98b0d4abf4 /sugar/graphics/toolbutton.py | |
parent | 400cbc29e52f4824d78d329cc105409f0ac3500e (diff) |
Heavy refactoring of palette activation. Not fully
implemented yet.
Diffstat (limited to 'sugar/graphics/toolbutton.py')
-rw-r--r-- | sugar/graphics/toolbutton.py | 62 |
1 files changed, 2 insertions, 60 deletions
diff --git a/sugar/graphics/toolbutton.py b/sugar/graphics/toolbutton.py index c58fff3..fe87717 100644 --- a/sugar/graphics/toolbutton.py +++ b/sugar/graphics/toolbutton.py @@ -29,10 +29,6 @@ class ToolButton(gtk.ToolButton): gtk.ToolButton.__init__(self) self._palette = None self.set_icon(icon_name) - self.child.connect('enter-notify-event',self._enter_notify_event_cb) - self.child.connect('leave-notify-event',self._leave_notify_event_cb) - self._enter_tag = None - self._leave_tag = None def set_icon(self, icon_name): icon = Icon(icon_name) @@ -41,63 +37,9 @@ class ToolButton(gtk.ToolButton): def set_palette(self, palette): self._palette = palette - self._palette.props.invoker = WidgetInvoker(self) + self._palette.props.invoker = WidgetInvoker(self.child) def set_tooltip(self, text): - if self._palette: - self._palette.destroy() - self._palette = Palette() self._palette.set_primary_state(text) - self._palette.props.invoker = WidgetInvoker(self) - - def _enter_notify_event_cb(self, widget, event): - if not self._palette: - return - - gtk.gdk.pointer_ungrab() - - if self._leave_tag: - gobject.source_remove(self._leave_tag) - self._leave_tag = None - - self._enter_tag = gobject.timeout_add(self._POPUP_PALETTE_DELAY, \ - self._show_palette) - - def _leave_notify_event_cb(self, widget, event): - if not self._palette: - return - - if self._enter_tag: - gobject.source_remove(self._enter_tag) - self._enter_tag = None - - self._leave_tag = gobject.timeout_add(self._POPUP_PALETTE_DELAY,\ - self._hide_palette) - - def _show_palette(self): - self._palette.popup() - return False - - def _hide_palette(self): - # Just hide the palette if the mouse pointer is - # out of the toolbutton and the palette - if self._is_mouse_out(self._palette): - self._palette.popdown() - else: - gtk.gdk.pointer_ungrab() - - return False - - def _pointer_grab(self): - gtk.gdk.pointer_grab(self.window, owner_events=True,\ - event_mask=gtk.gdk.PROPERTY_CHANGE_MASK ) - - def _is_mouse_out(self, widget): - mouse_x, mouse_y = widget.get_pointer() - event_rect = gdk.Rectangle(mouse_x, mouse_y, 1, 1) - - if (widget.allocation.intersect(event_rect).width==0): - return True - else: - return False + self._palette.props.invoker = WidgetInvoker(self.child) |