Add signal, slot to Infomanager for restarting IME in on-demand mode
[platform/core/uifw/isf.git] / ism / src / isf_info_manager.h
1 /**
2  * @file isf_info_manager.h
3  * @brief Defines scim::InfoManager and their related types.
4  *
5  * scim::InfoManager is a class used to write Panel daemons.
6  * issues.
7  */
8
9 /* ISF is based on SCIM 1.4.7 and extended for supporting more mobile fitable. */
10
11 /*
12  * Smart Common Input Method
13  *
14  * Copyright (c) 2004-2005 James Su <suzhe@tsinghua.org.cn>
15  * Copyright (c) 2012-2016 Samsung Electronics Co., Ltd.
16  *
17  *
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.
22  *
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.
27  *
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
32  *
33  * Modifications by Samsung Electronics Co., Ltd.
34  * 1. Add new signals
35  *    a. m_signal_set_keyboard_ise and m_signal_get_keyboard_ise
36  *    b. m_signal_focus_in and m_signal_focus_out
37  *    c. m_signal_expand_candidate, m_signal_contract_candidate and m_signal_set_candidate_ui
38  *    d. m_signal_get_ise_list, m_signal_get_keyboard_ise_list, m_signal_update_ise_geometry and m_signal_get_ise_information
39  *    e. m_signal_set_active_ise_by_uuid and m_signal_get_ise_info_by_uuid
40  *    f. m_signal_accept_connection, m_signal_close_connection and m_signal_exit
41  * 2. Add new interface APIs in PanelClient class
42  *    a. get_helper_manager_id (), has_helper_manager_pending_event () and filter_helper_manager_event ()
43  *    b. update_candidate_panel_event (), update_input_panel_event () and select_aux ()
44  *    c. candidate_more_window_show () and candidate_more_window_hide ()
45  *    d. update_displayed_candidate_number () and update_candidate_item_layout ()
46  *    e. stop_helper (), send_longpress_event () and update_ise_list ()
47  *    f. filter_event (), filter_exception_event () and get_server_id ()
48  * 3. Donot use thread to receive message
49  * 4. Monitor socket frontend for self-recovery function
50  *
51  * $Id: scim_panel_agent.h,v 1.2 2005/06/11 14:50:31 suzhe Exp $
52  */
53
54 #ifndef __ISF_INFO_MANAGER_H
55 #define __ISF_INFO_MANAGER_H
56
57 #include <scim_panel_common.h>
58 #ifndef _OUT_
59 #define _OUT_
60 #endif
61
62 namespace scim
63 {
64
65 enum ClientType {
66     UNKNOWN_CLIENT,
67     FRONTEND_CLIENT,
68     FRONTEND_ACT_CLIENT,
69     HELPER_CLIENT,
70     HELPER_ACT_CLIENT,
71     IMCONTROL_ACT_CLIENT,
72     IMCONTROL_CLIENT,
73     REMOTEINPUT_ACT_CLIENT,
74     REMOTEINPUT_CLIENT,
75     CONFIG_CLIENT
76 };
77
78 struct ClientInfo {
79     uint32       key;
80     ClientType   type;
81 };
82
83 /**
84  * @addtogroup Panel
85  * @ingroup InputServiceFramework
86  * The accessory classes to help develop Panel daemons and FrontEnds
87  * which need to communicate with Panel daemons.
88  * @{
89  */
90
91 typedef Slot0<void>
92 InfoManagerSlotVoid;
93
94 typedef Slot1<void, int>
95 InfoManagerSlotInt;
96
97 typedef Slot1<void, int&>
98 InfoManagerSlotInt2;
99
100 typedef Slot1<void, const String&>
101 InfoManagerSlotString;
102
103 typedef Slot2<void, String&, String&>
104 InfoManagerSlotString2;
105
106 typedef Slot2<void, int, const String&>
107 InfoManagerSlotIntString;
108
109 typedef Slot1<void, const PanelFactoryInfo&>
110 InfoManagerSlotFactoryInfo;
111
112 typedef Slot1<void, const std::vector <PanelFactoryInfo> &>
113 InfoManagerSlotFactoryInfoVector;
114
115 typedef Slot1<void, const LookupTable&>
116 InfoManagerSlotLookupTable;
117
118 typedef Slot1<void, const Property&>
119 InfoManagerSlotProperty;
120
121 typedef Slot1<void, const PropertyList&>
122 InfoManagerSlotPropertyList;
123
124 typedef Slot2<void, int, int>
125 InfoManagerSlotIntInt;
126
127 typedef Slot2<void, int&, int&>
128 InfoManagerSlotIntInt2;
129
130 typedef Slot3<void, int, int, int>
131 InfoManagerSlotIntIntInt;
132
133 typedef Slot3<void, const String &, const String &, const String &>
134 InfoManagerSlotString3;
135
136 typedef Slot4<void, int, int, int, int>
137 InfoManagerSlotIntIntIntInt;
138
139 typedef Slot2<void, int, const Property&>
140 InfoManagerSlotIntProperty;
141
142 typedef Slot2<void, int, const PropertyList&>
143 InfoManagerSlotIntPropertyList;
144
145 typedef Slot2<void, int, const HelperInfo&>
146 InfoManagerSlotIntHelperInfo;
147
148 typedef Slot2<void, const String&, const AttributeList&>
149 InfoManagerSlotAttributeString;
150
151 typedef Slot3<void, const String&, const AttributeList&, int>
152 InfoManagerSlotAttributeStringInt;
153
154 typedef Slot5<void, int, int, const String&, const String&, const AttributeList&>
155 InfoManagerSlotAttributeInt2String2;
156
157 typedef Slot1<void, std::vector<String> &>
158 InfoManagerSlotStringVector;
159
160 typedef Slot1<bool, HELPER_ISE_INFO&>
161 InfoManagerSlotBoolHelperInfo;
162
163 typedef Slot1<bool, std::vector<String> &>
164 InfoManagerSlotBoolStringVector;
165
166 typedef Slot2<void, char*, std::vector<String> &>
167 InfoManagerSlotStrStringVector;
168
169 typedef Slot2<bool, const String&, ISE_INFO&>
170 InfoManagerSlotStringISEINFO;
171
172 typedef Slot2<bool, String, int&>
173 InfoManagerSlotStringInt;
174
175 typedef Slot1<void, const KeyEvent&>
176 InfoManagerSlotKeyEvent;
177
178 typedef Slot1<void, struct rectinfo&>
179 InfoManagerSlotRect;
180
181 typedef Slot2<void, const String&, bool>
182 InfoManagerSlotStringBool;
183
184 typedef Slot6<bool, String, String&, String&, int&, int&, String&>
185 InfoManagerSlotBoolString4int2;
186
187 typedef Slot2<void, int, struct rectinfo&>
188 InfoManagerSlotIntRect;
189
190 typedef Slot2<bool, int, String>
191 InfoManagerSlotIntString2;
192
193 typedef Slot1<bool, String>
194 InfoManagerSlotBoolString;
195
196 typedef Slot1<void, bool>
197 InfoManagerSlotBool;
198
199 /**
200  * @brief The class to implement all socket protocol in Panel.
201  *
202  * This class acts like a stand alone SocketServer.
203  * It has its own dedicated main loop, and will be blocked when run () is called.
204  * So run () must be called within a separated thread, in order to not block
205  * the main loop of the Panel program itself.
206  *
207  * Before calling run (), the panel must hook the callback functions to the
208  * corresponding signals.
209  *
210  * Note that, there are two special signals: lock(void) and unlock(void). These
211  * two signals are used to provide a thread lock to InfoManager, so that InfoManager
212  * can run correctly within a multi-threading Panel program.
213  */
214 class EXAPI InfoManager
215 {
216     class InfoManagerImpl;
217     InfoManagerImpl* m_impl;
218
219     InfoManager (const HelperAgent&);
220     const InfoManager& operator = (const HelperAgent&);
221
222 public:
223     InfoManager ();
224     ~InfoManager ();
225
226     /**
227      * @brief Initialize this InfoManager.
228      *
229      * @param config The name of the config module to be used by Helpers.
230      * @param display The name of display, on which the Panel should run.
231      * @param resident If this is true then this InfoManager will keep running
232      *                 even if there is no more client connected.
233      *
234      * @return true if the InfoManager is initialized correctly and ready to run.
235      */
236     bool initialize (InfoManager* info_manager, const ConfigPointer& config, const String& display, bool resident = false);
237
238     /**
239      * @brief Check if this InfoManager is initialized correctly and ready to run.
240      *
241      * @return true if this InfoManager is ready to run.
242      */
243     bool valid (void) const;
244
245     /**
246      * @brief Stop this InfoManager.
247      */
248     void stop (void);
249
250 public:
251
252     const ClientInfo& socket_get_client_info (int client) const;
253
254     /**
255      * @brief Get current ISE type.
256      *
257      * @return the current ISE type.
258      */
259     TOOLBAR_MODE_T get_current_toolbar_mode (void) const;
260
261     /**
262      * @brief Get current helper ISE uuid.
263      *
264      * @return the current helper ISE uuid.
265      */
266     String get_current_helper_uuid (void) const;
267
268     /**
269      * @brief Get current ISE name.
270      *
271      * @return the current ISE name.
272      */
273     String get_current_ise_name (void) const;
274
275     /**
276      * @brief Set current ISE name.
277      *
278      * @param name The current ISE name.
279      */
280     void set_current_ise_name (String& name);
281
282     /**
283      * @brief Set current ISE type.
284      *
285      * @param mode The current ISE type.
286      */
287     void set_current_toolbar_mode (TOOLBAR_MODE_T mode);
288
289     /**
290      * @brief Set current helper ISE option.
291      *
292      * @param mode The current helper ISE option.
293      */
294     void set_current_helper_option (uint32 option);
295     /**
296      * @brief Get current ISE size and position.
297      *
298      * @param rect It contains ISE size and position.
299      */
300     void get_current_ise_geometry (rectinfo& rect);
301
302     /**
303      * @brief Send candidate panel event to IM Control.
304      *
305      * @param nType  The candidate panel event type.
306      * @param nValue The candidate panel event value.
307      */
308     void update_candidate_panel_event (uint32 nType, uint32 nValue);
309
310     /**
311      * @brief Send input panel event to IM Control.
312      *
313      * @param nType  The input panel event type.
314      * @param nValue The input panel event value.
315      */
316     void update_input_panel_event (uint32 nType, uint32 nValue);
317
318     /**
319      * @brief Notice helper ISE to focus out.
320      *
321      * @param uuid The helper ISE uuid.
322      */
323     void focus_out_helper (const String& uuid);
324
325     /**
326      * @brief Notice helper ISE to focus in.
327      *
328      * @param uuid The helper ISE uuid.
329      */
330     void focus_in_helper (const String& uuid);
331
332     /**
333      * @brief Notice helper ISE to show window.
334      *
335      * @param uuid The helper ISE uuid.
336      */
337     bool show_helper (const String& uuid);
338
339     /**
340      * @brief Notice helper ISE to hide window.
341      *
342      * @param uuid The helper ISE uuid.
343      */
344     void hide_helper (const String& uuid);
345
346
347     /**
348      * @brief Set default ISE.
349      *
350      * @param ise The variable contains the information of default ISE.
351      */
352     void set_default_ise (const DEFAULT_ISE_T& ise);
353
354     /**
355      * @brief Set whether shared ISE is for all applications.
356      *
357      * @param should_shared_ise The indicator for shared ISE.
358      */
359     void set_should_shared_ise (const bool should_shared_ise);
360
361     /**
362      * @brief Request helper ISE to show window again.
363      */
364     void reshow_input_panel ();
365
366
367 public:
368     /**
369      * @brief Let the focused IMEngineInstance object move the preedit caret.
370      *
371      * @param position The new preedit caret position.
372      * @return true if the command was sent correctly.
373      */
374     bool move_preedit_caret (uint32         position);
375
376 #if 0
377     /**
378      * @brief Request help information from the focused IMEngineInstance object.
379      * @return true if the command was sent correctly.
380      */
381     bool request_help (void);
382
383     /**
384      * @brief Request factory menu from the focused FrontEnd.
385      * @return true if the command was sent correctly.
386      */
387     bool request_factory_menu (void);
388 #endif
389
390     /**
391      * @brief Change the factory used by the focused IMEngineInstance object.
392      *
393      * @param uuid The uuid of the new factory.
394      * @return true if the command was sent correctly.
395      */
396     bool change_factory (const String&  uuid);
397
398     /**
399      * @brief Notice Helper ISE that candidate more window is showed.
400      * @return true if the command was sent correctly.
401      */
402     bool candidate_more_window_show (void);
403
404     /**
405      * @brief Notice Helper ISE that candidate more window is hidden.
406      * @return true if the command was sent correctly.
407      */
408     bool candidate_more_window_hide (void);
409
410     /**
411      * @brief Notice Helper ISE that show candidate.
412      * @return true if the command was sent correctly.
413      */
414     bool helper_candidate_show (void);
415
416     /**
417      * @brief Notice Helper ISE that hide candidate.
418      * @return true if the command was sent correctly.
419      */
420     bool helper_candidate_hide (void);
421
422     /**
423      * @brief Update helper lookup table.
424      * @return true if the command was sent correctly.
425      */
426     bool update_helper_lookup_table (const LookupTable& table);
427
428     /**
429      * @brief Let the focused IMEngineInstance object
430      *        select a aux in current aux string.
431      *
432      * @param item The index of the selected aux.
433      * @return true if the command was sent correctly.
434      */
435     bool select_aux (uint32         item);
436
437     /**
438      * @brief Let the focused IMEngineInstance object
439      *        select a candidate in current lookup table.
440      *
441      * @param item The index of the selected candidate.
442      * @return true if the command was sent correctly.
443      */
444     bool select_candidate (uint32         item);
445
446     /**
447      * @brief Let the focused IMEngineInstance object
448      *        flip the LookupTable to previous page.
449      * @return true if the command was sent correctly.
450      */
451     bool lookup_table_page_up (void);
452
453     /**
454      * @brief Let the focused IMEngineInstance object
455      *        flip the LookupTable to next page.
456      * @return true if the command was sent correctly.
457      */
458     bool lookup_table_page_down (void);
459
460     /**
461      * @brief Let the focused IMEngineInstance object
462      *        update the page size of the LookupTable.
463      *
464      * @param size The new page size.
465      * @return true if the command was sent correctly.
466      */
467     bool update_lookup_table_page_size (uint32         size);
468
469     /**
470      * @brief Let the focused IMEngineInstance object
471      *        update candidate items layout.
472      *
473      * @param row_items The items of each row.
474      * @return true if the command was sent correctly.
475      */
476     bool update_candidate_item_layout (const std::vector<uint32>& row_items);
477
478     /**
479      * @brief Let the focused IMEngineInstance object
480      *        select a associate in current associate table.
481      *
482      * @param item The index of the selected associate.
483      * @return true if the command was sent correctly.
484      */
485     bool select_associate (uint32         item);
486
487     /**
488      * @brief Let the focused IMEngineInstance object
489      *        flip the AssociateTable to previous page.
490      * @return true if the command was sent correctly.
491      */
492     bool associate_table_page_up (void);
493
494     /**
495      * @brief Let the focused IMEngineInstance object
496      *        flip the AssociateTable to next page.
497      * @return true if the command was sent correctly.
498      */
499     bool associate_table_page_down (void);
500
501     /**
502      * @brief Let the focused IMEngineInstance object
503      *        update the page size of the AssociateTable.
504      *
505      * @param size The new page size.
506      * @return true if the command was sent correctly.
507      */
508     bool update_associate_table_page_size (uint32       size);
509
510     /**
511      * @brief Inform helper ISE to update displayed candidate number.
512      *
513      * @param size The displayed candidate number.
514      * @return true if the command was sent correctly.
515      */
516     bool update_displayed_candidate_number (uint32      size);
517
518     /**
519      * @brief Trigger a property of the focused IMEngineInstance object.
520      *
521      * @param property The property key to be triggered.
522      * @return true if the command was sent correctly.
523      */
524     bool trigger_property (const String&  property);
525
526     /**
527      * @brief Start a stand alone helper.
528      *
529      * @param uuid The uuid of the Helper object to be started.
530      * @return true if the command was sent correctly.
531      */
532     bool start_helper (const String&  uuid);
533
534     /**
535      * @brief Stop a stand alone helper.
536      *
537      * @param uuid The uuid of the Helper object to be stopped.
538      * @return true if the command was sent correctly.
539      */
540     bool stop_helper (const String&  uuid);
541
542     /**
543      * @brief Let all FrontEnds and Helpers reload configuration.
544      * @return true if the command was sent correctly.
545      */
546     void reload_config                  (void);
547
548     /**
549      * @brief Let all FrontEnds, Helpers and this Panel exit.
550      * @return true if the command was sent correctly.
551      */
552     bool exit (void);
553
554     /**
555      * @brief Send candidate longpress event to ISE.
556      *
557      * @param type The candidate object type.
558      * @param index The candidate object index.
559      *
560      * @return none.
561      */
562     void send_longpress_event (int type, int index);
563
564     /**
565      * @brief Request to update ISE list.
566      *
567      * @return none.
568      */
569     void update_ise_list (std::vector<String>& strList);
570
571
572     bool remoteinput_update_preedit_string (WideString str, AttributeList &attrs, uint32 caret);
573
574     bool remoteinput_commit_string (const WideString &str);
575
576     bool remoteinput_send_key_event (const KeyEvent &key);
577
578     bool remoteinput_forward_key_event (const KeyEvent &key);
579
580     bool remoteinput_send_input_message (int client_id, char*  buf, size_t  len);
581
582     bool remoteinput_delete_surrounding_text (uint32 offset, uint32 len);
583
584     void remoteinput_send_surrounding_text (const char* text, uint32 cursor);
585
586     void remoteinput_callback_focus_in (void);
587
588     void remoteinput_callback_focus_out (void);
589
590     void remoteinput_callback_entry_metadata (uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled);
591
592     void remoteinput_callback_surrounding_text (String text, uint32 cursor);
593
594     void remoteinput_callback_input_resource (uint32 input_resource);
595
596 /////////////////////////////////Message function begin/////////////////////////////////////////
597
598 //ISM_TRANS_CMD_PANEL_RESET_KEYBOARD_ISE
599     /**
600      * @brief Reset keyboard ISE.
601      *
602      * @return true if this operation is successful, otherwise return false.
603      */
604     bool reset_keyboard_ise (void);
605
606     //ISM_TRANS_CMD_SHOW_ISF_CONTROL
607     void show_isf_panel (int client_id);
608
609     //ISM_TRANS_CMD_HIDE_ISF_CONTROL
610     void hide_isf_panel (int client_id);
611
612     //ISM_TRANS_CMD_SHOW_ISE_PANEL
613     void show_ise_panel (int client_id, uint32 client, uint32 context, char*   data, size_t  len);
614
615     //ISM_TRANS_CMD_HIDE_ISE_PANEL
616     void hide_ise_panel (int client_id, uint32 client, uint32 context);
617
618     //ISM_TRANS_CMD_HIDE_ISE_PANEL from ISF control
619     void hide_helper_ise (void);
620
621     //ISM_TRANS_CMD_PRELAUNCH_ISE
622     void prelaunch_helper_ise (void);
623
624     //SCIM_TRANS_CMD_PROCESS_KEY_EVENT
625     bool process_key_event (KeyEvent& key, uint32 serial);
626
627     //ISM_TRANS_CMD_GET_ACTIVE_ISE_GEOMETRY
628     void get_input_panel_geometry (int client_id, _OUT_ struct rectinfo& info);
629
630     //ISM_TRANS_CMD_GET_CANDIDATE_GEOMETRY
631     void get_candidate_window_geometry (int client_id, _OUT_ struct rectinfo& info);
632
633     //ISM_TRANS_CMD_GET_ISE_LANGUAGE_LOCALE
634     void get_ise_language_locale (int client_id, _OUT_ char** data, _OUT_ size_t& len);
635
636     //ISM_TRANS_CMD_SET_LAYOUT
637     void set_ise_layout (int client_id, uint32 layout);
638
639     //ISM_TRANS_CMD_SET_INPUT_MODE
640     void set_ise_input_mode (int client_id, uint32 input_mode);
641
642     //ISM_TRANS_CMD_SET_INPUT_HINT
643     void set_ise_input_hint (int client_id, uint32 input_hint);
644
645     //ISM_TRANS_CMD_UPDATE_BIDI_DIRECTION
646     void update_ise_bidi_direction (int client_id, uint32 bidi_direction);
647
648     //ISM_TRANS_CMD_SET_ISE_LANGUAGE
649     void set_ise_language (int client_id, uint32 language);
650
651     //ISM_TRANS_CMD_SET_ISE_IMDATA
652     void set_ise_imdata (int client_id, const char*   imdata, size_t  len);
653
654     //ISM_TRANS_CMD_GET_ISE_IMDATA
655     bool get_ise_imdata (int client_id, _OUT_ char** imdata, _OUT_ size_t& len);
656
657     //ISM_TRANS_CMD_GET_LAYOUT
658     bool get_ise_layout (int client_id, _OUT_ uint32& layout);
659
660     //ISM_TRANS_CMD_GET_ISE_STATE
661     void get_ise_state (int client_id, _OUT_ int& state);
662
663     //ISM_TRANS_CMD_GET_ACTIVE_ISE
664     void get_active_ise (int client_id, _OUT_ String& default_uuid);
665
666     //ISM_TRANS_CMD_GET_ISE_LIST
667     void get_ise_list (int client_id, _OUT_ std::vector<String>& strlist);
668
669     //ISM_TRANS_CMD_GET_ALL_HELPER_ISE_INFO
670     void get_all_helper_ise_info (int client_id, _OUT_ HELPER_ISE_INFO& info);
671
672     //ISM_TRANS_CMD_SET_ENABLE_HELPER_ISE_INFO
673     //reply SCIM_TRANS_CMD_FAIL or SCIM_TRANS_CMD_OK
674     void set_enable_helper_ise_info (int client_id, String appid, uint32 is_enabled);
675
676     //ISM_TRANS_CMD_SHOW_HELPER_ISE_LIST
677     //reply SCIM_TRANS_CMD_FAIL or SCIM_TRANS_CMD_OK
678     void show_helper_ise_list (int client_id);
679
680     //ISM_TRANS_CMD_SHOW_HELPER_ISE_SELECTOR
681     //reply SCIM_TRANS_CMD_FAIL or SCIM_TRANS_CMD_OK
682     void show_helper_ise_selector (int client_id);
683
684     //ISM_TRANS_CMD_IS_HELPER_ISE_ENABLED
685     //reply
686     void is_helper_ise_enabled (int client_id, String strAppid, _OUT_ uint32& nEnabled);
687
688     //ISM_TRANS_CMD_GET_ISE_INFORMATION
689     void get_ise_information (int client_id, String strUuid, _OUT_ String& strName, _OUT_ String& strLanguage,
690                               _OUT_ int& nType, _OUT_ int& nOption, _OUT_ String& strModuleName);
691
692     //ISM_TRANS_CMD_RESET_ISE_OPTION
693     //reply SCIM_TRANS_CMD_OK
694     bool reset_ise_option (int client_id);
695
696     //ISM_TRANS_CMD_SET_ACTIVE_ISE_BY_UUID
697     //reply
698     bool set_active_ise_by_uuid (int client_id, char*  buf, size_t  len);
699
700     //ISM_TRANS_CMD_SET_INITIAL_ISE_BY_UUID
701     //reply SCIM_TRANS_CMD_FAIL or SCIM_TRANS_CMD_OK
702     void set_initial_ise_by_uuid (int client_id, char*  buf, size_t  len);
703
704     //ISM_TRANS_CMD_SET_RETURN_KEY_TYPE
705     void set_ise_return_key_type (int client_id, uint32 type);
706
707     //ISM_TRANS_CMD_GET_RETURN_KEY_TYPE
708     //reply
709     bool get_ise_return_key_type (int client_id, _OUT_ uint32& type);
710
711     //ISM_TRANS_CMD_SET_RETURN_KEY_DISABLE
712     void set_ise_return_key_disable (int client_id, uint32 disabled);
713
714     //ISM_TRANS_CMD_GET_RETURN_KEY_DISABLE
715     bool get_ise_return_key_disable (int client_id, _OUT_ uint32& disabled);
716
717     //ISM_TRANS_CMD_SET_CAPS_MODE
718     void set_ise_caps_mode (int client_id, uint32 mode);
719
720     //ISM_TRANS_CMD_SEND_WILL_SHOW_ACK
721     void will_show_ack (int client_id);
722
723     //ISM_TRANS_CMD_SEND_WILL_HIDE_ACK
724     void will_hide_ack (int client_id);
725
726     //ISM_TRANS_CMD_RESET_DEFAULT_ISE
727     void reset_default_ise (int client_id);
728
729     //ISM_TRANS_CMD_SET_HARDWARE_KEYBOARD_MODE
730     void set_keyboard_mode (int client_id, uint32 mode);
731
732     //ISM_TRANS_CMD_SEND_CANDIDATE_WILL_HIDE_ACK
733     void candidate_will_hide_ack (int client_id);
734
735     //ISM_TRANS_CMD_GET_ACTIVE_HELPER_OPTION
736     void get_active_helper_option (int client_id, _OUT_ uint32& option);
737
738     //ISM_TRANS_CMD_SHOW_ISE_OPTION_WINDOW
739     void show_ise_option_window (int client_id);
740
741     //ISM_TRANS_CMD_RESUME_ISE_OPTION_WINDOW
742     void resume_ise_option_window (int client_id);
743
744     //ISM_TRANS_CMD_SET_KEYBOARD_MODE
745     void set_ise_keyboard_mode (int client_id, uint32 mode);
746
747     //ISM_TRANS_CMD_SET_PREDICTION_HINT
748     void set_prediction_hint (int client_id, String prediction_hint);
749
750     //ISM_TRANS_CMD_SET_MIME_TYPE
751     void set_ise_mime_type (int client_id, String mime_type);
752
753     //ISM_TRANS_CMD_FINALIZE_CONTENT
754     void finalize_content(int client_id, String text, uint32 cursor_pos);
755
756     //ISM_TRANS_CMD_SET_PREDICTION_HINT_DATA
757     void set_prediction_hint_data (int client_id, String key, String value);
758
759     //ISM_TRANS_CMD_SET_OPTIMIZATION_HINT
760     void set_optimization_hint(int client_id, uint32 hint);
761
762     //ISM_TRANS_CMD_EXPAND_CANDIDATE
763     void expand_candidate ();
764
765     //ISM_TRANS_CMD_CONTRACT_CANDIDATE
766     void contract_candidate ();
767
768     //ISM_TRANS_CMD_GET_RECENT_ISE_GEOMETRY
769     void get_recent_ise_geometry (int client_id, uint32 angle, _OUT_ struct rectinfo& info);
770
771     //ISM_TRANS_CMD_REGISTER_PANEL_CLIENT
772     void register_panel_client (uint32 client_id, uint32 id);
773
774     //SCIM_TRANS_CMD_PANEL_REGISTER_INPUT_CONTEXT
775     void register_input_context (uint32 client_id, uint32 context, String  uuid);
776
777     //SCIM_TRANS_CMD_PANEL_REMOVE_INPUT_CONTEXT
778     void remove_input_context (uint32 client_id, uint32 context);
779
780     //SCIM_TRANS_CMD_PANEL_RESET_INPUT_CONTEXT
781     void socket_reset_input_context (int client_id, uint32 context);
782
783     //SCIM_TRANS_CMD_FOCUS_IN
784     void focus_in (int client_id, uint32 context,  String  uuid);
785
786     //SCIM_TRANS_CMD_FOCUS_OUT
787     void focus_out (int client_id, uint32 context);
788
789     //ISM_TRANS_CMD_PROCESS_INPUT_DEVICE_EVENT
790     bool process_input_device_event(int client_id, uint32 type, const char *data, size_t len, _OUT_ uint32& result);
791
792     //ISM_TRANS_CMD_TURN_ON_LOG
793     void socket_turn_on_log (uint32 isOn);
794
795     //SCIM_TRANS_CMD_PANEL_TURN_ON
796     void socket_turn_on (void);
797
798     //SCIM_TRANS_CMD_PANEL_TURN_OFF
799     void socket_turn_off (void);
800
801     //SCIM_TRANS_CMD_UPDATE_SCREEN
802     void socket_update_screen (int client_id, uint32 num);
803
804     //SCIM_TRANS_CMD_UPDATE_SPOT_LOCATION
805     void socket_update_spot_location (uint32 x, uint32 y, uint32 top_y);
806
807     //ISM_TRANS_CMD_UPDATE_CURSOR_POSITION
808     void socket_update_cursor_position (uint32 cursor_pos);
809
810     //ISM_TRANS_CMD_UPDATE_SURROUNDING_TEXT
811     void socket_update_surrounding_text (String text, uint32 cursor);
812
813     //ISM_TRANS_CMD_UPDATE_SELECTION
814     void socket_update_selection (String text);
815
816     //SCIM_TRANS_CMD_PANEL_UPDATE_FACTORY_INFO
817     void socket_update_factory_info (PanelFactoryInfo& info);
818
819     //SCIM_TRANS_CMD_PANEL_SHOW_HELP
820     void socket_show_help (String help);
821
822     //SCIM_TRANS_CMD_PANEL_SHOW_FACTORY_MENU
823     void socket_show_factory_menu (std::vector <PanelFactoryInfo>& vec);
824
825     //SCIM_TRANS_CMD_SHOW_PREEDIT_STRING
826     void socket_show_preedit_string (void);
827
828     //SCIM_TRANS_CMD_SHOW_AUX_STRING
829     void socket_show_aux_string (void);
830
831     //SCIM_TRANS_CMD_SHOW_LOOKUP_TABLE
832     void socket_show_lookup_table (void);
833
834     //ISM_TRANS_CMD_SHOW_ASSOCIATE_TABLE
835     void socket_show_associate_table (void);
836
837     //SCIM_TRANS_CMD_HIDE_PREEDIT_STRING
838     void socket_hide_preedit_string (void);
839
840     //SCIM_TRANS_CMD_HIDE_AUX_STRING
841     void socket_hide_aux_string (void);
842
843     //SCIM_TRANS_CMD_HIDE_LOOKUP_TABLE
844     void socket_hide_lookup_table (void);
845
846     //ISM_TRANS_CMD_HIDE_ASSOCIATE_TABLE
847     void socket_hide_associate_table (void);
848
849     //SCIM_TRANS_CMD_UPDATE_PREEDIT_STRING
850     void socket_update_preedit_string (String& str, const AttributeList& attrs, uint32 caret);
851
852     //SCIM_TRANS_CMD_UPDATE_PREEDIT_CARET
853     void socket_update_preedit_caret (uint32 caret);
854
855     //SCIM_TRANS_CMD_UPDATE_AUX_STRING
856     void socket_update_aux_string (String& str, const AttributeList& attrs);
857
858     //ISM_TRANS_CMD_RECAPTURE_STRING
859     void socket_recapture_string (int offset, int len, String& preedit, String& commit, const AttributeList& attrs);
860
861     //SCIM_TRANS_CMD_UPDATE_LOOKUP_TABLE
862     void socket_update_lookup_table (const LookupTable& table);
863
864     //ISM_TRANS_CMD_UPDATE_ASSOCIATE_TABLE
865     void socket_update_associate_table (const LookupTable& table);
866
867     //SCIM_TRANS_CMD_REGISTER_PROPERTIES
868     void socket_register_properties (const PropertyList& properties);
869
870     //SCIM_TRANS_CMD_UPDATE_PROPERTY
871     void socket_update_property (const Property& property);
872
873     //ISM_TRANS_CMD_GET_KEYBOARD_ISE_LIST
874     void socket_get_keyboard_ise_list (String& uuid);
875
876     //ISM_TRANS_CMD_SET_CANDIDATE_UI
877     void socket_set_candidate_ui (uint32 portrait_line, uint32 mode);
878
879     //ISM_TRANS_CMD_GET_CANDIDATE_UI
880     void socket_get_candidate_ui (String uuid);
881
882     //ISM_TRANS_CMD_SET_CANDIDATE_POSITION
883     void socket_set_candidate_position (uint32 left, uint32 top);
884
885     //ISM_TRANS_CMD_HIDE_CANDIDATE
886     void socket_hide_candidate (void);
887
888     //ISM_TRANS_CMD_GET_CANDIDATE_GEOMETRY
889     void socket_get_candidate_geometry (String& uuid);
890
891     //ISM_TRANS_CMD_SET_KEYBOARD_ISE_BY_UUID
892     void socket_set_keyboard_ise (String uuid);
893
894     //ISM_TRANS_CMD_SELECT_CANDIDATE
895     void socket_helper_select_candidate (uint32 index);
896
897     //ISM_TRANS_CMD_UPDATE_ISE_GEOMETRY
898     void socket_helper_update_ise_geometry (int client, uint32 x, uint32 y, uint32 width, uint32 height);
899
900     //ISM_TRANS_CMD_GET_KEYBOARD_ISE
901     void socket_get_keyboard_ise (String uuid);
902
903     //SCIM_TRANS_CMD_START_HELPER
904     void socket_start_helper (int client_id, uint32 context, String uuid);
905
906     //SCIM_TRANS_CMD_STOP_HELPER
907     void socket_stop_helper (int client_id, uint32 context, String uuid);
908
909     //SCIM_TRANS_CMD_SEND_HELPER_EVENT
910     void socket_send_helper_event (int client_id, uint32 context, String uuid, const Transaction& _nest_trans);
911
912     //SCIM_TRANS_CMD_REGISTER_PROPERTIES
913     void socket_helper_register_properties (int client, PropertyList& properties);
914
915     //SCIM_TRANS_CMD_UPDATE_PROPERTY
916     void socket_helper_update_property (int client, Property& property);
917
918     //SCIM_TRANS_CMD_PANEL_SEND_IMENGINE_EVENT
919     void socket_helper_send_imengine_event (int client, uint32 target_ic, String target_uuid , Transaction& nest_trans);
920
921     //SCIM_TRANS_CMD_PROCESS_KEY_EVENT
922     //SCIM_TRANS_CMD_PANEL_SEND_KEY_EVENT
923     void socket_helper_send_key_event (int client, uint32 target_ic, String target_uuid, KeyEvent key);
924
925     //SCIM_TRANS_CMD_FORWARD_KEY_EVENT
926     void socket_helper_forward_key_event (int client, uint32 target_ic, String target_uuid, KeyEvent key);
927
928     //SCIM_TRANS_CMD_COMMIT_STRING
929     void socket_helper_commit_string (int client, uint32 target_ic, String target_uuid, WideString wstr);
930
931     //SCIM_TRANS_CMD_GET_SURROUNDING_TEXT
932     void socket_helper_get_surrounding_text (int client, String uuid, uint32 maxlen_before, uint32 maxlen_after);
933
934     //SCIM_TRANS_CMD_DELETE_SURROUNDING_TEXT
935     void socket_helper_delete_surrounding_text (int client, uint32 offset, uint32 len);
936
937     //SCIM_TRANS_CMD_GET_SELECTION
938     void socket_helper_get_selection (int client, String uuid);
939
940     //SCIM_TRANS_CMD_SET_SELECTION
941     void socket_helper_set_selection (int client, uint32 start, uint32 end);
942
943     //SCIM_TRANS_CMD_SHOW_PREEDIT_STRING
944     void socket_helper_show_preedit_string (int client, uint32 target_ic, String target_uuid);
945
946     //SCIM_TRANS_CMD_HIDE_PREEDIT_STRING
947     void socket_helper_hide_preedit_string (int client, uint32 target_ic, String target_uuid);
948
949     //SCIM_TRANS_CMD_UPDATE_PREEDIT_STRING
950     void socket_helper_update_preedit_string (int client, uint32 target_ic, String target_uuid, WideString preedit, WideString commit, AttributeList& attrs, uint32 caret);
951
952     //SCIM_TRANS_CMD_UPDATE_PREEDIT_CARET
953     void socket_helper_update_preedit_caret (int client, uint32 caret);
954
955     //ISM_TRANS_CMD_RECAPTURE_STRING
956     void socket_helper_recapture_string (int client, uint32 target_ic, String target_uuid, int offset, int len, WideString preedit, WideString commit, AttributeList& attrs);
957
958     //SCIM_TRANS_CMD_PANEL_REGISTER_HELPER
959     void socket_helper_register_helper (int client, HelperInfo& info);
960
961     //SCIM_TRANS_CMD_PANEL_REGISTER_ACTIVE_HELPER
962     void socket_helper_register_helper_passive (int client, HelperInfo& info);
963
964     //ISM_TRANS_CMD_UPDATE_ISE_INPUT_CONTEXT
965     void socket_helper_update_input_context (int client, uint32 type, uint32 value);
966
967     //ISM_TRANS_CMD_UPDATE_ISE_LANGUAGE_LOCALE
968     void socket_helper_update_language_locale(int client, String locale);
969
970     //SCIM_TRANS_CMD_SEND_PRIVATE_COMMAND
971     void socket_helper_send_private_command (int client, String command);
972
973     //SCIM_TRANS_CMD_SEND_COMMIT_CONTENT
974     void socket_helper_commit_content (int client, String content, String description, String mime_types);
975
976     //ISM_TRANS_CMD_UPDATE_ISE_EXIT
977     void UPDATE_ISE_EXIT (int client);
978
979     //ISM_TRANS_CMD_PROCESS_KEY_EVENT_DONE
980     void process_key_event_done (KeyEvent &key, uint32 ret, uint32 serial);
981
982     //ISM_TRANS_CMD_REQUEST_ISE_HIDE
983     void request_ise_hide ();
984
985     bool check_privilege_by_sockfd (int client_id, const String& privilege);
986
987     void add_client (int client_id, uint32 key, ClientType type);
988
989     void del_client (int client_id);
990
991     bool set_autocapital_type (int mode);
992
993     void set_prediction_allow (int client, bool mode);
994
995 //////////////////////////////////Message function end/////////////////////////////////////////
996
997
998 public:
999
1000     /**
1001      * @brief Signal: Turn on.
1002      *
1003      * slot prototype: void turn_on (void);
1004      */
1005     Connection signal_connect_turn_on (InfoManagerSlotVoid*                slot);
1006
1007     /**
1008      * @brief Signal: Turn off.
1009      *
1010      * slot prototype: void turn_off (void);
1011      */
1012     Connection signal_connect_turn_off (InfoManagerSlotVoid*                slot);
1013
1014     /**
1015      * @brief Signal: Show panel.
1016      *
1017      * slot prototype: void show_panel (void);
1018      */
1019     Connection signal_connect_show_panel (InfoManagerSlotVoid*                slot);
1020
1021     /**
1022      * @brief Signal: Hide panel.
1023      *
1024      * slot prototype: void hide_panel (void);
1025      */
1026     Connection signal_connect_hide_panel (InfoManagerSlotVoid*                slot);
1027
1028     /**
1029      * @brief Signal: Update screen.
1030      *
1031      * slot prototype: void update_screen (int screen);
1032      */
1033     Connection signal_connect_update_screen (InfoManagerSlotInt*                 slot);
1034
1035     /**
1036      * @brief Signal: Update spot location.
1037      *
1038      * slot prototype: void update_spot_location (int x, int y, int top_y);
1039      */
1040     Connection signal_connect_update_spot_location (InfoManagerSlotIntIntInt*           slot);
1041
1042     /**
1043      * @brief Signal: Update factory information.
1044      *
1045      * slot prototype: void update_factory_info (const PanelFactoryInfo &info);
1046      */
1047     Connection signal_connect_update_factory_info (InfoManagerSlotFactoryInfo*         slot);
1048
1049     /**
1050      * @brief Signal: start default ise.
1051      *
1052      * slot prototype: void start_default_ise (void);
1053      */
1054     Connection signal_connect_start_default_ise (InfoManagerSlotVoid*                slot);
1055
1056     /**
1057      * @brief Signal: stop default ise.
1058      *
1059      * slot prototype: void stop_default_ise (bool);
1060      */
1061     Connection signal_connect_stop_default_ise (InfoManagerSlotBool*                slot);
1062
1063     /**
1064      * @brief Signal: Get the list of keyboard ise name.
1065      *
1066      * slot prototype: bool get_keyboard_ise_list (std::vector<String> &);
1067      */
1068     Connection signal_connect_get_keyboard_ise_list (InfoManagerSlotBoolStringVector*    slot);
1069
1070     /**
1071      * @brief Signal: Set candidate ui.
1072      *
1073      * slot prototype: void set_candidate_ui (int style, int mode);
1074      */
1075     Connection signal_connect_set_candidate_ui (InfoManagerSlotIntInt*              slot);
1076
1077     /**
1078      * @brief Signal: Get candidate ui.
1079      *
1080      * slot prototype: void get_candidate_ui (int &style, int &mode);
1081      */
1082     Connection signal_connect_get_candidate_ui (InfoManagerSlotIntInt2*             slot);
1083
1084     /**
1085      * @brief Signal: Get candidate window geometry information.
1086      *
1087      * slot prototype: void get_candidate_geometry (rectinfo &info);
1088      */
1089     Connection signal_connect_get_candidate_geometry (InfoManagerSlotRect*                slot);
1090
1091     /**
1092      * @brief Signal: Get input panel geometry information.
1093      *
1094      * slot prototype: void get_input_panel_geometry (rectinfo &info);
1095      */
1096     Connection signal_connect_get_input_panel_geometry (InfoManagerSlotRect*                slot);
1097
1098     /**
1099      * @brief Signal: Set candidate position.
1100      *
1101      * slot prototype: void set_candidate_position (int left, int top);
1102      */
1103     Connection signal_connect_set_candidate_position (InfoManagerSlotIntInt*              slot);
1104
1105     /**
1106      * @brief Signal: Set keyboard ise.
1107      *
1108      * slot prototype: void set_keyboard_ise (const String &uuid);
1109      */
1110     Connection signal_connect_set_keyboard_ise (InfoManagerSlotString*              slot);
1111
1112     /**
1113      * @brief Signal: Get keyboard ise.
1114      *
1115      * slot prototype: void get_keyboard_ise (String &ise_name, String &ise_uuid);
1116      */
1117     Connection signal_connect_get_keyboard_ise (InfoManagerSlotString2*             slot);
1118
1119     /**
1120      * @brief Signal: Update ise geometry.
1121      *
1122      * slot prototype: void update_ise_geometry (int x, int y, int width, int height);
1123      */
1124     Connection signal_connect_update_ise_geometry (InfoManagerSlotIntIntIntInt*        slot);
1125
1126     /**
1127      * @brief Signal: Show help.
1128      *
1129      * slot prototype: void show_help (const String &help);
1130      */
1131     Connection signal_connect_show_help (InfoManagerSlotString*              slot);
1132
1133     /**
1134      * @brief Signal: Show factory menu.
1135      *
1136      * slot prototype: void show_factory_menu (const std::vector <PanelFactoryInfo> &menu);
1137      */
1138     Connection signal_connect_show_factory_menu (InfoManagerSlotFactoryInfoVector*   slot);
1139
1140     /**
1141      * @brief Signal: Show preedit string.
1142      *
1143      * slot prototype: void show_preedit_string (void):
1144      */
1145     Connection signal_connect_show_preedit_string (InfoManagerSlotVoid*                slot);
1146
1147     /**
1148      * @brief Signal: Show aux string.
1149      *
1150      * slot prototype: void show_aux_string (void):
1151      */
1152     Connection signal_connect_show_aux_string (InfoManagerSlotVoid*                slot);
1153
1154     /**
1155      * @brief Signal: Show lookup table.
1156      *
1157      * slot prototype: void show_lookup_table (void):
1158      */
1159     Connection signal_connect_show_lookup_table (InfoManagerSlotVoid*                slot);
1160
1161     /**
1162      * @brief Signal: Show associate table.
1163      *
1164      * slot prototype: void show_associate_table (void):
1165      */
1166     Connection signal_connect_show_associate_table (InfoManagerSlotVoid*                slot);
1167
1168     /**
1169      * @brief Signal: Hide preedit string.
1170      *
1171      * slot prototype: void hide_preedit_string (void);
1172      */
1173     Connection signal_connect_hide_preedit_string (InfoManagerSlotVoid*                slot);
1174
1175     /**
1176      * @brief Signal: Hide aux string.
1177      *
1178      * slot prototype: void hide_aux_string (void);
1179      */
1180     Connection signal_connect_hide_aux_string (InfoManagerSlotVoid*                slot);
1181
1182     /**
1183      * @brief Signal: Hide lookup table.
1184      *
1185      * slot prototype: void hide_lookup_table (void);
1186      */
1187     Connection signal_connect_hide_lookup_table (InfoManagerSlotVoid*                slot);
1188
1189     /**
1190      * @brief Signal: Hide associate table.
1191      *
1192      * slot prototype: void hide_associate_table (void);
1193      */
1194     Connection signal_connect_hide_associate_table (InfoManagerSlotVoid*                slot);
1195
1196     /**
1197      * @brief Signal: Update preedit string.
1198      *
1199      * slot prototype: void update_preedit_string (const String &str, const AttributeList &attrs, int caret);
1200      * - str   -- The UTF-8 encoded string to be displayed in preedit area.
1201      * - attrs -- The attributes of the string.
1202      */
1203     Connection signal_connect_update_preedit_string (InfoManagerSlotAttributeStringInt*  slot);
1204
1205     /**
1206      * @brief Signal: Update preedit caret.
1207      *
1208      * slot prototype: void update_preedit_caret (int caret);
1209      */
1210     Connection signal_connect_update_preedit_caret (InfoManagerSlotInt*                 slot);
1211
1212     /**
1213      * @brief Signal: Recapture string.
1214      *
1215      * slot prototype: void recapture_string (int offset, int length, String preedit, String commit, Attribute &attrs);
1216      */
1217     Connection signal_connect_recapture_string (InfoManagerSlotAttributeInt2String2*  slot);
1218
1219     /**
1220      * @brief Signal: Update aux string.
1221      *
1222      * slot prototype: void update_aux_string (const String &str, const AttributeList &attrs);
1223      * - str   -- The UTF-8 encoded string to be displayed in aux area.
1224      * - attrs -- The attributes of the string.
1225      */
1226     Connection signal_connect_update_aux_string (InfoManagerSlotAttributeString*     slot);
1227
1228     /**
1229      * @brief Signal: Update lookup table.
1230      *
1231      * slot prototype: void update_lookup_table (const LookupTable &table);
1232      * - table -- The new LookupTable object.
1233      */
1234     Connection signal_connect_update_lookup_table (InfoManagerSlotLookupTable*         slot);
1235
1236     /**
1237      * @brief Signal: Update associate table.
1238      *
1239      * slot prototype: void update_associate_table (const LookupTable &table);
1240      * - table -- The new LookupTable object.
1241      */
1242     Connection signal_connect_update_associate_table (InfoManagerSlotLookupTable*         slot);
1243
1244     /**
1245      * @brief Signal: Register properties.
1246      *
1247      * Register properties of the focused instance.
1248      *
1249      * slot prototype: void register_properties (const PropertyList &props);
1250      * - props -- The properties to be registered.
1251      */
1252     Connection signal_connect_register_properties (InfoManagerSlotPropertyList*        slot);
1253
1254     /**
1255      * @brief Signal: Update property.
1256      *
1257      * Update a property of the focused instance.
1258      *
1259      * slot prototype: void update_property (const Property &prop);
1260      * - prop -- The property to be updated.
1261      */
1262     Connection signal_connect_update_property (InfoManagerSlotProperty*            slot);
1263
1264     /**
1265      * @brief Signal: Register properties of a helper.
1266      *
1267      * slot prototype: void register_helper_properties (int id, const PropertyList &props);
1268      * - id    -- The client id of the helper object.
1269      * - props -- The properties to be registered.
1270      */
1271     Connection signal_connect_register_helper_properties (InfoManagerSlotIntPropertyList*     slot);
1272
1273     /**
1274      * @brief Signal: Update helper property.
1275      *
1276      * slot prototype: void update_helper_property (int id, const Property &prop);
1277      * - id   -- The client id of the helper object.
1278      * - prop -- The property to be updated.
1279      */
1280     Connection signal_connect_update_helper_property (InfoManagerSlotIntProperty*         slot);
1281
1282     /**
1283      * @brief Signal: Register a helper object.
1284      *
1285      * A newly started helper object will send this event to Panel.
1286      *
1287      * slot prototype: register_helper (int id, const HelperInfo &helper);
1288      * - id     -- The client id of the helper object.
1289      * - helper -- The information of the helper object.
1290      */
1291     Connection signal_connect_register_helper (InfoManagerSlotIntHelperInfo*       slot);
1292
1293     /**
1294      * @brief Signal: Remove a helper object.
1295      *
1296      * If a running helper close its connection to Panel, then this signal will be triggered to
1297      * tell Panel to remove all data associated to this helper.
1298      *
1299      * slot prototype: void remove_helper (int id);
1300      * - id -- The client id of the helper object to be removed.
1301      */
1302     Connection signal_connect_remove_helper (InfoManagerSlotInt*                 slot);
1303
1304     /**
1305      * @brief Signal: Start an ise with the speficied uuid
1306      *
1307      * slot prototype: void set_active_ise_by_uuid (const String& uuid);
1308      * - uuid -- the uuid of the ise object
1309      */
1310     Connection signal_connect_set_active_ise_by_uuid (InfoManagerSlotStringBool*          slot);
1311
1312     /**
1313      * @brief Signal: Focus in panel.
1314      *
1315      * slot prototype: void focus_in (void);
1316      */
1317     Connection signal_connect_focus_in (InfoManagerSlotVoid*                slot);
1318
1319     /**
1320      * @brief Signal: Focus out panel.
1321      *
1322      * slot prototype: void focus_out (void);
1323      */
1324     Connection signal_connect_focus_out (InfoManagerSlotVoid*                slot);
1325
1326     /**
1327      * @brief Signal: Expand candidate panel.
1328      *
1329      * slot prototype: void expand_candidate (void);
1330      */
1331     Connection signal_connect_expand_candidate (InfoManagerSlotVoid*                slot);
1332
1333     /**
1334      * @brief Signal: Contract candidate panel.
1335      *
1336      * slot prototype: void contract_candidate (void);
1337      */
1338     Connection signal_connect_contract_candidate (InfoManagerSlotVoid*                slot);
1339
1340     /**
1341      * @brief Signal: Select candidate string index.
1342      *
1343      * slot prototype: void select_candidate (int index);
1344      */
1345     Connection signal_connect_select_candidate (InfoManagerSlotInt*                 slot);
1346
1347     /**
1348      * @brief Signal: Get the list of ise name.
1349      *
1350      * slot prototype: bool get_ise_list (std::vector<String> &);
1351      */
1352     Connection signal_connect_get_ise_list (InfoManagerSlotBoolStringVector*    slot);
1353
1354     /**
1355      * @brief Signal: Get the info of all helper ise.
1356      *
1357      * slot prototype: bool get_all_helper_ise_info (HELPER_ISE_INFO &);
1358      */
1359     Connection signal_connect_get_all_helper_ise_info (InfoManagerSlotBoolHelperInfo*     slot);
1360
1361     /**
1362      * @brief Signal: Update "has_option" column of ime_info DB by Application ID
1363      *
1364      * slot prototype: void set_enable_helper_ise_info (const String &, bool );
1365      */
1366     Connection signal_connect_set_has_option_helper_ise_info (InfoManagerSlotStringBool*     slot);
1367
1368     /**
1369      * @brief Signal: Update "is_enable" column of ime_info DB by Application ID
1370      *
1371      * slot prototype: void set_enable_helper_ise_info (const String &, bool );
1372      */
1373     Connection signal_connect_set_enable_helper_ise_info (InfoManagerSlotStringBool*     slot);
1374
1375     /**
1376      * @brief Signal: Launch inputmethod-setting-list application
1377      *
1378      * slot prototype: void show_helper_ise_list (void);
1379      */
1380     Connection signal_connect_show_helper_ise_list (InfoManagerSlotVoid*       slot);
1381
1382     /**
1383      * @brief Signal: Launch inputmethod-setting-selector application
1384      *
1385      * slot prototype: void show_helper_ise_selector (void);
1386      */
1387     Connection signal_connect_show_helper_ise_selector (InfoManagerSlotVoid*   slot);
1388
1389     /**
1390      * @brief Signal: Checks if the specific IME is enabled or disabled in the system keyboard setting
1391      *
1392      * slot prototype: bool is_helper_ise_enabled (const String, int &);
1393      */
1394     Connection signal_connect_is_helper_ise_enabled (InfoManagerSlotStringInt*   slot);
1395
1396     /**
1397      * @brief Signal: Get the ISE information according to UUID.
1398      *
1399      * slot prototype: bool get_ise_information (String, String &, String &, int &, int &);
1400      */
1401     Connection signal_connect_get_ise_information (InfoManagerSlotBoolString4int2*     slot);
1402
1403     /**
1404      * @brief Signal: Get the list of selected language name.
1405      *
1406      * slot prototype: void get_language_list (std::vector<String> &);
1407      */
1408     Connection signal_connect_get_language_list (InfoManagerSlotStringVector*        slot);
1409
1410     /**
1411      * @brief Signal: Get the all languages name.
1412      *
1413      * slot prototype: void get_all_language (std::vector<String> &);
1414      */
1415     Connection signal_connect_get_all_language (InfoManagerSlotStringVector*        slot);
1416     /**
1417      * @brief Signal: Get the language list of a specified ise.
1418      *
1419      * slot prototype: void get_ise_language (char *, std::vector<String> &);
1420      */
1421     Connection signal_connect_get_ise_language (InfoManagerSlotStrStringVector*     slot);
1422
1423     /**
1424      * @brief Signal: Get the ise information by uuid.
1425      *
1426      * slot prototype: bool get_ise_info_by_uuid (const String &, ISE_INFO &);
1427      */
1428     Connection signal_connect_get_ise_info_by_uuid (InfoManagerSlotStringISEINFO*       slot);
1429
1430     /**
1431      * @brief Signal: send key event in panel.
1432      *
1433      * slot prototype: void send_key_event (const KeyEvent &);
1434      */
1435     Connection signal_connect_send_key_event (InfoManagerSlotKeyEvent*            slot);
1436
1437     /**
1438      * @brief Signal: A transaction is started.
1439      *
1440      * This signal infers that the Panel should disable update before this transaction finishes.
1441      *
1442      * slot prototype: void signal_connect_transaction_start (void);
1443      */
1444     Connection signal_connect_transaction_start (InfoManagerSlotVoid*                slot);
1445
1446     /**
1447      * @brief Signal: Accept connection for this InfoManager.
1448      *
1449      * slot prototype: void accept_connection (int fd);
1450      * - fd -- the file description for connection
1451      */
1452     Connection signal_connect_accept_connection (InfoManagerSlotInt*                 slot);
1453
1454     /**
1455      * @brief Signal: Close connection for this InfoManager.
1456      *
1457      * slot prototype: void close_connection (int fd);
1458      * - fd -- the file description for connection
1459      */
1460     Connection signal_connect_close_connection (InfoManagerSlotInt*                 slot);
1461
1462     /**
1463      * @brief Signal: Exit application for this InfoManager.
1464      *
1465      * slot prototype: void app_exit (void);
1466      */
1467     Connection signal_connect_exit (InfoManagerSlotVoid*                slot);
1468
1469     /**
1470      * @brief Signal: A transaction is finished.
1471      *
1472      * This signal will get emitted when a transaction is finished. This implys to re-enable
1473      * panel GUI update
1474      *
1475      * slot prototype: void signal_connect_transaction_end (void);
1476      */
1477     Connection signal_connect_transaction_end (InfoManagerSlotVoid*                slot);
1478
1479     /**
1480      * @brief Signal: Lock the exclusive lock for this InfoManager.
1481      *
1482      * The panel program should provide a thread lock and hook a slot into this signal to lock it.
1483      * InfoManager will use this lock to ensure the data integrity.
1484      *
1485      * slot prototype: void lock (void);
1486      */
1487     Connection signal_connect_lock (InfoManagerSlotVoid*                slot);
1488
1489     /**
1490      * @brief Signal: Unlock the exclusive lock for this InfoManager.
1491      *
1492      * slot prototype: void unlock (void);
1493      */
1494     Connection signal_connect_unlock (InfoManagerSlotVoid*                slot);
1495
1496     /**
1497      * @brief Signal: The input context of ISE is changed.
1498      *
1499      * slot prototype: void update_input_context (int type, int value);
1500      */
1501     Connection signal_connect_update_input_context (InfoManagerSlotIntInt*              slot);
1502
1503     /**
1504      * @brief Signal: Show ISE.
1505      *
1506      * slot prototype: void show_ise (void);
1507      */
1508     Connection signal_connect_show_ise (InfoManagerSlotVoid*                slot);
1509
1510     /**
1511      * @brief Signal: Hide ISE.
1512      *
1513      * slot prototype: void hide_ise (void);
1514      */
1515     Connection signal_connect_hide_ise (InfoManagerSlotVoid*                slot);
1516
1517     /**
1518      * @brief Signal: Notifies the client finished handling WILL_SHOW event
1519      *
1520      * slot prototype: void will_show_ack (void);
1521      */
1522     Connection signal_connect_will_show_ack (InfoManagerSlotVoid*                slot);
1523
1524     /**
1525      * @brief Signal: Notifies the client finished handling WILL_HIDE event
1526      *
1527      * slot prototype: void will_hide_ack (void);
1528      */
1529     Connection signal_connect_will_hide_ack (InfoManagerSlotVoid*                slot);
1530
1531     /**
1532      * @brief Signal: Set hardware mode
1533      *
1534      * slot prototype: void set_keyboard_mode (void);
1535      */
1536     Connection signal_connect_set_keyboard_mode (InfoManagerSlotInt*                 slot);
1537
1538     /**
1539      * @brief Signal: Notifies the client finished handling WILL_HIDE event for candidate
1540      *
1541      * slot prototype: void candidate_will_hide_ack (void);
1542      */
1543     Connection signal_connect_candidate_will_hide_ack (InfoManagerSlotVoid*                slot);
1544
1545     /**
1546      * @brief Signal: Get ISE state.
1547      *
1548      * slot prototype: void get_ise_state (int &state);
1549      */
1550     Connection signal_connect_get_ise_state (InfoManagerSlotInt2*                slot);
1551
1552     /**
1553      * @brief Signal: run helper.
1554      *
1555      * slot prototype: bool run_helper (const String &uuid, const String &config, const String &display);
1556      */
1557     Connection signal_connect_run_helper (InfoManagerSlotString3*                slot);
1558
1559     Connection signal_connect_launch_option_application (InfoManagerSlotBoolString*                slot);
1560
1561     /**
1562      * @brief Signal: Get the recent input panel geometry information.
1563      *
1564      * slot prototype: void get_recent_ise_geometry (int angle, rectinfo &info);
1565      */
1566     Connection signal_connect_get_recent_ise_geometry (InfoManagerSlotIntRect*             slot);
1567
1568     Connection signal_connect_check_privilege_by_sockfd  (InfoManagerSlotIntString2* slot);
1569
1570     Connection signal_connect_remoteinput_send_input_message (InfoManagerSlotStringBool*          slot);
1571
1572     Connection signal_connect_remoteinput_send_surrounding_text (InfoManagerSlotIntString*          slot);
1573 };
1574
1575 /**  @} */
1576
1577 } /* namespace scim */
1578
1579 #endif /* __ISF_INFO_MANAGER_H */
1580
1581 /*
1582 vi:ts=4:nowrap:ai:expandtab
1583 */