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< FilterFactoryBase > | scim::FilterFactoryPointer
typedef unsigned int(* | scim::FilterModuleInitFunc) (const ConfigPointer &config)
| Initialize a Filter Module.
typedef FilterFactoryPointer(* | scim::FilterModuleCreateFilterFunc) (unsigned int index)
| Create an object of this FilterFactory class.
typedef bool(* | scim::FilterModuleGetFilterInfoFunc) (unsigned int index, FilterInfo &info)
| Get basic information of the FilterFactory class provided by this module.
typedef Pointer< IMEngineFactoryBase > | scim::IMEngineFactoryPointer
typedef Pointer< IMEngineInstanceBase > | scim::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.
typedef IMEngineFactoryPointer(* | scim::IMEngineModuleCreateFactoryFunc) (unsigned int engine)
| Create a factory instance for an engine,.

## 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.
int | scim::scim_get_imengine_module_list (std::vector< String > &mod_list)
| Get a name list of currently available IMEngine modules.

## 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

typedef Pointer<FilterFactoryBase> scim::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

  config | a 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

  index | the index of the FilterFactory to be used to create the object. Must between 0 and (number_of_filters - 1).
  backend | the 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

  index | The index of the FilterFactory to be queried.
  info | The object to hold the information.
  index | the index of the Filter to be queried.

Returns
  The uuid of this FilterFactory class.

## IMEngineFactoryPointer

typedef Pointer<IMEngineFactoryBase> scim::IMEngineFactoryPointer

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

## IMEngineInstancePointer

typedef Pointer<IMEngineInstanceBase> scim::IMEngineInstancePointer

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

## IMEngineSlotVoid

typedef Slot1<void, IMEngineInstanceBase*> scim::IMEngineSlotVoid

## IMEngineSlotInt

typedef Slot2<void, IMEngineInstanceBase*,int> scim::IMEngineSlotInt

## IMEngineSlotBool

typedef Slot2<void, IMEngineInstanceBase*,bool> scim::IMEngineSlotBool

## IMEngineSlotString

typedef Slot2<void, IMEngineInstanceBase*,const String&> scim::IMEngineSlotString

## IMEngineSlotWideString

typedef Slot2<void, IMEngineInstanceBase*,const WideString&> scim::IMEngineSlotWideString

## IMEngineSlotKeyEvent

typedef Slot2<void, IMEngineInstanceBase*,const KeyEvent&> scim::IMEngineSlotKeyEvent

## IMEngineSlotLookupTable

typedef Slot2<void, IMEngineInstanceBase*,const LookupTable&> scim::IMEngineSlotLookupTable

## IMEngineSlotProperty

typedef Slot2<void, IMEngineInstanceBase*,const Property&> scim::IMEngineSlotProperty

## IMEngineSlotPropertyList

typedef Slot2<void, IMEngineInstanceBase*,const PropertyList&> scim::IMEngineSlotPropertyList

## IMEngineSlotStringTransaction

typedef Slot3<void, IMEngineInstanceBase*,const String&,const Transaction&> scim::IMEngineSlotStringTransaction

## IMEngineSlotWideStringAttributeList

typedef Slot3<void, IMEngineInstanceBase*,const WideString&,const AttributeList&> scim::IMEngineSlotWideStringAttributeList

## IMEngineSlotGetSurroundingText

typedef Slot5<bool, IMEngineInstanceBase*,WideString&,int&,int,int> scim::IMEngineSlotGetSurroundingText

## IMEngineSlotDeleteSurroundingText

typedef Slot3<bool, IMEngineInstanceBase*,int,int> scim::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 scim::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 ().