2 * @file scim_panel_agent.h
3 * @brief Defines scim::PanelAgent and their related types.
5 * scim::PanelAgent is a class used to write Panel daemons.
6 * It acts like a Socket Server and handles all socket clients
10 /* ISF is based on SCIM 1.4.7 and extended for supporting more mobile fitable. */
13 * Smart Common Input Method
15 * Copyright (c) 2004-2005 James Su <suzhe@tsinghua.org.cn>
18 * This library is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU Lesser General Public
20 * License as published by the Free Software Foundation; either
21 * version 2 of the License, or (at your option) any later version.
23 * This library is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU Lesser General Public License for more details.
28 * You should have received a copy of the GNU Lesser General Public
29 * License along with this program; if not, write to the
30 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
31 * Boston, MA 02111-1307 USA
33 * $Id: scim_panel_agent.h,v 1.2 2005/06/11 14:50:31 suzhe Exp $
36 #ifndef __SCIM_PANEL_AGENT_H
37 #define __SCIM_PANEL_AGENT_H
39 #include <scim_panel_common.h>
45 * @ingroup InputServiceFramework
46 * The accessory classes to help develop Panel daemons and FrontEnds
47 * which need to communicate with Panel daemons.
53 TOOLBAR_KEYBOARD_MODE = 0, /* Hardware keyboard ISE */
54 TOOLBAR_HELPER_MODE /* Software keyboard ISE */
57 typedef struct _ISE_INFO
70 typedef Slot1<void, int>
73 typedef Slot1<void, const String &>
76 typedef Slot2<void, String &, String &>
77 PanelAgentSlotString2;
79 typedef Slot2<void, int, const String &>
80 PanelAgentSlotIntString;
82 typedef Slot1<void, const PanelFactoryInfo &>
83 PanelAgentSlotFactoryInfo;
85 typedef Slot1<void, const std::vector <PanelFactoryInfo> &>
86 PanelAgentSlotFactoryInfoVector;
88 typedef Slot1<void, const LookupTable &>
89 PanelAgentSlotLookupTable;
91 typedef Slot1<void, const Property &>
92 PanelAgentSlotProperty;
94 typedef Slot1<void, const PropertyList &>
95 PanelAgentSlotPropertyList;
97 typedef Slot2<void, int, int>
100 typedef Slot2<void, int &, int &>
101 PanelAgentSlotIntInt2;
103 typedef Slot3<void, int, int, int>
104 PanelAgentSlotIntIntInt;
106 typedef Slot4<void, int, int, int, int>
107 PanelAgentSlotIntIntIntInt;
109 typedef Slot2<void, int, const Property &>
110 PanelAgentSlotIntProperty;
112 typedef Slot2<void, int, const PropertyList &>
113 PanelAgentSlotIntPropertyList;
115 typedef Slot2<void, int, const HelperInfo &>
116 PanelAgentSlotIntHelperInfo;
118 typedef Slot2<void, const String &, const AttributeList &>
119 PanelAgentSlotAttributeString;
121 typedef Slot1<void, std::vector<String> &>
122 PanelAgentSlotStringVector;
124 typedef Slot1<bool, std::vector<String> &>
125 PanelAgentSlotBoolStringVector;
127 typedef Slot2<void, char *, std::vector<String> &>
128 PanelAgentSlotStrStringVector;
130 typedef Slot2<bool, const String &, ISE_INFO &>
131 PanelAgentSlotStringISEINFO;
133 typedef Slot1<void, const KeyEvent &>
134 PanelAgentSlotKeyEvent;
136 typedef Slot1<void, struct rectinfo &>
139 typedef Slot2<void, const String &, bool>
140 PanelAgentSlotStringBool;
142 typedef struct DefaultIse
147 DefaultIse () : type (TOOLBAR_KEYBOARD_MODE), uuid (""), name ("") { }
151 * @brief The class to implement all socket protocol in Panel.
153 * This class acts like a stand alone SocketServer.
154 * It has its own dedicated main loop, and will be blocked when run () is called.
155 * So run () must be called within a separated thread, in order to not block
156 * the main loop of the Panel program itself.
158 * Before calling run (), the panel must hook the callback functions to the
159 * corresponding signals.
161 * Note that, there are two special signals: lock(void) and unlock(void). These
162 * two signals are used to provide a thread lock to PanelAgent, so that PanelAgent
163 * can run correctly within a multi-threading Panel program.
167 class PanelAgentImpl;
168 PanelAgentImpl *m_impl;
170 PanelAgent (const HelperAgent &);
171 const PanelAgent & operator = (const HelperAgent &);
178 * @brief Initialize this PanelAgent.
180 * @param config The name of the config module to be used by Helpers.
181 * @param display The name of display, on which the Panel should run.
182 * @param resident If this is true then this PanelAgent will keep running
183 * even if there is no more client connected.
185 * @return true if the PanelAgent is initialized correctly and ready to run.
187 bool initialize (const String &config, const String &display, bool resident = false);
190 * @brief Check if this PanelAgent is initialized correctly and ready to run.
192 * @return true if this PanelAgent is ready to run.
194 bool valid (void) const;
197 * @brief Run this PanelAgent.
199 * This method has its own dedicated main loop,
200 * so it should be run in a separated thread.
202 * @return false if the Panel SocketServer encountered an error when running.
203 * Otherwise, it won't return until the server exits.
208 * @brief Stop this PanelAgent.
215 * @brief Get the list of all helpers.
217 * Panel program should provide a menu which contains
218 * all stand alone but not auto start Helpers, so that users can activate
219 * the Helpers by clicking in the menu.
221 * All auto start Helpers should be started by Panel after running PanelAgent
222 * by calling PanelAgent::start_helper().
224 * @param helpers A list contains information of all Helpers.
226 int get_helper_list (std::vector <HelperInfo> & helpers) const;
229 * @brief Get the list of active ISEs.
231 * @param strlist A list contains information of active ISEs.
233 * @return the list size.
235 int get_active_ise_list (std::vector<String> &strlist);
238 * @brief Get the helper manager connection id.
240 * @return the connection id
242 int get_helper_manager_id (void);
245 * @brief Check if there are any events available to be processed.
247 * If it returns true then HelperManager object should call
248 * HelperManager::filter_event () to process them.
250 * @return true if there are any events available.
252 bool has_helper_manager_pending_event (void);
255 * @brief Filter the events received from helper manager.
257 * Corresponding signal will be emitted in this method.
259 * @return true if the command was sent correctly, otherwise return false.
261 bool filter_helper_manager_event (void);
264 * @brief Send display name to FrontEnd.
266 * @param name The display name.
268 * @return zero if this operation is successful, otherwise return -1.
270 int send_display_name (String &name);
274 * @brief Get current ISE type.
276 * @return the current ISE type.
278 TOOLBAR_MODE_T get_current_toolbar_mode (void) const;
281 * @brief Get current ISE icon.
283 * @return the current ISE icon.
285 String get_current_factory_icon (void) const;
288 * @brief Get current helper ISE uuid.
290 * @return the current helper ISE uuid.
292 String get_current_helper_uuid (void) const;
295 * @brief Get current helper ISE name.
297 * @return the current helper ISE name.
299 String get_current_helper_name (void) const;
302 * @brief Get current ISE name.
304 * @return the current ISE name.
306 String get_current_ise_name (void) const;
309 * @brief Set current ISE style.
311 * @param style The current ISE style.
313 void set_current_ise_style (uint32 &style);
316 * @brief Set current ISE name.
318 * @param name The current ISE name.
320 void set_current_ise_name (String &name);
323 * @brief Set current ISE icon.
325 * @param icon The current ISE icon filepath.
327 void set_current_factory_icon (String &icon);
330 * @brief Set current ISE type.
332 * @param mode The current ISE type.
334 void set_current_toolbar_mode (TOOLBAR_MODE_T mode);
337 * @brief Get current ISE size and position.
339 * @param rect It contains ISE size and position.
341 void get_current_ise_geometry (rectinfo &rect);
344 * @brief Update ISE name to IM Control.
346 * @param name The ISE name.
348 void update_ise_name (String &name);
351 * @brief Update ISE style to IM Control.
353 * @param style The ISE style.
355 void update_ise_style (uint32 &style);
358 * @brief Send candidate panel event to IM Control.
360 * @param nType The candidate panel event type.
361 * @param nValue The candidate panel event value.
363 void update_candidate_panel_event (uint32 nType, uint32 nValue);
366 * @brief Send input panel event to IM Control.
368 * @param nType The input panel event type.
369 * @param nValue The input panel event value.
371 void update_input_panel_event (uint32 nType, uint32 nValue);
374 * @brief Update ISE control panel status to IM Control.
376 * @param showed The control panel status.
378 void update_isf_control_status (const bool showed);
381 * @brief Notice helper ISE to focus out.
383 * @param uuid The helper ISE uuid.
385 void focus_out_helper (const String &uuid);
388 * @brief Notice helper ISE to focus in.
390 * @param uuid The helper ISE uuid.
392 void focus_in_helper (const String &uuid);
395 * @brief Notice helper ISE to show window.
397 * @param uuid The helper ISE uuid.
399 void show_helper (const String &uuid);
402 * @brief Notice helper ISE to hide window.
404 * @param uuid The helper ISE uuid.
406 void hide_helper (const String &uuid);
410 * @brief Set default ISE.
412 * @param ise The variable contains the information of default ISE.
414 void set_default_ise (const DEFAULT_ISE_T &ise);
417 * @brief Set whether shared ISE is for all applications.
419 * @param should_shared_ise The indicator for shared ISE.
421 void set_should_shared_ise (const bool should_shared_ise);
424 * @brief Reset keyboard ISE.
426 * @return true if this operation is successful, otherwise return false.
428 bool reset_keyboard_ise (void) const;
431 * @brief Set whether ISE is changed.
433 * @param changing The indicator for ISE changing.
435 void set_ise_changing (bool changing);
439 * @brief Let the focused IMEngineInstance object move the preedit caret.
441 * @param position The new preedit caret position.
442 * @return true if the command was sent correctly.
444 bool move_preedit_caret (uint32 position);
447 * @brief Request help information from the focused IMEngineInstance object.
448 * @return true if the command was sent correctly.
450 bool request_help (void);
453 * @brief Request factory menu from the focused FrontEnd.
454 * @return true if the command was sent correctly.
456 bool request_factory_menu (void);
459 * @brief Change the factory used by the focused IMEngineInstance object.
461 * @param uuid The uuid of the new factory.
462 * @return true if the command was sent correctly.
464 bool change_factory (const String &uuid);
467 * @brief Notice Helper ISE that candidate more window is showed.
468 * @return true if the command was sent correctly.
470 bool candidate_more_window_show (void);
473 * @brief Notice Helper ISE that candidate more window is hidden.
474 * @return true if the command was sent correctly.
476 bool candidate_more_window_hide (void);
479 * @brief Let the focused IMEngineInstance object
480 * select a aux in current aux string.
482 * @param item The index of the selected aux.
483 * @return true if the command was sent correctly.
485 bool select_aux (uint32 item);
488 * @brief Let the focused IMEngineInstance object
489 * select a candidate in current lookup table.
491 * @param item The index of the selected candidate.
492 * @return true if the command was sent correctly.
494 bool select_candidate (uint32 item);
497 * @brief Let the focused IMEngineInstance object
498 * flip the LookupTable to previous page.
499 * @return true if the command was sent correctly.
501 bool lookup_table_page_up (void);
504 * @brief Let the focused IMEngineInstance object
505 * flip the LookupTable to next page.
506 * @return true if the command was sent correctly.
508 bool lookup_table_page_down (void);
511 * @brief Let the focused IMEngineInstance object
512 * update the page size of the LookupTable.
514 * @param size The new page size.
515 * @return true if the command was sent correctly.
517 bool update_lookup_table_page_size (uint32 size);
520 * @brief Let the focused IMEngineInstance object
521 * select a associate in current associate table.
523 * @param item The index of the selected associate.
524 * @return true if the command was sent correctly.
526 bool select_associate (uint32 item);
529 * @brief Let the focused IMEngineInstance object
530 * flip the AssociateTable to previous page.
531 * @return true if the command was sent correctly.
533 bool associate_table_page_up (void);
536 * @brief Let the focused IMEngineInstance object
537 * flip the AssociateTable to next page.
538 * @return true if the command was sent correctly.
540 bool associate_table_page_down (void);
543 * @brief Let the focused IMEngineInstance object
544 * update the page size of the AssociateTable.
546 * @param size The new page size.
547 * @return true if the command was sent correctly.
549 bool update_associate_table_page_size (uint32 size);
552 * @brief Inform helper ISE to update displayed candidate number.
554 * @param size The displayed candidate number.
555 * @return true if the command was sent correctly.
557 bool update_displayed_candidate_number (uint32 size);
560 * @brief Trigger a property of the focused IMEngineInstance object.
562 * @param property The property key to be triggered.
563 * @return true if the command was sent correctly.
565 bool trigger_property (const String &property);
568 * @brief Trigger a property of a Helper object.
570 * @param client The client id of the Helper object.
571 * @param property The property key to be triggered.
572 * @return true if the command was sent correctly.
574 bool trigger_helper_property (int client,
575 const String &property);
578 * @brief Start a stand alone helper.
580 * @param uuid The uuid of the Helper object to be started.
581 * @return true if the command was sent correctly.
583 bool start_helper (const String &uuid);
586 * @brief Stop a stand alone helper.
588 * @param uuid The uuid of the Helper object to be stopped.
589 * @return true if the command was sent correctly.
591 bool stop_helper (const String &uuid);
594 * @brief Let all FrontEnds and Helpers reload configuration.
595 * @return true if the command was sent correctly.
597 bool reload_config (void);
600 * @brief Let all FrontEnds, Helpers and this Panel exit.
601 * @return true if the command was sent correctly.
606 * @brief Filter the events received from panel client.
608 * Corresponding signal will be emitted in this method.
610 * @param fd The file description for connection.
612 * @return true if the command was sent correctly, otherwise return false.
614 bool filter_event (int fd);
617 * @brief Filter the exception events received from panel client.
619 * Corresponding signal will be emitted in this method.
621 * @param fd The file description for connection.
623 * @return true if the command was sent correctly, otherwise return false.
625 bool filter_exception_event (int fd);
628 * @brief Get PanelAgent server fd.
630 * @return the PanelAgent server fd.
632 int get_server_id (void);
635 * @brief Set the common ISE uuid.
639 void set_common_ise_uuid (String &uuid);
642 * @brief Request to update ISE list.
646 void update_ise_list (std::vector<String> &strList);
650 * @brief Signal: Reload configuration.
652 * When a Helper object send a RELOAD_CONFIG event to this Panel,
653 * this signal will be emitted. Panel should reload all configuration here.
655 Connection signal_connect_reload_config (PanelAgentSlotVoid *slot);
658 * @brief Signal: Turn on.
660 * slot prototype: void turn_on (void);
662 Connection signal_connect_turn_on (PanelAgentSlotVoid *slot);
665 * @brief Signal: Turn off.
667 * slot prototype: void turn_off (void);
669 Connection signal_connect_turn_off (PanelAgentSlotVoid *slot);
672 * @brief Signal: Show panel.
674 * slot prototype: void show_panel (void);
676 Connection signal_connect_show_panel (PanelAgentSlotVoid *slot);
679 * @brief Signal: Hide panel.
681 * slot prototype: void hide_panel (void);
683 Connection signal_connect_hide_panel (PanelAgentSlotVoid *slot);
686 * @brief Signal: Update screen.
688 * slot prototype: void update_screen (int screen);
690 Connection signal_connect_update_screen (PanelAgentSlotInt *slot);
693 * @brief Signal: Update spot location.
695 * slot prototype: void update_spot_location (int x, int y, int top_y);
697 Connection signal_connect_update_spot_location (PanelAgentSlotIntIntInt *slot);
700 * @brief Signal: Update factory information.
702 * slot prototype: void update_factory_info (const PanelFactoryInfo &info);
704 Connection signal_connect_update_factory_info (PanelAgentSlotFactoryInfo *slot);
707 * @brief Signal: start default ise.
709 * slot prototype: void start_default_ise (void);
711 Connection signal_connect_start_default_ise (PanelAgentSlotVoid *slot);
714 * @brief Signal: Get the list of keyboard ise name.
716 * slot prototype: bool get_keyboard_ise_list (std::vector<String> &);
718 Connection signal_connect_get_keyboard_ise_list (PanelAgentSlotBoolStringVector *slot);
721 * @brief Signal: Set candidate ui.
723 * slot prototype: void set_candidate_ui (int style, int mode);
725 Connection signal_connect_set_candidate_ui (PanelAgentSlotIntInt *slot);
728 * @brief Signal: Get candidate ui.
730 * slot prototype: void get_candidate_ui (int &style, int &mode);
732 Connection signal_connect_get_candidate_ui (PanelAgentSlotIntInt2 *slot);
735 * @brief Signal: Get candidate window geometry information.
737 * slot prototype: void get_candidate_geometry (rectinfo &info);
739 Connection signal_connect_get_candidate_geometry (PanelAgentSlotRect *slot);
742 * @brief Signal: Get input panel geometry information.
744 * slot prototype: void get_input_panel_geometry (rectinfo &info);
746 Connection signal_connect_get_input_panel_geometry (PanelAgentSlotRect *slot);
749 * @brief Signal: Set candidate position.
751 * slot prototype: void set_candidate_position (int left, int top);
753 Connection signal_connect_set_candidate_position (PanelAgentSlotIntInt *slot);
756 * @brief Signal: Set keyboard ise.
758 * slot prototype: void set_keyboard_ise (int type, const String &ise);
760 Connection signal_connect_set_keyboard_ise (PanelAgentSlotIntString *slot);
763 * @brief Signal: Get keyboard ise.
765 * slot prototype: void get_keyboard_ise (String &ise_name);
767 Connection signal_connect_get_keyboard_ise (PanelAgentSlotString2 *slot);
769 * @brief Signal: Update ise geometry.
771 * slot prototype: void update_ise_geometry (int x, int y, int width, int height);
773 Connection signal_connect_update_ise_geometry (PanelAgentSlotIntIntIntInt *slot);
776 * @brief Signal: Show help.
778 * slot prototype: void show_help (const String &help);
780 Connection signal_connect_show_help (PanelAgentSlotString *slot);
783 * @brief Signal: Show factory menu.
785 * slot prototype: void show_factory_menu (const std::vector <PanelFactoryInfo> &menu);
787 Connection signal_connect_show_factory_menu (PanelAgentSlotFactoryInfoVector *slot);
790 * @brief Signal: Show preedit string.
792 * slot prototype: void show_preedit_string (void):
794 Connection signal_connect_show_preedit_string (PanelAgentSlotVoid *slot);
797 * @brief Signal: Show aux string.
799 * slot prototype: void show_aux_string (void):
801 Connection signal_connect_show_aux_string (PanelAgentSlotVoid *slot);
804 * @brief Signal: Show lookup table.
806 * slot prototype: void show_lookup_table (void):
808 Connection signal_connect_show_lookup_table (PanelAgentSlotVoid *slot);
811 * @brief Signal: Show associate table.
813 * slot prototype: void show_associate_table (void):
815 Connection signal_connect_show_associate_table (PanelAgentSlotVoid *slot);
818 * @brief Signal: Hide preedit string.
820 * slot prototype: void hide_preedit_string (void);
822 Connection signal_connect_hide_preedit_string (PanelAgentSlotVoid *slot);
825 * @brief Signal: Hide aux string.
827 * slot prototype: void hide_aux_string (void);
829 Connection signal_connect_hide_aux_string (PanelAgentSlotVoid *slot);
832 * @brief Signal: Hide lookup table.
834 * slot prototype: void hide_lookup_table (void);
836 Connection signal_connect_hide_lookup_table (PanelAgentSlotVoid *slot);
839 * @brief Signal: Hide associate table.
841 * slot prototype: void hide_associate_table (void);
843 Connection signal_connect_hide_associate_table (PanelAgentSlotVoid *slot);
846 * @brief Signal: Update preedit string.
848 * slot prototype: void update_preedit_string (const String &str, const AttributeList &attrs);
849 * - str -- The UTF-8 encoded string to be displayed in preedit area.
850 * - attrs -- The attributes of the string.
852 Connection signal_connect_update_preedit_string (PanelAgentSlotAttributeString *slot);
855 * @brief Signal: Update preedit caret.
857 * slot prototype: void update_preedit_caret (int caret);
859 Connection signal_connect_update_preedit_caret (PanelAgentSlotInt *slot);
862 * @brief Signal: Update aux string.
864 * slot prototype: void update_aux_string (const String &str, const AttributeList &attrs);
865 * - str -- The UTF-8 encoded string to be displayed in aux area.
866 * - attrs -- The attributes of the string.
868 Connection signal_connect_update_aux_string (PanelAgentSlotAttributeString *slot);
871 * @brief Signal: Update lookup table.
873 * slot prototype: void update_lookup_table (const LookupTable &table);
874 * - table -- The new LookupTable object.
876 Connection signal_connect_update_lookup_table (PanelAgentSlotLookupTable *slot);
879 * @brief Signal: Update associate table.
881 * slot prototype: void update_associate_table (const LookupTable &table);
882 * - table -- The new LookupTable object.
884 Connection signal_connect_update_associate_table (PanelAgentSlotLookupTable *slot);
887 * @brief Signal: Register properties.
889 * Register properties of the focused instance.
891 * slot prototype: void register_properties (const PropertyList &props);
892 * - props -- The properties to be registered.
894 Connection signal_connect_register_properties (PanelAgentSlotPropertyList *slot);
897 * @brief Signal: Update property.
899 * Update a property of the focused instance.
901 * slot prototype: void update_property (const Property &prop);
902 * - prop -- The property to be updated.
904 Connection signal_connect_update_property (PanelAgentSlotProperty *slot);
907 * @brief Signal: Register properties of a helper.
909 * slot prototype: void register_helper_properties (int id, const PropertyList &props);
910 * - id -- The client id of the helper object.
911 * - props -- The properties to be registered.
913 Connection signal_connect_register_helper_properties (PanelAgentSlotIntPropertyList *slot);
916 * @brief Signal: Update helper property.
918 * slot prototype: void update_helper_property (int id, const Property &prop);
919 * - id -- The client id of the helper object.
920 * - prop -- The property to be updated.
922 Connection signal_connect_update_helper_property (PanelAgentSlotIntProperty *slot);
925 * @brief Signal: Register a helper object.
927 * A newly started helper object will send this event to Panel.
929 * slot prototype: register_helper (int id, const HelperInfo &helper);
930 * - id -- The client id of the helper object.
931 * - helper -- The information of the helper object.
933 Connection signal_connect_register_helper (PanelAgentSlotIntHelperInfo *slot);
936 * @brief Signal: Remove a helper object.
938 * If a running helper close its connection to Panel, then this signal will be triggered to
939 * tell Panel to remove all data associated to this helper.
941 * slot prototype: void remove_helper (int id);
942 * - id -- The client id of the helper object to be removed.
944 Connection signal_connect_remove_helper (PanelAgentSlotInt *slot);
947 * @brief Signal: Start an ise with the speficied uuid
949 * slot prototype: void set_active_ise_by_uuid (const String& uuid);
950 * - uuid -- the uuid of the ise object
952 Connection signal_connect_set_active_ise_by_uuid (PanelAgentSlotStringBool *slot);
955 * @brief Signal: Start an ise with the speficied name
957 * slot prototype: void set_active_ise_by_name (const String& name);
958 * - name -- the name of the ise object
960 Connection signal_connect_set_active_ise_by_name (PanelAgentSlotString *slot);
963 * @brief Signal: Focus in panel.
965 * slot prototype: void focus_in (void);
967 Connection signal_connect_focus_in (PanelAgentSlotVoid *slot);
970 * @brief Signal: Focus out panel.
972 * slot prototype: void focus_out (void);
974 Connection signal_connect_focus_out (PanelAgentSlotVoid *slot);
977 * @brief Signal: Expand candidate panel.
979 * slot prototype: void expand_candidate (void);
981 Connection signal_connect_expand_candidate (PanelAgentSlotVoid *slot);
984 * @brief Signal: Contract candidate panel.
986 * slot prototype: void contract_candidate (void);
988 Connection signal_connect_contract_candidate (PanelAgentSlotVoid *slot);
991 * @brief Signal: Get the list of ise name.
993 * slot prototype: bool get_ise_list (std::vector<String> &);
995 Connection signal_connect_get_ise_list (PanelAgentSlotBoolStringVector *slot);
998 * @brief Signal: Get the list of selected language name.
1000 * slot prototype: void get_language_list (std::vector<String> &);
1002 Connection signal_connect_get_language_list (PanelAgentSlotStringVector *slot);
1005 * @brief Signal: Get the all languages name.
1007 * slot prototype: void get_all_language (std::vector<String> &);
1009 Connection signal_connect_get_all_language (PanelAgentSlotStringVector *slot);
1011 * @brief Signal: Get the language list of a specified ise.
1013 * slot prototype: void get_ise_language (char *, std::vector<String> &);
1015 Connection signal_connect_get_ise_language (PanelAgentSlotStrStringVector *slot);
1018 * @brief Signal: Set the isf language.
1020 * slot prototype: void get_ise_language (char *, std::vector<String> &);
1022 Connection signal_connect_set_isf_language (PanelAgentSlotString *slot);
1025 * @brief Signal: Get the ise information by uuid.
1027 * slot prototype: bool get_ise_info_by_uuid (const String &, ISE_INFO &);
1029 Connection signal_connect_get_ise_info_by_uuid (PanelAgentSlotStringISEINFO *slot);
1032 * @brief Signal: Get the ise information by name.
1034 * slot prototype: bool get_ise_info_by_name (const String &, ISE_INFO &);
1036 Connection signal_connect_get_ise_info_by_name (PanelAgentSlotStringISEINFO *slot);
1039 * @brief Signal: send key event in panel.
1041 * slot prototype: void send_key_event (const KeyEvent &);
1043 Connection signal_connect_send_key_event (PanelAgentSlotKeyEvent *slot);
1046 * @brief Signal: A transaction is started.
1048 * This signal infers that the Panel should disable update before this transaction finishes.
1050 * slot prototype: void signal_connect_transaction_start (void);
1052 Connection signal_connect_transaction_start (PanelAgentSlotVoid *slot);
1055 * @brief Signal: Accept connection for this PanelAgent.
1057 * slot prototype: void accept_connection (int fd);
1058 * - fd -- the file description for connection
1060 Connection signal_connect_accept_connection (PanelAgentSlotInt *slot);
1063 * @brief Signal: Close connection for this PanelAgent.
1065 * slot prototype: void close_connection (int fd);
1066 * - fd -- the file description for connection
1068 Connection signal_connect_close_connection (PanelAgentSlotInt *slot);
1071 * @brief Signal: Exit application for this PanelAgent.
1073 * slot prototype: void app_exit (void);
1075 Connection signal_connect_exit (PanelAgentSlotVoid *slot);
1078 * @brief Signal: A transaction is finished.
1080 * This signal will get emitted when a transaction is finished. This implys to re-enable
1083 * slot prototype: void signal_connect_transaction_end (void);
1085 Connection signal_connect_transaction_end (PanelAgentSlotVoid *slot);
1088 * @brief Signal: Lock the exclusive lock for this PanelAgent.
1090 * The panel program should provide a thread lock and hook a slot into this signal to lock it.
1091 * PanelAgent will use this lock to ensure the data integrity.
1093 * slot prototype: void lock (void);
1095 Connection signal_connect_lock (PanelAgentSlotVoid *slot);
1098 * @brief Signal: Unlock the exclusive lock for this PanelAgent.
1100 * slot prototype: void unlock (void);
1102 Connection signal_connect_unlock (PanelAgentSlotVoid *slot);
1105 * @brief Signal: The input context of ISE is changed.
1107 * slot prototype: void update_input_context (int type, int value);
1109 Connection signal_connect_update_input_context (PanelAgentSlotIntInt *slot);
1114 } /* namespace scim */
1116 #endif /* __SCIM_PANEL_AGENT_H */
1119 vi:ts=4:nowrap:ai:expandtab