scim  1.4.18
IMEngine

Classes

class  scim::ComposeKeyFactory
 A simple IMEngine to deal with the Compose keys. More...
 
class  scim::ComposeKeyInstance
 
class  scim::FilterError
 An exception class to hold Filter related errors. More...
 
struct  scim::FilterInfo
 Structure to hold information for a Filter. More...
 
class  scim::FilterFactoryBase
 The base class to implement FilterFactory classes. More...
 
class  scim::FilterInstanceBase
 The base class to implement FilterInstance classes. More...
 
class  scim::FilterManager
 
class  scim::FilterModule
 The class to manipulate the Filter modules. More...
 
class  scim::IMEngineError
 An exception class to hold IMEngine related errors. More...
 
class  scim::IMEngineFactoryBase
 The base class of the real input methods' IMEngineFactory classes. More...
 
class  scim::IMEngineInstanceBase
 The base class of the real input methods' IMEngineInstance classes. More...
 
class  scim::DummyIMEngineFactory
 A trivial IMEngine that do nothing. More...
 
class  scim::DummyIMEngineInstance
 
class  scim::IMEngineModule
 The class to manipulate the IMEngine modules. More...
 

Macros

#define SCIM_COMPOSE_KEY_FACTORY_UUID   "c6bebc27-6324-4b77-8ad4-6d41dcaf2e08"
 

Typedefs

typedef Pointer< FilterFactoryBasescim::FilterFactoryPointer
 
typedef unsigned int(* scim::FilterModuleInitFunc) (const ConfigPointer &config)
 Initialize a Filter Module. More...
 
typedef FilterFactoryPointer(* scim::FilterModuleCreateFilterFunc) (unsigned int index)
 Create an object of this FilterFactory class. More...
 
typedef bool(* scim::FilterModuleGetFilterInfoFunc) (unsigned int index, FilterInfo &info)
 Get basic information of the FilterFactory class provided by this module. More...
 
typedef Pointer< IMEngineFactoryBasescim::IMEngineFactoryPointer
 
typedef Pointer< IMEngineInstanceBasescim::IMEngineInstancePointer
 
typedef Slot1< void, IMEngineInstanceBase * > scim::IMEngineSlotVoid
 
typedef Slot2< void, IMEngineInstanceBase *, int > scim::IMEngineSlotInt
 
typedef Slot2< void, IMEngineInstanceBase *, bool > scim::IMEngineSlotBool
 
typedef Slot2< void, IMEngineInstanceBase *, const String & > scim::IMEngineSlotString
 
typedef Slot2< void, IMEngineInstanceBase *, const WideString & > scim::IMEngineSlotWideString
 
typedef Slot2< void, IMEngineInstanceBase *, const KeyEvent & > scim::IMEngineSlotKeyEvent
 
typedef Slot2< void, IMEngineInstanceBase *, const LookupTable & > scim::IMEngineSlotLookupTable
 
typedef Slot2< void, IMEngineInstanceBase *, const Property & > scim::IMEngineSlotProperty
 
typedef Slot2< void, IMEngineInstanceBase *, const PropertyList & > scim::IMEngineSlotPropertyList
 
typedef Slot3< void, IMEngineInstanceBase *, const String &, const Transaction & > scim::IMEngineSlotStringTransaction
 
typedef Slot3< void, IMEngineInstanceBase *, const WideString &, const AttributeList & > scim::IMEngineSlotWideStringAttributeList
 
typedef Slot5< bool, IMEngineInstanceBase *, WideString &, int &, int, int > scim::IMEngineSlotGetSurroundingText
 
typedef Slot3< bool, IMEngineInstanceBase *, int, int > scim::IMEngineSlotDeleteSurroundingText
 
typedef unsigned int(* scim::IMEngineModuleInitFunc) (const ConfigPointer &config)
 Initialize a IMEngine Module. More...
 
typedef IMEngineFactoryPointer(* scim::IMEngineModuleCreateFactoryFunc) (unsigned int engine)
 Create a factory instance for an engine,. More...
 

Enumerations

enum  scim::ClientCapability {
  scim::SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT = (1 << 0), scim::SCIM_CLIENT_CAP_SINGLE_LEVEL_PROPERTY = (1 << 1), scim::SCIM_CLIENT_CAP_MULTI_LEVEL_PROPERTY = (1 << 2), scim::SCIM_CLIENT_CAP_TRIGGER_PROPERTY = (1 << 3),
  scim::SCIM_CLIENT_CAP_HELPER_MODULE = (1 << 4), scim::SCIM_CLIENT_CAP_SURROUNDING_TEXT = (1 << 5), scim::SCIM_CLIENT_CAP_ALL_CAPABILITIES = 0x3F
}
 Enum values of all Client Capabilities bitmask. More...
 

Functions

int scim::scim_get_filter_module_list (std::vector< String > &mod_list)
 Get a name list of currently available Filter modules. More...
 
int scim::scim_get_imengine_module_list (std::vector< String > &mod_list)
 Get a name list of currently available IMEngine modules. More...
 

Detailed Description

The base classes for filter input method engine modules.

The base classes for input method engine modules.

Macro Definition Documentation

◆ SCIM_COMPOSE_KEY_FACTORY_UUID

#define SCIM_COMPOSE_KEY_FACTORY_UUID   "c6bebc27-6324-4b77-8ad4-6d41dcaf2e08"

Typedef Documentation

◆ FilterFactoryPointer

