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. |
bool scim::PanelAgent::valid | ( | void | ) | const |
Check if this PanelAgent is initialized correctly and ready to run.
bool scim::PanelAgent::run | ( | void | ) |
Run this PanelAgent.
This method has its own dedicated main loop, so it should be run in a separated thread.
void scim::PanelAgent::stop | ( | void | ) |
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. |
bool scim::PanelAgent::move_preedit_caret | ( | uint32 | position | ) |
Let the focused IMEngineInstance object move the preedit caret.
position | The new preedit caret position. |
bool scim::PanelAgent::request_help | ( | void | ) |
Request help information from the focused IMEngineInstance object.
bool scim::PanelAgent::request_factory_menu | ( | void | ) |
Request factory menu from the focused FrontEnd.
bool scim::PanelAgent::change_factory | ( | const String & | uuid | ) |
Change the factory used by the focused IMEngineInstance object.
uuid | The uuid of the new factory. |
bool scim::PanelAgent::select_candidate | ( | uint32 | item | ) |
Let the focused IMEngineInstance object select a candidate in current lookup table.
item | The index of the selected candidate. |
bool scim::PanelAgent::lookup_table_page_up | ( | void | ) |
Let the focused IMEngineInstance object flip the LookupTable to previous page.
bool scim::PanelAgent::lookup_table_page_down | ( | void | ) |
Let the focused IMEngineInstance object flip the LookupTable to next page.
bool scim::PanelAgent::update_lookup_table_page_size | ( | uint32 | size | ) |
Let the focused IMEngineInstance object update the page size of the LookupTable.
size | The new page size. |
bool scim::PanelAgent::trigger_property | ( | const String & | property | ) |
Trigger a property of the focused IMEngineInstance object.
property | The property key to be triggered. |
bool scim::PanelAgent::trigger_helper_property | ( | int | client, |
const String & | property ) |
Trigger a property of a Helper object.
client | The client id of the Helper object. |
property | The property key to be triggered. |
bool scim::PanelAgent::start_helper | ( | const String & | uuid | ) |
Start a stand alone helper.
uuid | The uuid of the Helper object to be started. |
bool scim::PanelAgent::reload_config | ( | void | ) |
Let all FrontEnds and Helpers reload configuration.
bool scim::PanelAgent::exit | ( | void | ) |
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.
References scim::slot().
Connection scim::PanelAgent::signal_connect_turn_on | ( | PanelAgentSlotVoid * | slot | ) |
Connection scim::PanelAgent::signal_connect_turn_off | ( | PanelAgentSlotVoid * | slot | ) |
Connection scim::PanelAgent::signal_connect_update_screen | ( | PanelAgentSlotInt * | slot | ) |
Connection scim::PanelAgent::signal_connect_update_spot_location | ( | PanelAgentSlotIntInt * | slot | ) |
Signal: Update spot location.
slot prototype: void update_spot_location (int x, int y);
References scim::slot().
Connection scim::PanelAgent::signal_connect_update_factory_info | ( | PanelAgentSlotFactoryInfo * | slot | ) |
Signal: Update factory information.
slot prototype: void update_factory_info (const PanelFactoryInfo &info);
References scim::slot().
Connection scim::PanelAgent::signal_connect_show_help | ( | PanelAgentSlotString * | slot | ) |
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);
References scim::slot().
Connection scim::PanelAgent::signal_connect_show_preedit_string | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Show preedit string.
slot prototype: void show_preedit_string (void):
References scim::slot().
Connection scim::PanelAgent::signal_connect_show_aux_string | ( | PanelAgentSlotVoid * | slot | ) |
Connection scim::PanelAgent::signal_connect_show_lookup_table | ( | PanelAgentSlotVoid * | slot | ) |
Connection scim::PanelAgent::signal_connect_hide_preedit_string | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Hide preedit string.
slot prototype: void hide_preedit_string (void);
References scim::slot().
Connection scim::PanelAgent::signal_connect_hide_aux_string | ( | PanelAgentSlotVoid * | slot | ) |
Connection scim::PanelAgent::signal_connect_hide_lookup_table | ( | PanelAgentSlotVoid * | slot | ) |
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);
References scim::slot().
Connection scim::PanelAgent::signal_connect_update_preedit_caret | ( | PanelAgentSlotInt * | slot | ) |
Signal: Update preedit caret.
slot prototype: void update_preedit_caret (int caret);
References scim::slot().
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);
References scim::slot().
Connection scim::PanelAgent::signal_connect_update_lookup_table | ( | PanelAgentSlotLookupTable * | slot | ) |
Signal: Update lookup table.
slot prototype: void update_lookup_table (const LookupTable &table);
References scim::slot().
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);
References scim::slot().
Connection scim::PanelAgent::signal_connect_update_property | ( | PanelAgentSlotProperty * | slot | ) |
Signal: Update property.
Update a property of the focused instance.
slot prototype: void update_property (const Property &prop);
References scim::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);
References scim::slot().
Connection scim::PanelAgent::signal_connect_update_helper_property | ( | PanelAgentSlotIntProperty * | slot | ) |
Signal: Update helper property.
slot prototype: void update_helper_property (int id, const Property &prop);
References scim::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);
References scim::slot().
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);
References scim::slot().
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);
References scim::slot().
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);
References scim::slot().
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);
References scim::slot().
Connection scim::PanelAgent::signal_connect_unlock | ( | PanelAgentSlotVoid * | slot | ) |
Signal: Unlock the exclusive lock for this PanelAgent.
slot prototype: void unlock (void);
References scim::slot().