Blame ibus/panel.py

Packit Service 1d8f1c
# vim:set et sts=4 sw=4:
Packit Service 1d8f1c
#
Packit Service 1d8f1c
# ibus - The Input Bus
Packit Service 1d8f1c
#
Packit Service 1d8f1c
# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
Packit Service 1d8f1c
# Copyright (c) 2007-2010 Red Hat, Inc.
Packit Service 1d8f1c
#
Packit Service 1d8f1c
# This library is free software; you can redistribute it and/or
Packit Service 1d8f1c
# modify it under the terms of the GNU Lesser General Public
Packit Service 1d8f1c
# License as published by the Free Software Foundation; either
Packit Service 1d8f1c
# version 2.1 of the License, or (at your option) any later version.
Packit Service 1d8f1c
#
Packit Service 1d8f1c
# This library is distributed in the hope that it will be useful,
Packit Service 1d8f1c
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 1d8f1c
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 1d8f1c
# Lesser General Public License for more details.
Packit Service 1d8f1c
#
Packit Service 1d8f1c
# You should have received a copy of the GNU Lesser General Public
Packit Service 1d8f1c
# License along with this library; if not, write to the Free Software
Packit Service 1d8f1c
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
Packit Service 1d8f1c
# USA
Packit Service 1d8f1c
Packit Service 1d8f1c
__all__ = (
Packit Service 1d8f1c
        "PanelBase",
Packit Service 1d8f1c
        "PanelItem",
Packit Service 1d8f1c
        "PanelButton",
Packit Service 1d8f1c
        "PanelToggleButton",
Packit Service 1d8f1c
        "PanelMenu",
Packit Service 1d8f1c
        "IBUS_SERVICE_PANEL",
Packit Service 1d8f1c
        "IBUS_PATH_PANEL"
Packit Service 1d8f1c
    )
Packit Service 1d8f1c
Packit Service 1d8f1c
IBUS_SERVICE_PANEL = "org.freedesktop.IBus.Panel"
Packit Service 1d8f1c
IBUS_PATH_PANEL = "/org/freedesktop/IBus/Panel"
Packit Service 1d8f1c
Packit Service 1d8f1c
from serializable import *
Packit Service 1d8f1c
from object import Object
Packit Service 1d8f1c
import interface
Packit Service 1d8f1c
import dbus
Packit Service 1d8f1c
Packit Service 1d8f1c
class PanelItem:
Packit Service 1d8f1c
    pass
Packit Service 1d8f1c
Packit Service 1d8f1c
class PanelButton(PanelItem):
Packit Service 1d8f1c
    pass
Packit Service 1d8f1c
Packit Service 1d8f1c
class PanelToggleButton(PanelButton):
Packit Service 1d8f1c
    pass
Packit Service 1d8f1c
Packit Service 1d8f1c
class PanelMenu(PanelItem):
Packit Service 1d8f1c
    pass
Packit Service 1d8f1c
Packit Service 1d8f1c
class PanelBase(Object):
Packit Service 1d8f1c
    def __init__(self, bus):
Packit Service 1d8f1c
        super(PanelBase, self).__init__()
Packit Service 1d8f1c
        self.__bus = bus
