scim 1.4.18
|
The class to implement all socket protocol in Panel. More...
#include <scim_panel_agent.h>
The class to implement all socket protocol in Panel.
This class acts like a stand alone SocketServer. It has its own dedicated main loop, and will be blocked when run () is called. So run () must be called within a separated thread, in order to not block the main loop of the Panel program itself.
Before calling run (), the panel must hook the callback functions to the corresponding signals.
Note that, there are two special signals: lock(void) and unlock(void). These two signals are used to provide a thread lock to PanelAgent, so that PanelAgent can run correctly within a multi-threading Panel program.
scim::PanelAgent::PanelAgent | ( | ) |
scim::PanelAgent::~PanelAgent | ( | ) |
bool scim::PanelAgent::initialize | ( | const String & | config, |
const String & | display, | ||
bool | resident = false ) |
Initialize this PanelAgent.
config | The name of the config module to be used by Helpers. |
display | The name of display, on which the Panel should run. |
resident | If this is true then this PanelAgent will keep running even if there is no more client connected. |
Check if this PanelAgent is initialized correctly and ready to run.
Run this PanelAgent.
This method has its own dedicated main loop, so it should be run in a separated thread.
Stop this PanelAgent.
int scim::PanelAgent::get_helper_list | ( | std::vector< HelperInfo > & | helpers | ) | const |
Get the list of all helpers.
Panel program should provide a menu which contains all stand alone but not auto start Helpers, so that users can activate the Helpers by clicking in the menu.
All auto start Helpers should be started by Panel after running PanelAgent by calling PanelAgent::start_helper().
helpers | A list contains information of all Helpers. |
Let the focused IMEngineInstance object move the preedit caret.
position | The new preedit caret position. |
Request help information from the focused IMEngineInstance object.
Request factory menu from the focused FrontEnd.
Change the factory used by the focused IMEngineInstance object.
uuid | The uuid of the new factory. |
Let the focused IMEngineInstance object select a candidate in current lookup table.
item | The index of the selected candidate. |
Let the focused IMEngineInstance object flip the LookupTable to previous page.
Let the focused IMEngineInstance object flip the LookupTable to next page.
Let the focused IMEngineInstance object update the page size of the LookupTable.
size | The new page size. |
Trigger a property of the focused IMEngineInstance object.
property | The property key to be triggered. |
Trigger a property of a Helper object.
client | The client id of the Helper object. |
property | The property key to be triggered. |
Start a stand alone helper.
uuid | The uuid of the Helper object to be started. |
Let all FrontEnds and Helpers reload configuration.
Let all FrontEnds, Helpers and this Panel exit.
Connection scim::PanelAgent::signal_connect_reload_config | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Reload configuration.
When a Helper object send a RELOAD_CONFIG event to this Panel, this signal will be emitted. Panel should reload all configuration here.
Connection scim::PanelAgent::signal_connect_turn_on | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Turn on.
slot prototype: void turn_on (void);
Connection scim::PanelAgent::signal_connect_turn_off | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Turn off.
slot prototype: void turn_off (void);
Connection scim::PanelAgent::signal_connect_update_screen | ( | PanelAgentSlotInt * | slot | ) |
Signal: Update screen.
slot prototype: void update_screen (int screen);
Connection scim::PanelAgent::signal_connect_update_spot_location | ( | PanelAgentSlotIntInt * | slot | ) |
Signal: Update spot location.
slot prototype: void update_spot_location (int x, int y);
Connection scim::PanelAgent::signal_connect_update_factory_info | ( | PanelAgentSlotFactoryInfo * | slot | ) |
Signal: Update factory information.
slot prototype: void update_factory_info (const PanelFactoryInfo &info);
Connection scim::PanelAgent::signal_connect_show_help | ( | PanelAgentSlotString * | slot | ) |
Signal: Show help.
slot prototype: void show_help (const String &help);
Connection scim::PanelAgent::signal_connect_show_factory_menu | ( | PanelAgentSlotFactoryInfoVector * | slot | ) |
Signal: Show factory menu.
slot prototype: void show_factory_menu (const std::vector <PanelFactoryInfo> &menu);
Connection scim::PanelAgent::signal_connect_show_preedit_string | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Show preedit string.
slot prototype: void show_preedit_string (void):
Connection scim::PanelAgent::signal_connect_show_aux_string | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Show aux string.
slot prototype: void show_aux_string (void):
Connection scim::PanelAgent::signal_connect_show_lookup_table | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Show lookup table.
slot prototype: void show_lookup_table (void):
Connection scim::PanelAgent::signal_connect_hide_preedit_string | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Hide preedit string.
slot prototype: void hide_preedit_string (void);
Connection scim::PanelAgent::signal_connect_hide_aux_string | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Hide aux string.
slot prototype: void hide_aux_string (void);
Connection scim::PanelAgent::signal_connect_hide_lookup_table | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Hide lookup table.
slot prototype: void hide_lookup_table (void);
Connection scim::PanelAgent::signal_connect_update_preedit_string | ( | PanelAgentSlotAttributeString * | slot | ) |
Signal: Update preedit string.
slot prototype: void update_preedit_string (const String &str, const AttributeList &attrs);
Connection scim::PanelAgent::signal_connect_update_preedit_caret | ( | PanelAgentSlotInt * | slot | ) |
Signal: Update preedit caret.
slot prototype: void update_preedit_caret (int caret);
Connection scim::PanelAgent::signal_connect_update_aux_string | ( | PanelAgentSlotAttributeString * | slot | ) |
Signal: Update aux string.
slot prototype: void update_aux_string (const String &str, const AttributeList &attrs);
Connection scim::PanelAgent::signal_connect_update_lookup_table | ( | PanelAgentSlotLookupTable * | slot | ) |
Signal: Update lookup table.
slot prototype: void update_lookup_table (const LookupTable &table);
Connection scim::PanelAgent::signal_connect_register_properties | ( | PanelAgentSlotPropertyList * | slot | ) |
Signal: Register properties.
Register properties of the focused instance.
slot prototype: void register_properties (const PropertyList &props);
Connection scim::PanelAgent::signal_connect_update_property | ( | PanelAgentSlotProperty * | slot | ) |
Connection scim::PanelAgent::signal_connect_register_helper_properties | ( | PanelAgentSlotIntPropertyList * | slot | ) |
Signal: Register properties of a helper.
slot prototype: void register_helper_properties (int id, const PropertyList &props);
Connection scim::PanelAgent::signal_connect_update_helper_property | ( | PanelAgentSlotIntProperty * | slot | ) |
Connection scim::PanelAgent::signal_connect_register_helper | ( | PanelAgentSlotIntHelperInfo * | slot | ) |
Signal: Register a helper object.
A newly started helper object will send this event to Panel.
slot prototype: register_helper (int id, const HelperInfo &helper);
Connection scim::PanelAgent::signal_connect_remove_helper | ( | PanelAgentSlotInt * | slot | ) |
Signal: Remove a helper object.
If a running helper close its connection to Panel, then this signal will be triggered to tell Panel to remove all data associated to this helper.
slot prototype: void remove_helper (int id);
Connection scim::PanelAgent::signal_connect_transaction_start | ( | PanelAgentSlotVoid * | slot | ) |
Signal: A transaction is started.
This signal infers that the Panel should disable update before this transaction finishes.
slot prototype: void signal_connect_transaction_start (void);
Connection scim::PanelAgent::signal_connect_transaction_end | ( | PanelAgentSlotVoid * | slot | ) |
Signal: A transaction is finished.
This signal will get emitted when a transaction is finished. This implys to re-enable panel GUI update
slot prototype: void signal_connect_transaction_end (void);
Connection scim::PanelAgent::signal_connect_lock | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Lock the exclusive lock for this PanelAgent.
The panel program should provide a thread lock and hook a slot into this signal to lock it. PanelAgent will use this lock to ensure the data integrity.
slot prototype: void lock (void);
Connection scim::PanelAgent::signal_connect_unlock | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Unlock the exclusive lock for this PanelAgent.
slot prototype: void unlock (void);