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