From a648956f7df33d0a359ed90a83cc01f08919f6b8 Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Thu, 29 Jul 2010 17:53:50 +0000 Subject: Embody toolkit dependency --- (limited to 'toolkit/toolitem.py') diff --git a/toolkit/toolitem.py b/toolkit/toolitem.py new file mode 100644 index 0000000..e490c22 --- /dev/null +++ b/toolkit/toolitem.py @@ -0,0 +1,79 @@ +# Copyright (C) 2009, Aleksey Lim +# +# 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. + +"""A set of toolitem widets""" + +import gtk +import gobject + +from sugar.graphics import style + +from toolkit.combobox import ComboBox + + +class ToolWidget(gtk.ToolItem): + + def __init__(self, **kwargs): + self._widget = None + self._label = None + self._label_text = None + self._box = gtk.HBox(False, style.DEFAULT_SPACING) + + gobject.GObject.__init__(self, **kwargs) + self.props.border_width = style.DEFAULT_PADDING + + self._box.show() + self.add(self._box) + + if self.label is None: + self.label = gtk.Label() + + def get_label_text(self): + return self._label_text + + def set_label_text(self, value): + self._label_text = value + if self.label is not None and value: + self.label.set_text(self._label_text) + + label_text = gobject.property(getter=get_label_text, setter=set_label_text) + + def get_label(self): + return self._label + + def set_label(self, label): + if self._label is not None: + self._box.remove(self._label) + self._label = label + self._box.pack_start(label, False) + self._box.reorder_child(label, 0) + label.show() + self.set_label_text(self._label_text) + + label = gobject.property(getter=get_label, setter=set_label) + + def get_widget(self): + return self._widget + + def set_widget(self, widget): + if self._widget is not None: + self._box.remove(self._widget) + self._widget = widget + self._box.pack_end(widget) + widget.show() + + widget = gobject.property(getter=get_widget, setter=set_widget) -- cgit v0.9.1