|
Packit |
3ff832 |
# vim:set et sts=4 sw=4:
|
|
Packit |
3ff832 |
#
|
|
Packit |
3ff832 |
# ibus - The Input Bus
|
|
Packit |
3ff832 |
#
|
|
Packit |
3ff832 |
# Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
|
|
Packit |
3ff832 |
# Copyright (c) 2007-2010 Red Hat, Inc.
|
|
Packit |
3ff832 |
#
|
|
Packit |
3ff832 |
# This library is free software; you can redistribute it and/or
|
|
Packit |
3ff832 |
# modify it under the terms of the GNU Lesser General Public
|
|
Packit |
3ff832 |
# License as published by the Free Software Foundation; either
|
|
Packit |
3ff832 |
# version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
3ff832 |
#
|
|
Packit |
3ff832 |
# This library is distributed in the hope that it will be useful,
|
|
Packit |
3ff832 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
3ff832 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
3ff832 |
# Lesser General Public License for more details.
|
|
Packit |
3ff832 |
#
|
|
Packit |
3ff832 |
# You should have received a copy of the GNU Lesser General Public
|
|
Packit |
3ff832 |
# License along with this library; if not, write to the Free Software
|
|
Packit |
3ff832 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
|
|
Packit |
3ff832 |
# USA
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
__all__ = (
|
|
Packit |
3ff832 |
"EngineFactoryBase",
|
|
Packit |
3ff832 |
"FactoryInfo"
|
|
Packit |
3ff832 |
)
|
|
Packit |
3ff832 |
import dbus
|
|
Packit |
3ff832 |
import object
|
|
Packit |
3ff832 |
import interface
|
|
Packit |
3ff832 |
from serializable import *
|
|
Packit |
3ff832 |
from exception import *
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
class EngineFactoryBase(object.Object):
|
|
Packit |
3ff832 |
def __init__(self, bus):
|
|
Packit |
3ff832 |
super(EngineFactoryBase, self).__init__()
|
|
Packit |
3ff832 |
self.__proxy = EngineFactoryProxy (self, bus.get_dbusconn(), "/org/freedesktop/IBus/Factory")
|
|
Packit |
3ff832 |
self.__bus = bus
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def initialize(self):
|
|
Packit |
3ff832 |
pass
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def uninitialize(self):
|
|
Packit |
3ff832 |
pass
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def create_engine(self, engine_name):
|
|
Packit |
3ff832 |
raise IBusException("Can not create engine %s" % engine_name)
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def do_destroy(self):
|
|
Packit |
3ff832 |
self.__proxy = None
|
|
Packit |
3ff832 |
self.__bus = None
|
|
Packit |
3ff832 |
super(EngineFactoryBase, self).do_destroy()
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
class EngineFactoryProxy(interface.IEngineFactory):
|
|
Packit |
3ff832 |
def __init__(self, factory, conn, object_path):
|
|
Packit |
3ff832 |
super(EngineFactoryProxy, self).__init__(conn, object_path)
|
|
Packit |
3ff832 |
self.__factory = factory
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def GetInfo(self):
|
|
Packit |
3ff832 |
return self.__factory.get_info()
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def Initialize(self):
|
|
Packit |
3ff832 |
return self.__factory.initialize()
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def Uninitialize(self):
|
|
Packit |
3ff832 |
return self.__factory.uninitialize()
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def CreateEngine(self, engine_name):
|
|
Packit |
3ff832 |
engine = self.__factory.create_engine(engine_name)
|
|
Packit |
3ff832 |
return engine.get_dbus_object()
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def Destroy(self):
|
|
Packit |
3ff832 |
self.__factory.destroy()
|
|
Packit |
3ff832 |
self.__factory = None
|
|
Packit |
3ff832 |
self.remove_from_connection ()
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
class FactoryInfo(Serializable):
|
|
Packit |
3ff832 |
__gtype_name__ = "PYIBusFactoryInfo"
|
|
Packit |
3ff832 |
__NAME__ = "IBusFactoryInfo"
|
|
Packit |
3ff832 |
def __init__ (self, path=None, name=None, lang=None, icon=None, authors=None, credits=None):
|
|
Packit |
3ff832 |
super(FactoryInfo, self).__init__()
|
|
Packit |
3ff832 |
self.__path = path
|
|
Packit |
3ff832 |
self.__name = name
|
|
Packit |
3ff832 |
self.__lang = lang
|
|
Packit |
3ff832 |
self.__icon = icon
|
|
Packit |
3ff832 |
self.__authors = authors
|
|
Packit |
3ff832 |
self.__credits = credits
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def get_path(self):
|
|
Packit |
3ff832 |
return self.__path
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def get_name(self):
|
|
Packit |
3ff832 |
return self.__name
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def get_lang(self):
|
|
Packit |
3ff832 |
return self.__lang
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def get_icon(self):
|
|
Packit |
3ff832 |
return self.__icon
|
|
Packit |
3ff832 |
def get_authors(self):
|
|
Packit |
3ff832 |
return self.__authors
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def get_credits(self):
|
|
Packit |
3ff832 |
return self.__credits
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
path = property(get_path)
|
|
Packit |
3ff832 |
name = property(get_name)
|
|
Packit |
3ff832 |
lang = property(get_lang)
|
|
Packit |
3ff832 |
icon = property(get_icon)
|
|
Packit |
3ff832 |
authors = property(get_authors)
|
|
Packit |
3ff832 |
credits = property(get_credits)
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def serialize(self, struct):
|
|
Packit |
3ff832 |
super(FactoryInfo, self).serialize(struct)
|
|
Packit |
3ff832 |
struct.append (dbus.ObjectPath(self.__path))
|
|
Packit |
3ff832 |
struct.append (dbus.String(self.__name))
|
|
Packit |
3ff832 |
struct.append (dbus.String(self.__lang))
|
|
Packit |
3ff832 |
struct.append (dbus.String(self.__icon))
|
|
Packit |
3ff832 |
struct.append (dbus.String(self.__authors))
|
|
Packit |
3ff832 |
struct.append (dbus.String(self.__credits))
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
def deserialize(self, struct):
|
|
Packit |
3ff832 |
super(FactoryInfo, self).deserialize(struct)
|
|
Packit |
3ff832 |
if len(struct) < 5:
|
|
Packit |
3ff832 |
raise IBusException ("Can not deserialize IBusFactoryInfo")
|
|
Packit |
3ff832 |
|
|
Packit |
3ff832 |
self.__path = struct.pop(0)
|
|
Packit |
3ff832 |
self.__name = struct.pop(0)
|
|
Packit |
3ff832 |
self.__lang = struct.pop(0)
|
|
Packit |
3ff832 |
self.__icon = struct.pop(0)
|
|
Packit |
3ff832 |
self.__authors = struct.pop(0)
|
|
Packit |
3ff832 |
self.__credits = struct.pop(0)
|
|
Packit |
3ff832 |
|