Helper

## Classes

class | scim::HelperError
struct | scim::HelperInfo
| Structure to hold the information of a Helper object. More...
class | scim::HelperAgent
| The accessory class to write a Helper object. More...
class | scim::HelperManager
| This class is used to manage all helper objects. More...
class | scim::HelperModule
| The class used to load a Helper module and run its Helpers. More...

## Typedefs

typedef Slot3< void, const HelperAgent *, int, const String & > | scim::HelperAgentSlotVoid
typedef Slot4< void, const HelperAgent *, int, const String &, const String & > | scim::HelperAgentSlotString
typedef Slot4< void, const HelperAgent *, int, const String &, int > | scim::HelperAgentSlotInt
typedef Slot5< void, const HelperAgent *, int, const String &, int, int > | scim::HelperAgentSlotIntInt
typedef Slot4< void, const HelperAgent *, int, const String &, const Transaction & > | scim::HelperAgentSlotTransaction
typedef unsigned int(* | scim::HelperModuleNumberOfHelpersFunc) (void)
| Get the number of Helpers in this module.
typedef bool(* | scim::HelperModuleGetHelperInfoFunc) (unsigned int idx, HelperInfo &info)
| Get the information of a Helper.
typedef void(* | scim::HelperModuleRunHelperFunc) (const String &uuid, const ConfigPointer &config, const String &display)
| Run a specific Helper.

## Functions

int | scim::scim_get_helper_module_list (std::vector< String > &mod_list)
| Get a name list of currently available Helper modules.

## Variables

const uint32 | scim::SCIM_HELPER_STAND_ALONE = 1
| Helper option indicates that it's a stand alone Helper.
const uint32 | scim::SCIM_HELPER_AUTO_START = (1<<1)
| Helper option indicates that it must be started automatically when Panel starts.
const uint32 | scim::SCIM_HELPER_AUTO_RESTART = (1<<2)
| Helper option indicates that it should be restarted when it exits abnormally.
const uint32 | scim::SCIM_HELPER_NEED_SCREEN_INFO = (1<<3)
| Helper option indicates that it needs the screen update information.
const uint32 | scim::SCIM_HELPER_NEED_SPOT_LOCATION_INFO = (1<<4)
| Helper option indicates that it needs the spot location information.

## Detailed Description

The accessory classes to help develop and manage Client Helper objects.

## Typedef Documentation

## HelperAgentSlotVoid

typedef Slot3<void, const HelperAgent *, int, const String &> scim::HelperAgentSlotVoid

## HelperAgentSlotString

typedef Slot4<void, const HelperAgent *, int, const String &, const String &> scim::HelperAgentSlotString

## HelperAgentSlotInt

typedef Slot4<void, const HelperAgent *, int, const String &, int> scim::HelperAgentSlotInt

## HelperAgentSlotIntInt

typedef Slot5<void, const HelperAgent *, int, const String &, int, int> scim::HelperAgentSlotIntInt

## HelperAgentSlotTransaction

typedef Slot4<void, const HelperAgent *, int, const String &, const Transaction &> scim::HelperAgentSlotTransaction

## HelperModuleNumberOfHelpersFunc

typedef unsigned int(* scim::HelperModuleNumberOfHelpersFunc) (void)

Get the number of Helpers in this module.

A helper module can have multiple Helpers in it. But each helper will run in its own process space.

There must be a function called "scim_helper_module_number_of_helpers" in each helper module which complies with this prototype. This function name can have a prefix like kbd_LTX_, in which "kbd" is the module's name.

## HelperModuleGetHelperInfoFunc

typedef bool(* scim::HelperModuleGetHelperInfoFunc) (unsigned int idx, HelperInfo &info)

Get the information of a Helper.

There must be a function called "scim_helper_module_get_helper_info" in each helper module which complies with this prototype. This function name can have a prefix like kbd_LTX_, in which "kbd" is the module's name.

Parameters

  idx | The index of this helper, must between 0 to (the number of helpers) - 1.
  info | The HelperInfo object to store the information.

Returns
  true if this Helper is valid and the correct information is stored into info.

## HelperModuleRunHelperFunc

typedef void(* scim::HelperModuleRunHelperFunc) (const String &uuid, const ConfigPointer &config, const String &display)

Run a specific Helper.

This function will be called within an independent process.

There must be a function called "scim_helper_module_run_helper" in each helper module which complies with this prototype. This function name can have a prefix like kbd_LTX_, in which "kbd" is the module's name.

Parameters

  config | The Config object should be used to read/write configurations.
  uuid | The UUID of the Helper to be run.
  display | The display in which this helper should run.

## Function Documentation

## scim_get_helper_module_list()

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

Get a name list of currently available Helper modules.

Parameters

  mod_list | - the result list will be stored here.

Returns
  the number of the modules, equal to mod_list.size ().

## Variable Documentation

## SCIM_HELPER_STAND_ALONE

const uint32 scim::SCIM_HELPER_STAND_ALONE = 1

Helper option indicates that it's a stand alone Helper.

Stand alone Helper has no corresponding IMEngine Factory, Such Helper can not be started by IMEngine Factory. So Panel must provide a menu, or something else, which contains all stand alone Helper items, so that user can start them by clicking the items.

## SCIM_HELPER_AUTO_START

const uint32 scim::SCIM_HELPER_AUTO_START = (1<<1)

Helper option indicates that it must be started automatically when Panel starts.

If Helper objects want to start itself as soon as the Panel starts, set this option.

## SCIM_HELPER_AUTO_RESTART

const uint32 scim::SCIM_HELPER_AUTO_RESTART = (1<<2)

Helper option indicates that it should be restarted when it exits abnormally.

This option should not be used with SCIM_HELPER_STAND_ALONE.

## SCIM_HELPER_NEED_SCREEN_INFO

const uint32 scim::SCIM_HELPER_NEED_SCREEN_INFO = (1<<3)

Helper option indicates that it needs the screen update information.

Helper object with this option will receive the UPDATE_SCREEN event when the screen of focused ic is changed.

## SCIM_HELPER_NEED_SPOT_LOCATION_INFO

const uint32 scim::SCIM_HELPER_NEED_SPOT_LOCATION_INFO = (1<<4)

Helper option indicates that it needs the spot location information.

Helper object with this option will receive the SPOT_LOCATION_INFO event when the spot location of focused ic is changed.