Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/graphics/toolbutton.py
diff options
context:
space:
mode:
authorMarco 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)
commite0793ef199c22faad4ead6755452535e0bf00a16 (patch)
tree6b39ca50a01d7be09815271dd58f7e98b0d4abf4 /sugar/graphics/toolbutton.py
parent400cbc29e52f4824d78d329cc105409f0ac3500e (diff)
Heavy refactoring of palette activation. Not fully
implemented yet.
Diffstat (limited to 'sugar/graphics/toolbutton.py')
-rw-r--r--sugar/graphics/toolbutton.py62
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)