From 47220bdb6953f755794a6ec581c40d46e1971027 Mon Sep 17 00:00:00 2001 From: Huang Peng Date: Fri, 13 Jun 2008 20:14:56 +0800 Subject: [PATCH] Remove LanguageBarWindow. --- panel/languagebar.py | 69 +++++++++++++++------------------------------------- panel/panel.py | 9 ++++--- 2 files changed, 25 insertions(+), 53 deletions(-) diff --git a/panel/languagebar.py b/panel/languagebar.py index f841046..06f0536 100644 --- a/panel/languagebar.py +++ b/panel/languagebar.py @@ -14,6 +14,7 @@ class LanguageBar (gtk.Toolbar): gobject.TYPE_NONE, (gobject.TYPE_STRING, )), } + def __init__ (self): gtk.Toolbar.__init__ (self) self.set_property ("icon-size", ICON_SIZE) @@ -23,6 +24,8 @@ class LanguageBar (gtk.Toolbar): self._create_ui () self._properties = {} + self._toplevel = gtk.Window (gtk.WINDOW_POPUP) + self._toplevel.add (self) def _add_items (self): img = gtk.image_new_from_icon_name ("engine-default", ICON_SIZE) @@ -52,6 +55,15 @@ class LanguageBar (gtk.Toolbar): self._im_menu = gtk.ToolButton (icon_widget = gtk.image_new_from_icon_name ("ibus-keyboard", gtk.ICON_SIZE_MENU)) self.insert (self._im_menu, -1) + 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 () + def do_show (self): gtk.Toolbar.do_show (self) self.check_resize () @@ -63,6 +75,10 @@ class LanguageBar (gtk.Toolbar): width += w self.set_size_request (width + 4, -1) + def do_size_request (self, requisition): + gtk.Toolbar.do_size_request (self, requisition) + self._toplevel.resize (1, 1) + def reset (self): self._remove_properties () @@ -96,55 +112,10 @@ class LanguageBar (gtk.Toolbar): 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") + def show_all (self): + self._toplevel.show_all () + gtk.Toolbar.show_all (self) -class LanguageBarWindow (gtk.Window): - __gsignals__ = { - "property-activate" : ( - gobject.SIGNAL_RUN_FIRST, - gobject.TYPE_NONE, - (gobject.TYPE_STRING, )), - } - 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) - self.show_all () - def reset (self): - self._language_bar.reset () - - # def do_size_allocate (self, allocation): - # gtk.Window.do_size_allocate (self, allocation) - # root = gdk.get_default_root_window () - # workarea = root.property_get ("_NET_WORKAREA")[2] - # x, y = workarea[2] - allocation.width - 40, workarea[1] + workarea[3] - allocation.height - # self.move (x, y) - - def do_destroy (self): - gtk.main_quit () - gtk.Window.do_destroy (self) - - def register_properties (self, props): - self._language_bar.register_properties (props) - - 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") +gobject.type_register (LanguageBar, "IBusLanguageBar") diff --git a/panel/panel.py b/panel/panel.py index bac4c69..735bc1b 100644 --- a/panel/panel.py +++ b/panel/panel.py @@ -5,7 +5,7 @@ import gobject import ibus from lang import LANGUAGES from ibus import interface -from languagebar import LanguageBarWindow +from languagebar import LanguageBar from candidatewindow import CandidateWindow class Panel (ibus.Object): @@ -13,9 +13,10 @@ class Panel (ibus.Object): gobject.GObject.__init__ (self) self._proxy = proxy self._ibus = _ibus - self._language_bar = LanguageBarWindow () + self._language_bar = LanguageBar () self._language_bar.connect ("property-activate", lambda widget, prop_name: self._proxy.PropertyActivate (prop_name)) + self._language_bar.show_all () self._candidate_panel = CandidateWindow () self._candidate_panel.connect ("cursor-up", @@ -27,7 +28,7 @@ class Panel (ibus.Object): self._status_icon.connect ("popup-menu", self._status_icon_popup_menu_cb) self._status_icon.connect ("activate", self._status_icon_activate_cb) self._status_icon.set_from_icon_name ("engine-default") - self._status_icon.set_tooltip ("ibus - enabled") + self._status_icon.set_tooltip ("ibus - running") self._status_icon.set_visible (True) def set_cursor_location (self, x, y, w, h): @@ -107,7 +108,7 @@ class Panel (ibus.Object): def _menu_item_activate_cb (self, item, factory): - gobject.idle_add (self._ibus.SetFactory, factory, priority = gobject.PRIORITY_LOW) + self._ibus.SetFactory (factory) gobject.type_register (Panel, "IBusPanel") -- 2.7.4