A smart pointer for scim::FilterFactoryBase and its derived classes.

◆ FilterModuleInitFunc

typedef unsigned int(* scim::FilterModuleInitFunc) (const ConfigPointer &config)

Initialize a Filter Module.

There must be a function called "scim_filter_module_init" in each filter module which complies with this prototype. This function name can have a prefix like sctc_LTX_, in which "sctc" is the module's name.

If a filter needs services from other IMEngineFactory objects, it should obtain the pointer of these IMEngineFactory objects from the given BacnEnd pointer. But please note that, those IMEngineFactory objects may not be loaded yet, when initializing this Filter module. So the pointers of available IMEngineFactory objects should only be queried from the BackEnd at the first time to used by this Filter.

Parameters
configa ConfigBase instance to maintain the configuration.
Returns
the number of filters provided by this module.

◆ FilterModuleCreateFilterFunc

typedef FilterFactoryPointer(* scim::FilterModuleCreateFilterFunc) (unsigned int index)

Create an object of this FilterFactory class.

There must be a function called "scim_filter_module_create_filter" which complies with this prototype. This function name can have a prefix like sctc_LTX_, in which "sctc" is the module's name.

A new FilterFactory object should be returned for each call. Because multiple objects would be used at the same time.

Parameters
indexthe index of the FilterFactory to be used to create the object. Must between 0 and (number_of_filters - 1).
backendthe BackEnd instance which holds all real IMEngineFactory objects. Some filter may want to use other IMEngineFactory object to do some job, eg. inverse convert.
Returns
the pointer of the FilterFactory object.

◆ FilterModuleGetFilterInfoFunc

typedef bool(* scim::FilterModuleGetFilterInfoFunc) (unsigned int index, FilterInfo &info)

Get basic information of the FilterFactory class provided by this module.

There must be a function called "scim_filter_module_get_filter_info" which complies with this prototype. This function name can have a prefix like sctc_LTX_, in which "sctc" is the module's name.

Parameters
indexThe index of the FilterFactory to be queried.
infoThe object to hold the information.
indexthe index of the Filter to be queried.
Returns
The uuid of this FilterFactory class.

◆ IMEngineFactoryPointer

A smart pointer for scim::IMEngineFactoryBase and its derived classes.

◆ IMEngineInstancePointer

A smart pointer for scim::IMEngineInstanceBase and its derived classes.

◆ IMEngineSlotVoid

◆ IMEngineSlotInt

◆ IMEngineSlotBool

◆ IMEngineSlotString

◆ IMEngineSlotWideString

◆ IMEngineSlotKeyEvent

◆ IMEngineSlotLookupTable

◆ IMEngineSlotProperty

◆ IMEngineSlotPropertyList

◆ IMEngineSlotStringTransaction

◆ IMEngineSlotWideStringAttributeList

◆ IMEngineSlotGetSurroundingText

◆ IMEngineSlotDeleteSurroundingText

◆ IMEngineModuleInitFunc

typedef unsigned int(* scim::IMEngineModuleInitFunc) (const ConfigPointer &config)

Initialize a IMEngine Module.

There must be a function called "scim_imengine_module_init" in each imengine module which complies with this prototype. This function name can have a prefix like table_LTX_, in which "table" is the module's name.

Parameters
config- a ConfigBase instance to maintain the configuration.
Returns
the number of factories supported by this IMEngine Module.

◆ IMEngineModuleCreateFactoryFunc

typedef IMEngineFactoryPointer(* scim::IMEngineModuleCreateFactoryFunc) (unsigned int engine)

Create a factory instance for an engine,.

There must be a function called "scim_imengine_module_create_factory" which complies with this prototype. This function name can have a prefix like table_LTX_, in which "table" is the module's name.

Parameters
engine- the index of the engine for which a factory object will be created.
Returns
the pointer of the factory object.

Enumeration Type Documentation

◆ ClientCapability

Enum values of all Client Capabilities bitmask.

These capabilities are not always supported by all kinds of clients. So if an IMEngine requires some of them to realize some features, it should make sure that they are supported by client by checking the cap value sent by update_client_capabilities() action.

Enumerator
SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT 

The client support OnTheSpot preedit (embed preedit string into client window)

SCIM_CLIENT_CAP_SINGLE_LEVEL_PROPERTY 

The client support displaying single level property, property tree may not be supported

SCIM_CLIENT_CAP_MULTI_LEVEL_PROPERTY 

The client support displaying multiple level property, aka. property tree

SCIM_CLIENT_CAP_TRIGGER_PROPERTY 

The client is capabile to trigger the IMEngine property.

SCIM_CLIENT_CAP_HELPER_MODULE 

The client support helper module

SCIM_CLIENT_CAP_SURROUNDING_TEXT 

The client support get/delete surrounding text operations

SCIM_CLIENT_CAP_ALL_CAPABILITIES 

Function Documentation

◆ scim_get_filter_module_list()

int scim::scim_get_filter_module_list ( std::vector< String > &  mod_list)

Get a name list of currently available Filter modules.

Parameters
mod_list- the result list will be stored here.
Returns
the number of the modules, equal to mod_list.size ().

◆ scim_get_imengine_module_list()

int scim::scim_get_imengine_module_list ( std::vector< String > &  mod_list)

Get a name list of currently available IMEngine modules.

Parameters
mod_list- the result list will be stored here.
Returns
the number of the modules, equal to mod_list.size ().