diff options
Diffstat (limited to 'sugar/graphics/palette.py')
-rw-r--r-- | sugar/graphics/palette.py | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/sugar/graphics/palette.py b/sugar/graphics/palette.py index 8ec3f4b..00a45c9 100644 --- a/sugar/graphics/palette.py +++ b/sugar/graphics/palette.py @@ -15,6 +15,8 @@ # Free Software Foundation, Inc., 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. +import logging + import gtk import gobject import time @@ -61,9 +63,9 @@ class Palette(gobject.GObject): self._menu = _sugarext.Menu() - primary = _PrimaryMenuItem(label, accel_path) - self._menu.append(primary) - primary.show() + self._primary = _PrimaryMenuItem(label, accel_path) + self._menu.append(self._primary) + self._primary.show() self._separator = gtk.SeparatorMenuItem() self._menu.append(self._separator) @@ -81,6 +83,9 @@ class Palette(gobject.GObject): self._menu.connect('button-press-event', self._button_press_event_cb) + def set_primary_text(self, label, accel_path): + self._primary.set_label(label, accel_path) + def append_menu_item(self, item): self._separator.show() self._menu.insert(item, len(self._menu.get_children()) - 2) @@ -152,8 +157,8 @@ class Palette(gobject.GObject): return x, y def _in_screen(self, x, y): - [width, height] = self._menu.get_size_request() - + [width, height] = self._menu.size_request() + return x + width < gtk.gdk.screen_width() and \ y + height < gtk.gdk.screen_height() and \ x >= 0 and y >= 0 @@ -224,17 +229,23 @@ class Palette(gobject.GObject): class _PrimaryMenuItem(gtk.MenuItem): def __init__(self, label, accel_path): gtk.MenuItem.__init__(self) + self._set_label(label, accel_path) + + def set_label(self, label, accel_path): + self.remove(self._label) + self._set_label(label, accel_path) - label = gtk.AccelLabel(label) - label.set_accel_widget(self) + def _set_label(self, label, accel_path): + self._label = gtk.AccelLabel(label) + self._label.set_accel_widget(self) if accel_path: self.set_accel_path(accel_path) - label.set_alignment(0.0, 0.5) - - self.add(label) - label.show() + self._label.set_alignment(0.0, 0.5) + self.add(self._label) + self._label.show() + class _ContentMenuItem(gtk.MenuItem): def __init__(self): gtk.MenuItem.__init__(self) |