Packit Service 1d8f1c
        self.__proxy = PanelProxy(self, bus)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def set_cursor_location(self, x, y, w, h):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def update_preedit_text(self, text, cursor_pos, visible):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def show_preedit_text(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def hide_preedit_text(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def update_auxiliary_text(self, text, visible):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def show_auxiliary_text(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def hide_auxiliary_text(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def update_lookup_table(self, lookup_table, visible):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def show_lookup_table(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def hide_lookup_table(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def show_candidate_window(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def page_up_lookup_table(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def page_down_lookup_table(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def cursor_up_lookup_table(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def cursor_down_lookup_table(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def hide_candidate_window(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def show_language_bar(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def hide_language_bar(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def register_properties(self, props):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def update_property(self, prop):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def focus_in(self, ic):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def focus_out(self, ic):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def state_changed(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def reset(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def start_setup(self):
Packit Service 1d8f1c
        pass
Packit Service 1d8f1c
Packit Service 1d8f1c
    def page_up(self):
Packit Service 1d8f1c
        self.__proxy.PageUp()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def page_down(self):
Packit Service 1d8f1c
        self.__proxy.PageDown()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def cursor_up(self):
Packit Service 1d8f1c
        self.__proxy.CursorUp()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def cursor_down(self):
Packit Service 1d8f1c
        self.__proxy.CursorDown()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def candidate_clicked(self, index, button, state):
Packit Service 1d8f1c
        self.__proxy.CandidateClicked(index, button, state)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def property_activate(self, prop_name, prop_state):
Packit Service 1d8f1c
        prop_name = dbus.String(prop_name)
Packit Service 1d8f1c
        prop_state = dbus.Int32(prop_state)
Packit Service 1d8f1c
        self.__proxy.PropertyActivate(prop_name, prop_state)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def property_show(self, prop_name):
Packit Service 1d8f1c
        prop_name = dbus.String(prop_name)
Packit Service 1d8f1c
        self.__proxy.PropertyShow(prop_name)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def property_hide(self, prop_name):
Packit Service 1d8f1c
        prop_name = dbus.String(prop_name)
Packit Service 1d8f1c
        self.__proxy.PropertyHide(prop_name)
Packit Service 1d8f1c
Packit Service 1d8f1c
Packit Service 1d8f1c
class PanelProxy(interface.IPanel):
Packit Service 1d8f1c
    def __init__ (self, panel, bus):
Packit Service 1d8f1c
        super(PanelProxy, self).__init__(bus.get_dbusconn(), IBUS_PATH_PANEL)
Packit Service 1d8f1c
        self.__bus = bus
Packit Service 1d8f1c
        self.__panel = panel
Packit Service 1d8f1c
        self.__focus_ic = None
Packit Service 1d8f1c
Packit Service 1d8f1c
    def SetCursorLocation(self, x, y, w, h):
Packit Service 1d8f1c
        self.__panel.set_cursor_location(x, y, w, h)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def UpdatePreeditText(self, text, cursor_pos, visible):
Packit Service 1d8f1c
        text = deserialize_object(text)
Packit Service 1d8f1c
        self.__panel.update_preedit_text(text, cursor_pos, visible)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def ShowPreeditText(self):
Packit Service 1d8f1c
        self.__panel.show_preedit_text()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def HidePreeditText(self):
Packit Service 1d8f1c
        self.__panel.hide_preedit_text()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def UpdateAuxiliaryText(self, text, visible):
Packit Service 1d8f1c
        text = deserialize_object(text)
Packit Service 1d8f1c
        self.__panel.update_auxiliary_text(text, visible)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def ShowAuxiliaryText(self):
Packit Service 1d8f1c
        self.__panel.show_auxiliary_text()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def HideAuxiliaryText(self):
Packit Service 1d8f1c
        self.__panel.hide_auxiliary_text()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def UpdateLookupTable(self, lookup_table, visible):
Packit Service 1d8f1c
        lookup_table = deserialize_object(lookup_table)
Packit Service 1d8f1c
        self.__panel.update_lookup_table(lookup_table, visible)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def ShowLookupTable(self):
Packit Service 1d8f1c
        self.__panel.show_lookup_table()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def HideLookupTable(self):
Packit Service 1d8f1c
        self.__panel.hide_lookup_table()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def PageUpLookupTable(self):
Packit Service 1d8f1c
        self.__panel.page_up_lookup_table()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def PageDownLookupTable(self):
Packit Service 1d8f1c
        self.__panel.page_down_lookup_table()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def CursorUpLookupTable(self):
Packit Service 1d8f1c
        self.__panel.cursor_up_lookup_table()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def CursorDownLookupTable(self):
Packit Service 1d8f1c
        self.__panel.cursor_down_lookup_table()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def ShowCandidateWindow(self):
Packit Service 1d8f1c
        self.__panel.show_candidate_window()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def HideCandidateWindow(self):
Packit Service 1d8f1c
        self.__panel.hide_candidate_window()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def ShowLanguageBar(self):
Packit Service 1d8f1c
        self.__panel.show_language_bar()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def HideLanguageBar(self):
Packit Service 1d8f1c
        self.__panel.hide_language_bar()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def RegisterProperties(self, props):
Packit Service 1d8f1c
        props = deserialize_object(props)
Packit Service 1d8f1c
        self.__panel.register_properties(props)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def UpdateProperty(self, prop):
Packit Service 1d8f1c
        prop = deserialize_object(prop)
Packit Service 1d8f1c
        self.__panel.update_property(prop)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def FocusIn(self, ic):
Packit Service 1d8f1c
        self.__panel.focus_in(ic)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def FocusOut(self, ic):
Packit Service 1d8f1c
        self.__panel.focus_out(ic)
Packit Service 1d8f1c
Packit Service 1d8f1c
    def StateChanged(self):
Packit Service 1d8f1c
        self.__panel.state_changed()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def Reset(self):
Packit Service 1d8f1c
        self.__panel.reset()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def StartSetup(self):
Packit Service 1d8f1c
        self.__panel.start_setup()
Packit Service 1d8f1c
Packit Service 1d8f1c
    def Destroy(self):
Packit Service 1d8f1c
        self.__panel.destroy()
Packit Service 1d8f1c
Packit Service 1d8f1c
def test():
Packit Service 1d8f1c
    import gtk
Packit Service 1d8f1c
    from bus import Bus
Packit Service 1d8f1c
    from inputcontext import InputContext
Packit Service 1d8f1c
    import factory
Packit Service 1d8f1c
    import attribute
Packit Service 1d8f1c
    import property
Packit Service 1d8f1c
    import text
Packit Service 1d8f1c
    import lookuptable
Packit Service 1d8f1c
Packit Service 1d8f1c
    class TestPanel(PanelBase):
Packit Service 1d8f1c
        def __init__(self):
Packit Service 1d8f1c
            self.__bus = Bus()
Packit Service 1d8f1c
            self.__bus.connect("disconnected", gtk.main_quit)
Packit Service 1d8f1c
            super(TestPanel, self).__init__(self.__bus)
Packit Service 1d8f1c
            self.__bus.request_name(IBUS_SERVICE_PANEL, 0)
Packit Service 1d8f1c
Packit Service 1d8f1c
        def focus_in(self, ic):
Packit Service 1d8f1c
            print "focus-in:", ic
Packit Service 1d8f1c
            context = InputContext(self.__bus, ic)
Packit Service 1d8f1c
            info = context.get_factory_info()
Packit Service 1d8f1c
            print "factory:", info.name
Packit Service 1d8f1c
Packit Service 1d8f1c
        def focus_out(self, ic):
Packit Service 1d8f1c
            print "focus-out:", ic
Packit Service 1d8f1c
Packit Service 1d8f1c
        def update_auxiliary_text(self, text, visible):
Packit Service 1d8f1c
            print "update-auxiliary-text:", text.text
Packit Service 1d8f1c
Packit Service 1d8f1c
        def update_lookup_table(self, table, visible):
Packit Service 1d8f1c
            print "update-lookup-table", table
Packit Service 1d8f1c
Packit Service 1d8f1c
    panel = TestPanel()
Packit Service 1d8f1c
    gtk.main()
Packit Service 1d8f1c
Packit Service 1d8f1c
Packit Service 1d8f1c
if __name__ == "__main__":
Packit Service 1d8f1c
    test()