import gtk
import gobject
import ibus
-
+import gettext
from icon import load_icon
+_ = lambda a : gettext.dgettext("ibus", a)
+
class EngineComboBox(gtk.ComboBox):
def __init__(self, engines):
super(EngineComboBox, self).__init__()
self.__model = gtk.TreeStore(gobject.TYPE_PYOBJECT)
+ iter1 = self.__model.append(None)
+ self.__model.set(iter1, 0, 0)
lang = {}
for e in engines:
l = ibus.get_language_name(e.language)
self.pack_start(renderer, True)
self.set_cell_data_func(renderer, self.__name_cell_data_cb)
+ self.set_active(0)
+
def __icon_cell_data_cb(self, celllayout, renderer, model, iter):
engine = self.__model.get_value(iter, 0)
icon_size = gtk.icon_size_lookup(gtk.ICON_SIZE_LARGE_TOOLBAR)[0]
- if isinstance (engine, str) or isinstance (engine, unicode):
+ if isinstance(engine, str) or isinstance (engine, unicode):
+ renderer.set_property("visible", False)
+ renderer.set_property("sensitive", False)
+ elif isinstance(engine, int):
renderer.set_property("visible", False)
renderer.set_property("sensitive", False)
else:
if isinstance (engine, str) or isinstance (engine, unicode):
renderer.set_property("sensitive", False)
renderer.set_property("text", engine)
+ elif isinstance(engine, int):
+ renderer.set_property("sensitive", True)
+ renderer.set_property("text", _("Select an input method"))
else:
renderer.set_property("sensitive", True)
renderer.set_property("text", engine.longname)
def get_active_engine(self):
+ i = self.get_active()
iter = self.get_active_iter()
- if iter == None:
+ if i == 0 or i == -1:
return None
return self.get_model()[iter][0]