diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2008-06-11 10:59:56 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-06-11 10:59:56 +0800 |
commit | b4ae75975083abb847a654edb0d48d888056d0e5 (patch) | |
tree | 020c1034532b7693587ffbc66fdaee158fb00556 /panel/languagebar.py | |
parent | 324a1a8c565e01f1e09ca0e3cf8dff2e0b61765f (diff) | |
download | ibus-b4ae75975083abb847a654edb0d48d888056d0e5.tar.gz ibus-b4ae75975083abb847a654edb0d48d888056d0e5.tar.xz ibus-b4ae75975083abb847a654edb0d48d888056d0e5.zip |
WIP property.
Diffstat (limited to 'panel/languagebar.py')
-rw-r--r-- | panel/languagebar.py | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/panel/languagebar.py b/panel/languagebar.py index 06d84b4..f841046 100644 --- a/panel/languagebar.py +++ b/panel/languagebar.py @@ -64,14 +64,10 @@ class LanguageBar (gtk.Toolbar): self.set_size_request (width + 4, -1) def reset (self): - pass + self._remove_properties () def register_properties (self, props): - # reset all properties - for name, prop in self._properties.items (): - prop[1].destroy () - self._properties = {} - + self._remove_properties () # create new properties for prop in props: if prop._type == ibus.PROP_TYPE_NORMAL: @@ -91,14 +87,24 @@ class LanguageBar (gtk.Toolbar): else: widget.set_no_show_all (True) widget.hide () - - self._properties [prop._name] = (prop, widget) + if not self._properties.has_key (prop._name): + self._properties [prop._name] = [] + self._properties [prop._name].append ((prop, widget)) self.insert (widget, -1) self.check_resize () def update_properties (self, props): pass + def _remove_properties (self): + # reset all properties + for name, props in self._properties.items (): + for prop, widget in props: + widget.hide () + widget.destroy () + self._properties = {} + self.check_resize () + gobject.type_register (LanguageBar, "IBusLanguageBar") class LanguageBarWindow (gtk.Window): @@ -111,6 +117,7 @@ class LanguageBarWindow (gtk.Window): def __init__ (self): gtk.Window.__init__ (self, gtk.WINDOW_POPUP) self._language_bar = LanguageBar () + self._language_bar.connect ("size-request", self._size_request_cb) self._language_bar.connect ("property-activate", lambda widget, prop_name: self.emit ("property-activate", prop_name)) self.add (self._language_bar) @@ -136,5 +143,8 @@ class LanguageBarWindow (gtk.Window): def update_property (self, prop): self._labguage_bar.update_property (prop) + def _size_request_cb (self, widget, requisition): + self.resize (1, 1) + gobject.type_register (LanguageBarWindow, "IBusLanguageBarWindow") |