|
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()
|