import ibus
from handle import Handle
from menu import menu_position
+from engineabout import EngineAbout
from toolitem import ToolButton,\
ToggleToolButton, \
SeparatorToolItem, \
gobject.SIGNAL_RUN_LAST,
gobject.TYPE_PYOBJECT,
()),
+ "show-engine-about" : (
+ gobject.SIGNAL_RUN_LAST,
+ gobject.TYPE_PYOBJECT,
+ ()),
+
}
def __init__ (self):
self.__im_menu.connect("toggled", self.__im_menu_toggled_cb)
self.insert(self.__im_menu, -1)
+ self.__about_button = gtk.ToolButton(gtk.STOCK_ABOUT)
+ self.__about_button.set_no_show_all(True)
+ self.__about_button.set_tooltip_text(_("About the Input Method"))
+ self.__about_button.connect("clicked", self.__about_button_clicked_cb)
+ self.insert(self.__about_button, -1)
+
def __im_menu_toggled_cb(self, widget):
if self.__im_menu.get_active():
menu = self.emit("get-im-menu")
0,
gtk.get_current_event_time(),
widget)
+
+ def __about_button_clicked_cb(self, widget):
+ if self.__enabled:
+ self.emit("show-engine-about")
+
def __im_menu_deactivate_cb(self, menu):
self.__im_menu.set_active(False)
def set_enabled(self, enabled):
self.__enabled = enabled
if self.__enabled:
+ self.__about_button.show()
self.__set_opacity(1.0)
if self.__has_focus:
if self.__show in (1, 2):
self.show_all()
else:
+ self.__about_button.hide()
self.__set_opacity(0.5)
if self.__show in (1, 0):
self.hide_all()
def register_properties(self, props):
self.__remove_properties()
# create new properties
- for prop in props:
+ for i, prop in enumerate(props):
if prop.type == ibus.PROP_TYPE_NORMAL:
item = ToolButton(prop = prop)
elif prop.type == ibus.PROP_TYPE_TOGGLE:
item.hide()
self.__properties.append(item)
- self.insert(item, -1)
+ self.insert(item, i + 2)
def update_property(self, prop):
map(lambda x: x.update_property(prop), self.__properties)
from ibus import interface
from languagebar import LanguageBar
from candidatepanel import CandidatePanel
+from engineabout import EngineAbout
from gettext import dgettext
_ = lambda a : dgettext("ibus", a)
lambda widget, prop_name, prop_state: self.property_activate(prop_name, prop_state))
self.__language_bar.connect("get-im-menu",
self.__get_im_menu_cb)
+ self.__language_bar.connect("show-engine-about",
+ self.__show_engine_about_cb)
self.__language_bar.focus_out()
self.__language_bar.show_all()
menu = self.__create_im_menu()
return menu
+ def __show_engine_about_cb(self, langiagebar):
+ try:
+ engine = self.__focus_ic.get_engine()
+ dlg = EngineAbout(engine)
+ dlg.run()
+ dlg.destroy()
+ except:
+ pass
+
def __status_icon_popup_menu_cb(self, status_icon, button, active_time):
menu = self.__create_sys_menu()
menu.popup(None, None,