Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-08-15 19:53:31 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-08-15 19:53:31 (GMT)
commit8d9383c48e219cb9806f0c4c2e2d1b0600eb5227 (patch)
tree50a47a4454106cfc1863d2608fad219143cde2b7 /sugar
parentd7d1e172a3995b44350527814a7b3ac0fda3feff (diff)
Move most of the drawing logic inside Palette/Invoker.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/graphics/palette.py23
-rw-r--r--sugar/graphics/radiotoolbutton.py6
-rw-r--r--sugar/graphics/toggletoolbutton.py6
-rw-r--r--sugar/graphics/toolbutton.py3
4 files changed, 17 insertions, 21 deletions
diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py
index ea298cb..3573e96 100644
--- a/sugar/graphics/palette.py
+++ b/sugar/graphics/palette.py
@@ -87,9 +87,7 @@ class Palette(gtk.Window):
'invoker' : (object, None, None,
gobject.PARAM_READWRITE),
'position' : (gobject.TYPE_INT, None, None, 0, 6,
- 0, gobject.PARAM_READWRITE),
- 'draw-gap' : (bool, None, None, False,
- gobject.PARAM_READWRITE)
+ 0, gobject.PARAM_READWRITE)
}
__gsignals__ = {
@@ -114,7 +112,6 @@ class Palette(gtk.Window):
self._group_id = None
self._up = False
self._position = self.DEFAULT
- self._draw_gap = False
self._palette_popup_sid = None
self._popup_anim = animator.Animator(0.3, 10)
@@ -206,9 +203,6 @@ class Palette(gtk.Window):
self._invoker.connect('mouse-leave', self._invoker_mouse_leave_cb)
elif pspec.name == 'position':
self._position = value
- elif pspec.name == 'draw-gap':
- self._draw_gap = value
- self.queue_draw()
else:
raise AssertionError
@@ -217,8 +211,6 @@ class Palette(gtk.Window):
return self._invoker
elif pspec.name == 'position':
return self._position
- elif pspec.name == 'draw-gap':
- return self._draw_gap
else:
raise AssertionError
@@ -228,7 +220,7 @@ class Palette(gtk.Window):
def do_expose_event(self, event):
# We want to draw a border with a beautiful gap
- if self._draw_gap:
+ if self._invoker.has_rectangle_gap():
invoker = self._invoker.get_rect()
palette = self.get_rect()
@@ -542,6 +534,12 @@ class Invoker(gobject.GObject):
def __init__(self):
gobject.GObject.__init__(self)
+ def has_rectangle_gap(self):
+ return False
+
+ def draw_rectangle(self, event, palette):
+ pass
+
def get_default_position(self):
return Palette.AROUND
@@ -575,7 +573,10 @@ class WidgetInvoker(Invoker):
return gtk.gdk.Rectangle(x, y, width, height)
- def draw_invoker_rect(self, event, palette):
+ def has_rectangle_gap(self):
+ return True
+
+ def draw_rectangle(self, event, palette):
style = self._widget.style
gap = _calculate_gap(self.get_rect(), palette.get_rect())
if gap:
diff --git a/sugar/graphics/radiotoolbutton.py b/sugar/graphics/radiotoolbutton.py
index 5ee1977..4ffc7d1 100644
--- a/sugar/graphics/radiotoolbutton.py
+++ b/sugar/graphics/radiotoolbutton.py
@@ -40,16 +40,14 @@ class RadioToolButton(gtk.RadioToolButton):
def set_palette(self, palette):
self._palette = palette
self._palette.props.invoker = WidgetInvoker(self.child)
- self._palette.props.draw_gap = True
def set_tooltip(self, text):
- self._palette = Palette(text)
- self._palette.props.invoker = WidgetInvoker(self.child)
+ self._set_palette(Palette(text))
def do_expose_event(self, event):
if self._palette and self._palette.is_up():
invoker = self._palette.props.invoker
- invoker.draw_invoker_rect(event, self._palette)
+ invoker.draw_rectangle(event, self._palette)
gtk.RadioToolButton.do_expose_event(self, event)
diff --git a/sugar/graphics/toggletoolbutton.py b/sugar/graphics/toggletoolbutton.py
index 1d5c740..74e78a6 100644
--- a/sugar/graphics/toggletoolbutton.py
+++ b/sugar/graphics/toggletoolbutton.py
@@ -39,16 +39,14 @@ class ToggleToolButton(gtk.ToggleToolButton):
def set_palette(self, palette):
self._palette = palette
self._palette.props.invoker = WidgetInvoker(self.child)
- self._palette.props.draw_gap = True
def set_tooltip(self, text):
- self._palette = Palette(text)
- self._palette.props.invoker = WidgetInvoker(self.child)
+ self._set_palette(Palette(text))
def do_expose_event(self, event):
if self._palette and self._palette.is_up():
invoker = self._palette.props.invoker
- invoker.draw_invoker_rect(event, self._palette)
+ invoker.draw_rectangle(event, self._palette)
gtk.ToggleToolButton.do_expose_event(self, event)
diff --git a/sugar/graphics/toolbutton.py b/sugar/graphics/toolbutton.py
index 95e95cd..8e982e4 100644
--- a/sugar/graphics/toolbutton.py
+++ b/sugar/graphics/toolbutton.py
@@ -42,7 +42,6 @@ class ToolButton(gtk.ToolButton):
def set_palette(self, palette):
self._palette = palette
self._palette.props.invoker = WidgetInvoker(self.child)
- self._palette.props.draw_gap = True
def set_tooltip(self, text):
self.set_palette(Palette(text))
@@ -50,7 +49,7 @@ class ToolButton(gtk.ToolButton):
def do_expose_event(self, event):
if self._palette and self._palette.is_up():
invoker = self._palette.props.invoker
- invoker.draw_invoker_rect(event, self._palette)
+ invoker.draw_rectangle(event, self._palette)
gtk.ToolButton.do_expose_event(self, event)