From a188dac0527803edb46eabce04100f1c741a96f3 Mon Sep 17 00:00:00 2001 From: Simon Poirier Date: Sun, 12 Jul 2009 21:34:20 +0000 Subject: repackage of tutorius using distutils --- (limited to 'sugar-toolkit/src/sugar/graphics/menuitem.py') diff --git a/sugar-toolkit/src/sugar/graphics/menuitem.py b/sugar-toolkit/src/sugar/graphics/menuitem.py deleted file mode 100644 index a357d78..0000000 --- a/sugar-toolkit/src/sugar/graphics/menuitem.py +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright (C) 2007, Eduardo Silva -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -""" -STABLE. -""" - -import logging - -import gobject -import pango -import gtk - -from sugar.graphics.icon import Icon - -class MenuItem(gtk.ImageMenuItem): - def __init__(self, text_label=None, icon_name=None, text_maxlen=0, - xo_color=None, file_name=None): - gobject.GObject.__init__(self) - self._accelerator = None - - label = gtk.AccelLabel(text_label) - label.set_alignment(0.0, 0.5) - label.set_accel_widget(self) - if text_maxlen > 0: - label.set_ellipsize(pango.ELLIPSIZE_MIDDLE) - label.set_max_width_chars(text_maxlen) - self.add(label) - label.show() - - if icon_name is not None: - icon = Icon(icon_name=icon_name, - icon_size=gtk.ICON_SIZE_SMALL_TOOLBAR) - if xo_color is not None: - icon.props.xo_color = xo_color - self.set_image(icon) - icon.show() - - elif file_name is not None: - icon = Icon(file=file_name, icon_size=gtk.ICON_SIZE_SMALL_TOOLBAR) - if xo_color is not None: - icon.props.xo_color = xo_color - self.set_image(icon) - icon.show() - - self.connect('can-activate-accel', self.__can_activate_accel_cb) - self.connect('hierarchy-changed', self.__hierarchy_changed_cb) - - def __hierarchy_changed_cb(self, widget, previous_toplevel): - self._add_accelerator() - - def __can_activate_accel_cb(self, widget, signal_id): - # Accept activation via accelerators regardless of this widget's state - return True - - def _add_accelerator(self): - if self._accelerator is None or self.get_toplevel() is None: - return - - # TODO: should we remove the accelerator from the prev top level? - - accel_group = self.get_toplevel().get_data('sugar-accel-group') - if not accel_group: - logging.warning('No gtk.AccelGroup in the top level window.') - return - - keyval, mask = gtk.accelerator_parse(self._accelerator) - self.add_accelerator('activate', accel_group, keyval, mask, - gtk.ACCEL_LOCKED | gtk.ACCEL_VISIBLE) - - def set_accelerator(self, accelerator): - self._accelerator = accelerator - self._add_accelerator() - - def get_accelerator(self): - return self._accelerator - - accelerator = gobject.property(type=str, setter=set_accelerator, - getter=get_accelerator) - -- cgit v0.9.1