# vim:set et sts=4 sw=4: # # ibus - The Input Bus # # Copyright (c) 2007-2008 Huang Peng # # 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 program; if not, write to the # Free Software Foundation, Inc., 59 Temple Place, Suite 330, # Boston, MA 02111-1307 USA __all__ = ( "EngineBase", ) import object import serializable import interface class EngineBase(object.Object): def __init__(self, bus, object_path): super(EngineBase, self).__init__() self.__proxy = EngineProxy (self, bus.get_dbusconn(), object_path) def process_key_event(self, keyval, state): return False def focus_in(self): pass def focus_out(self): pass def set_cursor_location(self, x, y, w, h): pass def set_capabilities(self, cap): pass def reset(self): pass def page_up(self): pass def page_down(self): pass def cursor_up(self): pass def cursor_down(self): pass def enable(self): pass def disable(self): pass def property_activate(self, prop_name, prop_state): pass def property_show(self, prop_name): pass def property_hide(self, prop_name): pass def commit_text(self, text): text = serializable.serialize_object(text) return self.__proxy.CommitText(text) def forward_key_event(self, keyval, state): return self.__proxy.ForwardKeyEvent(keyval, state) def update_preedit_text(self, text, cursor_pos, visible): text = serializable.serialize_object(text) return self.__proxy.UpdatePreeditText(text, cursor_pos, visible) def show_preedit_text(self): return self.__proxy.ShowPreeditText() def hide_preedit_text(self): return self.__proxy.HidePreeditText() def update_auxiliary_text(self, text, visible): text = serializable.serialize_object(text) return self.__proxy.UpdateAuxiliaryText(text, visible) def show_auxiliary_text(self): return self.__proxy.ShowAuxiliaryText() def hide_auxiliary_text(self): return self.__proxy.HideAuxiliaryText() def update_lookup_table(self, lookup_table, visible, just_current_page = False): if just_current_page: lookup_table = lookup_table.get_current_page_as_lookup_table() dbus_values = serializable.serialize_object(lookup_table) return self.__proxy.UpdateLookupTable(dbus_values, visible) def show_lookup_table(self): return self.__proxy.ShowLookupTable() def hide_lookup_table(self): return self.__proxy.HideLookupTable() def page_up_lookup_table(self): return self.__proxy.PageUpLookupTable() def page_down_lookup_table(self): return self.__proxy.PageDownLookupTable() def cursor_up_lookup_table(self): return self.__proxy.CursorUpLookupTable() def cursor_down_lookup_table(self): return self.__proxy.CursorDownLookupTable() def register_properties(self, props): dbus_values = serializable.serialize_object(props) return self.__proxy.RegisterProperties(dbus_values) def update_property(self, prop): dbus_values = serializable.serialize_object(prop) return self.__proxy.UpdateProperty(dbus_values) def get_dbus_object(self): return self.__proxy def do_destroy(self): self.__proxy = None super(EngineBase,self).do_destroy() class EngineProxy(interface.IEngine): def __init__(self, engine, conn, object_path): super(EngineProxy, self).__init__(conn, object_path) self.__engine = engine def ProcessKeyEvent(self, keyval, state): return self.__engine.process_key_event(keyval, state) def FocusIn(self): return self.__engine.focus_in() def FocusOut(self): return self.__engine.focus_out() def SetCursorLocation(self, x, y, w, h): return self.__engine.set_cursor_location(x, y, w, h) def SetCapabilities(self, caps): return self.__engine.set_capabilities(caps) def Reset(self): return self.__engine.reset() def PageUp(self): return self.__engine.page_up() def PageDown(self): return self.__engine.page_down() def CursorUp(self): return self.__engine.cursor_up() def CursorDown(self): return self.__engine.cursor_down() def Enable(self): return self.__engine.enable() def Disable(self): return self.__engine.disable() def PropertyActivate(self, prop_name, prop_state): return self.__engine.property_activate(prop_name, prop_state) def PropertyShow(self, prop_name): return self.__engine.property_show(prop_name) def PropertyHide(self, prop_name): return self.__engine.property_hide(prop_name) def Destroy(self): self.__engine.destroy() self.__engine = None self.remove_from_connection ()