fda6abd09e556037255ad5bafd3c9d6aabcac75b
[platform/core/uifw/isf.git] / ism / src / isf_panel_agent_base.h
1 /**
2  * @file scim_panel_agent_base.h
3  * @brief Defines scim::PanelAgentBase and their related types.
4  *
5  * scim::PanelAgentBase is a class used to write Panel daemons.
6  */
7
8 /* ISF is based on SCIM 1.4.7 and extended for supporting more mobile fitable. */
9
10 /*
11  * Smart Common Input Method
12  *
13  * Copyright (c) 2004-2005 James Su <suzhe@tsinghua.org.cn>
14  * Copyright (c) 2012-2016 Samsung Electronics Co., Ltd.
15  *
16  *
17  * This library is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU Lesser General Public
19  * License as published by the Free Software Foundation; either
20  * version 2 of the License, or (at your option) any later version.
21  *
22  * This library is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25  * GNU Lesser General Public License for more details.
26  *
27  * You should have received a copy of the GNU Lesser General Public
28  * License along with this program; if not, write to the
29  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
30  * Boston, MA  02111-1307  USA
31  *
32  */
33
34 #ifndef __ISF_PANEL_AGENT_BASE_H
35 #define __ISF_PANEL_AGENT_BASE_H
36
37 #include <scim_panel_common.h>
38
39 #ifndef _OUT_
40 #define _OUT_
41 #endif
42
43 namespace scim
44 {
45
46 /**
47  * @addtogroup Panel
48  * @ingroup InputServiceFramework
49  * The accessory classes to help develop Panel daemons and FrontEnds
50  * which need to communicate with Panel daemons.
51  * @{
52  */
53
54 typedef struct _ISE_INFO {
55     String uuid;
56     String name;
57     String lang;
58     String icon;
59     uint32 option;
60     TOOLBAR_MODE_T type;
61 } ISE_INFO;
62
63 typedef struct _HELPER_ISE_INFO {
64     std::vector<String> appid;
65     std::vector<String> label;
66     std::vector<uint32> is_enabled;
67     std::vector<uint32> is_preinstalled;
68     std::vector<uint32> has_option;
69 } HELPER_ISE_INFO;
70
71
72 typedef struct DefaultIse {
73     TOOLBAR_MODE_T type;
74     String         uuid;
75     String         name;
76     DefaultIse () : type (TOOLBAR_KEYBOARD_MODE), uuid (""), name ("") { }
77 } DEFAULT_ISE_T;
78
79
80 class PanelAgentBase;
81 class InfoManager;
82 /**
83  * @typedef typedef Pointer <PanelAgentBase> PanelAgentPointer;
84  *
85  * A smart pointer for scim::PanelAgentBase and its derived classes.
86  */
87 typedef Pointer <PanelAgentBase>  PanelAgentPointer;
88
89 /**
90  * @brief The class to implement all socket protocol in Panel.
91  *
92  * This class acts like a stand alone SocketServer.
93  * It has its own dedicated main loop, and will be blocked when run () is called.
94  * So run () must be called within a separated thread, in order to not block
95  * the main loop of the Panel program itself.
96  *
97  * Before calling run (), the panel must hook the callback functions to the
98  * corresponding signals.
99  *
100  * Note that, there are two special signals: lock(void) and unlock(void). These
101  * two signals are used to provide a thread lock to PanelAgent, so that PanelAgent
102  * can run correctly within a multi-threading Panel program.
103  */
104 class EXAPI PanelAgentBase : public ReferencedObject
105 {
106     class PanelAgentBaseImpl;
107     PanelAgentBaseImpl* m_impl;
108
109     PanelAgentBase (const PanelAgentBase&);
110     const PanelAgentBase& operator = (const PanelAgentBase&);
111     String m_name;
112 public:
113     PanelAgentBase (const String& name);
114     virtual ~PanelAgentBase ();
115
116     /**
117     * @brief Initialize this PanelAgent.
118     *
119     * @param config The name of the config module to be used by Helpers.
120     * @param display The name of display, on which the Panel should run.
121     * @param resident If this is true then this PanelAgent will keep running
122     *                 even if there is no more client connected.
123     *
124     * @return true if the PanelAgent is initialized correctly and ready to run.
125     */
126     virtual bool initialize (InfoManager* info_manager, const String& display, bool resident = false);
127
128     /**
129      * @brief Check if this PanelAgent is initialized correctly and ready to run.
130      *
131      * @return true if this PanelAgent is ready to run.
132      */
133     virtual bool valid (void) const;
134
135     /**
136      * @brief Stop this PanelAgent.
137      */
138     virtual void stop (void);
139
140 public:
141
142     /**
143      * @brief Notice helper ISE to focus out.
144      *
145      * @param uuid The helper ISE uuid.
146      */
147     virtual void focus_out_helper (int client, uint32 context, const String& uuid);
148
149     /**
150      * @brief Notice helper ISE to focus in.
151      *
152      * @param uuid The helper ISE uuid.
153      */
154     virtual void focus_in_helper (int client, uint32 context, const String& uuid);
155
156     /**
157      * @brief Notice helper ISE to show window.
158      *
159      * @param uuid The helper ISE uuid.
160      */
161     virtual void show_helper (int client, uint32 context, const String& uuid, char* data, size_t& len);
162
163     /**
164      * @brief Notice helper ISE to hide window.
165      *
166      * @param uuid The helper ISE uuid.
167      */
168     virtual void hide_helper (int client, uint32 context, const String& uuid);
169
170     /**
171      * @brief Reset keyboard ISE.
172      *
173      * @return true if this operation is successful, otherwise return false.
174      */
175     virtual void reset_keyboard_ise (int client, uint32 context);
176
177     /**
178      * @brief Change the factory used by the focused IMEngineInstance object.
179      *
180      * @param uuid The uuid of the new factory.
181      * @return true if the command was sent correctly.
182      */
183     virtual void change_factory (int client, uint32 context, const String&  uuid);
184
185     /**
186      * @brief Notice Helper ISE that candidate more window is showed.
187      * @return true if the command was sent correctly.
188      */
189     virtual void candidate_more_window_show (int client, uint32 context);
190
191     /**
192      * @brief Notice Helper ISE that candidate more window is hidden.
193      * @return true if the command was sent correctly.
194      */
195     virtual void candidate_more_window_hide (int client, uint32 context);
196
197     /**
198      * @brief Notice Helper ISE that show candidate.
199      * @return true if the command was sent correctly.
200      */
201     virtual void helper_candidate_show (int client, uint32 context, const String&  uuid);
202
203     /**
204      * @brief Notice Helper ISE that hide candidate.
205      * @return true if the command was sent correctly.
206      */
207     virtual void helper_candidate_hide (int client, uint32 context, const String&  uuid);
208
209     /**
210      * @brief Update helper lookup table.
211      * @return true if the command was sent correctly.
212      */
213     virtual void update_helper_lookup_table (int client, uint32 context, const String&  uuid, const LookupTable& table);
214
215     /**
216      * @brief Let the focused IMEngineInstance object
217      *        select a aux in current aux string.
218      *
219      * @param item The index of the selected aux.
220      * @return true if the command was sent correctly.
221      */
222     virtual void select_aux (int client, uint32 context, uint32         item);
223
224     /**
225      * @brief Let the focused IMEngineInstance object
226      *        select a candidate in current lookup table.
227      *
228      * @param item The index of the selected candidate.
229      * @return true if the command was sent correctly.
230      */
231     virtual void select_candidate (int client, uint32 context, uint32         item);
232
233     /**
234      * @brief Let the focused IMEngineInstance object
235      *        flip the LookupTable to previous page.
236      * @return true if the command was sent correctly.
237      */
238     virtual void lookup_table_page_up (int client, uint32 context);
239
240     /**
241      * @brief Let the focused IMEngineInstance object
242      *        flip the LookupTable to next page.
243      * @return true if the command was sent correctly.
244      */
245     virtual void lookup_table_page_down (int client, uint32 context);
246
247     /**
248      * @brief Let the focused IMEngineInstance object
249      *        update the page size of the LookupTable.
250      *
251      * @param size The new page size.
252      * @return true if the command was sent correctly.
253      */
254     virtual void update_lookup_table_page_size (int client, uint32 context, uint32         size);
255
256     /**
257      * @brief Let the focused IMEngineInstance object
258      *        update candidate items layout.
259      *
260      * @param row_items The items of each row.
261      * @return true if the command was sent correctly.
262      */
263     virtual void update_candidate_item_layout (int client, uint32 context, const std::vector<uint32>& row_items);
264
265     /**
266      * @brief Let the focused IMEngineInstance object
267      *        select a associate in current associate table.
268      *
269      * @param item The index of the selected associate.
270      * @return true if the command was sent correctly.
271      */
272     virtual void select_associate (int client, uint32 context, uint32         item);
273
274     /**
275      * @brief Let the focused IMEngineInstance object
276      *        flip the AssociateTable to previous page.
277      * @return true if the command was sent correctly.
278      */
279     virtual void associate_table_page_up (int client, uint32 context);
280
281     /**
282      * @brief Let the focused IMEngineInstance object
283      *        flip the AssociateTable to next page.
284      * @return true if the command was sent correctly.
285      */
286     virtual void associate_table_page_down (int client, uint32 context);
287
288     /**
289      * @brief Let the focused IMEngineInstance object
290      *        update the page size of the AssociateTable.
291      *
292      * @param size The new page size.
293      * @return true if the command was sent correctly.
294      */
295     virtual void update_associate_table_page_size (int client, uint32 context, uint32       size);
296
297     /**
298      * @brief Inform helper ISE to update displayed candidate number.
299      *
300      * @param size The displayed candidate number.
301      * @return true if the command was sent correctly.
302      */
303     virtual void update_displayed_candidate_number (int client, uint32 context, uint32      size);
304
305     /**
306      * @brief Trigger a property of the focused IMEngineInstance object.
307      *
308      * @param property The property key to be triggered.
309      * @return true if the command was sent correctly.
310      */
311     virtual void trigger_property (int client, uint32 context, const String&  property);
312
313     /**
314      * @brief Let all FrontEnds and Helpers reload configuration.
315      * @return true if the command was sent correctly.
316      */
317     virtual void reload_config (int client);
318
319     /**
320      * @brief Let all FrontEnds, Helpers and this Panel exit.
321      * @return true if the command was sent correctly.
322      */
323     virtual void exit (int client, uint32 context);
324
325     /**
326      * @brief Send candidate longpress event to ISE.
327      *
328      * @param index The candidate object index.
329      *
330      * @return none.
331      */
332     virtual void send_longpress_event (int client, uint32 context, uint32 index);
333
334     /**
335      * @brief update_panel_event.
336      *
337      * @param
338      *
339      * @return none.
340      */
341     virtual void update_panel_event (int client,  uint32 context, int cmd, uint32 nType, uint32 nValue);
342
343     /**
344      * @brief update_keyboard_ise_list.
345      *
346      * @param
347      *
348      * @return none.
349      */
350     virtual void update_keyboard_ise_list (int client, uint32 context);
351
352     /**
353      * @brief set_helper_mode.
354      *
355      * @param
356      *
357      * @return none.
358      */
359     virtual void set_helper_mode (int client, uint32 context, const String& uuid, uint32& mode);
360
361     /**
362      * @brief set_helper_language.
363      *
364      * @param
365      *
366      * @return none.
367      */
368     virtual void set_helper_language (int client, uint32 context, const String& uuid, uint32& language);
369
370     /**
371      * @brief set_helper_imdata.
372      *
373      * @param
374      *
375      * @return none.
376      */
377     virtual void set_helper_imdata (int client, uint32 context, const String& uuid, const char* imdata, size_t& len);
378
379     /**
380      * @brief set_helper_return_key_type.
381      *
382      * @param
383      *
384      * @return none.
385      */
386     virtual void set_helper_return_key_type (int client, uint32 context, const String& uuid, uint32 type);
387
388     /**
389      * @brief get_helper_return_key_type.
390      *
391      * @param
392      *
393      * @return none.
394      */
395     virtual void get_helper_return_key_type (int client, uint32 context, const String& uuid, _OUT_ uint32& type);
396
397     /**
398      * @brief set_helper_return_key_disable.
399      *
400      * @param
401      *
402      * @return none.
403      */
404     virtual void set_helper_return_key_disable (int client, uint32 context, const String& uuid, uint32 disabled);
405
406     /**
407      * @brief get_helper_return_key_disable.
408      *
409      * @param
410      *
411      * @return none.
412      */
413     virtual void get_helper_return_key_disable (int client, uint32 context, const String& uuid, _OUT_ uint32& disabled);
414
415     /**
416      * @brief set_helper_layout.
417      *
418      * @param
419      *
420      * @return none.
421      */
422     virtual void set_helper_layout (int client, uint32 context, const String& uuid, uint32& layout);
423
424     /**
425      * @brief set_helper_input_mode.
426      *
427      * @param
428      *
429      * @return none.
430      */
431     virtual void set_helper_input_mode (int client, uint32 context, const String& uuid, uint32& mode);
432
433     /**
434      * @brief set_helper_input_hint.
435      *
436      * @param
437      *
438      * @return none.
439      */
440     virtual void set_helper_input_hint (int client, uint32 context, const String& uuid, uint32& hint);
441
442     /**
443      * @brief set_helper_bidi_direction.
444      *
445      * @param
446      *
447      * @return none.
448      */
449     virtual void set_helper_bidi_direction (int client, uint32 context, const String& uuid, uint32& direction);
450
451     /**
452      * @brief set_helper_caps_mode.
453      *
454      * @param
455      *
456      * @return none.
457      */
458     virtual void set_helper_caps_mode (int client, uint32 context, const String& uuid, uint32& mode);
459
460     /**
461      * @brief show_helper_option_window.
462      *
463      * @param
464      *
465      * @return none.
466      */
467     virtual void show_helper_option_window (int client, uint32 context, const String& uuid, uint32 caller_pid, uint32 ime_pid);
468
469     /**
470      * @brief resume_helper_option_window.
471      *
472      * @param
473      *
474      * @return none.
475      */
476     virtual void resume_helper_option_window (int client, uint32 context, const String& uuid);
477
478     virtual void set_transient_for (uint32 caller_pid, uint32 ime_pid);
479
480     /**
481      * @brief set_helper_keyboard_mode.
482      *
483      * @param
484      *
485      * @return none.
486      */
487     virtual void set_helper_keyboard_mode (int client, uint32 context, const String& uuid, uint32& mode);
488
489     /**
490      * @brief set_helper_prediction_hint.
491      *
492      * @param
493      *
494      * @return none.
495      */
496     virtual void set_helper_prediction_hint (int client, uint32 context, const String& uuid, String& prediction_hint);
497
498     /**
499      * @brief set_helper_mime_type.
500      *
501      * @param
502      *
503      * @return none.
504      */
505     virtual void set_helper_mime_type (int client, uint32 context, const String& uuid, String& mime_type);
506
507     /**
508      * @brief finalize_content_helper.
509      *
510      * @param
511      *
512      * @return none.
513      */
514     virtual void finalize_content_helper (int client, uint32 context, const String& uuid, String& text, uint32& cursor_pos);
515
516     /**
517      * @brief set_helper_prediction_hint_data.
518      *
519      * @param
520      *
521      * @return none.
522      */
523     virtual void set_helper_prediction_hint_data (int client, uint32 context, const String& uuid, String& key, String &value);
524
525     /**
526      * @brief set_helper_optimization_hint.
527      *
528      * @param
529      *
530      * @return none.
531      */
532     virtual void set_helper_optimization_hint (int client, uint32 context, const String& uuid, uint32& hint);
533
534     /**
535      * @brief process_key_event.
536      *
537      * @param
538      *
539      * @return none.
540      */
541     virtual bool process_key_event (int client, uint32 context, const String& uuid, KeyEvent& key, uint32 serial, uint32 keycode);
542
543     /**
544      * @brief get_helper_geometry.
545      *
546      * @param
547      *
548      * @return none.
549      */
550     virtual bool get_helper_geometry (int client, uint32 context, String& uuid, _OUT_ struct rectinfo& info);
551
552     /**
553      * @brief get_helper_imdata.
554      *
555      * @param
556      *
557      * @return none.
558      */
559     virtual void get_helper_imdata (int client, uint32 context, String& uuid, _OUT_ char** imdata, _OUT_ size_t& len);
560
561     /**
562      * @brief get_helper_layout.
563      *
564      * @param
565      *
566      * @return none.
567      */
568     virtual void get_helper_layout (int client, uint32 context, String& uuid, uint32& layout);
569
570     /**
571      * @brief get_ise_language_locale.
572      *
573      * @param
574      *
575      * @return none.
576      */
577     virtual void get_ise_language_locale (int client, uint32 context, String& uuid, _OUT_ char** data, _OUT_ size_t& len);
578
579     /**
580      * @brief check_option_window.
581      *
582      * @param
583      *
584      * @return none.
585      */
586     virtual void check_option_window (int client, uint32 context, String& uuid, _OUT_ uint32& avail);
587
588     /**
589      * @brief reset_ise_option.
590      *
591      * @param
592      *
593      * @return none.
594      */
595     virtual void reset_ise_option (int client, uint32 context);
596
597     /**
598      * @brief reset_helper_context.
599      *
600      * @param
601      *
602      * @return none.
603      */
604     virtual void reset_helper_context (int client, uint32 context, const String& uuid);
605
606     /**
607      * @brief socket_update_surrounding_text.
608      *
609      * @param
610      *
611      * @return none.
612      */
613     virtual void socket_update_surrounding_text (int client, uint32 context, const String& uuid, String& text, uint32 cursor);
614
615     /**
616      * @brief socket_remoteinput_focus_in.
617      *
618      * @param
619      *
620      * @return none.
621      */
622     virtual void socket_remoteinput_focus_in (int client);
623
624     /**
625      * @brief socket_remoteinput_focus_out.
626      *
627      * @param
628      *
629      * @return none.
630      */
631     virtual void socket_remoteinput_focus_out (int client);
632
633     /**
634      * @brief socket_remoteinput_entry_metadata.
635      *
636      * @param
637      *
638      * @return none.
639      */
640     virtual void socket_remoteinput_entry_metadata (int client, uint32 hint, uint32 layout, int variation, uint32 autocapital_type, int return_key_disabled, uint32 return_key_type);
641
642     /**
643      * @brief socket_remoteinput_surrounding_text.
644      *
645      * @param
646      *
647      * @return none.
648      */
649     virtual void socket_remoteinput_surrounding_text (int client, String& text, uint32 cursor);
650
651     /**
652      * @brief socket_remoteinput_input_resource.
653      *
654      * @param
655      *
656      * @return none.
657      */
658     virtual void socket_remoteinput_input_resource (int client, uint32 input_resource);
659
660     /**
661      * @brief socket_update_selection.
662      *
663      * @param
664      *
665      * @return none.
666      */
667     virtual void socket_update_selection (int client, uint32 context, String& uuid, String text);
668
669     /**
670      * @brief socket_get_keyboard_ise_list.
671      *
672      * @param
673      *
674      * @return none.
675      */
676     virtual  void socket_get_keyboard_ise_list (int client, uint32 context, const String& uuid, std::vector<String>& list);
677
678     /**
679      * @brief socket_get_candidate_ui.
680      *
681      * @param
682      *
683      * @return none.
684      */
685     virtual void socket_get_candidate_ui (int client, uint32 context, const String& uuid,  int style,  int mode);
686
687     /**
688      * @brief socket_get_candidate_geometry.
689      *
690      * @param
691      *
692      * @return none.
693      */
694     virtual void socket_get_candidate_geometry (int client, uint32 context, const String& uuid, struct rectinfo& info);
695
696     /**
697      * @brief socket_get_keyboard_ise.
698      *
699      * @param
700      *
701      * @return none.
702      */
703     virtual void socket_get_keyboard_ise (int client, uint32 context, const String& uuid, String& ise_name, String& ise_uuid);
704
705     /**
706      * @brief socket_start_helper.
707      *
708      * @param
709      *
710      * @return none.
711      */
712     virtual void socket_start_helper (int client, uint32 context, const String& ic_uuid);
713
714     /**
715      * @brief helper_detach_input_context.
716      *
717      * @param
718      *
719      * @return none.
720      */
721     virtual void helper_detach_input_context (int client, uint32 context, const String& ic_uuid);
722
723     /**
724      * @brief helper_process_imengine_event.
725      *
726      * @param
727      *
728      * @return none.
729      */
730     virtual void helper_process_imengine_event (int client, uint32 context, const String& ic_uuid, const Transaction& nest_transaction);
731
732     /**
733      * @brief process_helper_event.
734      *
735      * @param
736      *
737      * @return none.
738      */
739     virtual void process_helper_event (int client, uint32 context,  String target_uuid, String active_uuid, Transaction& nest_trans);
740
741     /**
742      * @brief socket_helper_key_event.
743      *
744      * @param
745      *
746      * @return none.
747      */
748     virtual void socket_helper_key_event (int client, uint32 context, int cmd , KeyEvent& key);
749
750     /**
751      * @brief socket_helper_get_surrounding_text.
752      *
753      * @param
754      *
755      * @return none.
756      */
757     virtual void socket_helper_get_surrounding_text (int client, uint32 context, uint32 maxlen_before, uint32 maxlen_after);
758
759     /**
760      * @brief socket_helper_delete_surrounding_text.
761      *
762      * @param
763      *
764      * @return none.
765      */
766     virtual void socket_helper_delete_surrounding_text (int client, uint32 context, uint32 offset, uint32 len);
767
768     /**
769      * @brief socket_helper_get_selection.
770      *
771      * @param
772      *
773      * @return none.
774      */
775     virtual void socket_helper_get_selection (int client, uint32 context);
776
777     /**
778      * @brief socket_helper_set_selection.
779      *
780      * @param
781      *
782      * @return none.
783      */
784     virtual void socket_helper_set_selection (int client, uint32 context, uint32 start, uint32 end);
785
786     /**
787      * @brief update_ise_input_context.
788      *
789      * @param
790      *
791      * @return none.
792      */
793     virtual void update_ise_input_context (int client, uint32 context, uint32 type, uint32 value);
794
795     /**
796      * @brief update_ise_language_locale.
797      *
798      * @param
799      *
800      * @return none.
801      */
802     virtual void update_ise_language_locale (int client, uint32 context, String locale);
803
804     /**
805      * @brief send_private_command.
806      *
807      * @param
808      *
809      * @return none.
810      */
811     virtual void send_private_command (int client, uint32 context, const String& command);
812
813     /**
814      * @brief helper_all_update_spot_location.
815      *
816      * @param
817      *
818      * @return none.
819      */
820     virtual void helper_all_update_spot_location (int client, uint32 context, String uuid, int x, int y);
821
822     /**
823      * @brief helper_all_update_cursor_position.
824      *
825      * @param
826      *
827      * @return none.
828      */
829     virtual void helper_all_update_cursor_position (int client, uint32 context, String uuid, int cursor_pos);
830
831     /**
832      * @brief helper_all_update_screen.
833      *
834      * @param
835      *
836      * @return none.
837      */
838     virtual void helper_all_update_screen (int client, uint32 context, String uuid, int screen);
839
840     /**
841      * @brief commit_string.
842      *
843      * @param
844      *
845      * @return none.
846      */
847     virtual void commit_string (int client, uint32 context, const WideString& wstr);
848
849     /**
850      * @brief show_preedit_string.
851      *
852      * @param
853      *
854      * @return none.
855      */
856     virtual void show_preedit_string (int client, uint32 context);
857
858     /**
859      * @brief hide_preedit_string.
860      *
861      * @param
862      *
863      * @return none.
864      */
865     virtual void hide_preedit_string (int client, uint32 context);
866
867     /**
868      * @brief update_preedit_string.
869      *
870      * @param
871      *
872      * @return none.
873      */
874     virtual void update_preedit_string (int client, uint32  context, WideString preedit, WideString commit, AttributeList& attrs, uint32 caret);
875
876     /**
877      * @brief update_preedit_caret.
878      *
879      * @param
880      *
881      * @return none.
882      */
883     virtual void update_preedit_caret (int client, uint32 context, uint32 caret);
884
885     /**
886      * @brief recapture_string.
887      *
888      * @param
889      *
890      * @return none.
891      */
892     virtual void recapture_string (int client, uint32 context, int offset, int len, WideString preedit, WideString commit, AttributeList& attrs);
893
894     /**
895      * @brief attach_input_context and update_screen.
896      *
897      * @param
898      *
899      * @return none.
900      */
901     virtual void helper_attach_input_context_and_update_screen (int client, std::vector < std::pair <uint32, String> >& helper_ic_index, uint32 current_screen);
902
903     /**
904      * @brief hide_helper_ise.
905      *
906      * @param
907      *
908      * @return none.
909      */
910     virtual void hide_helper_ise (int client, uint32 context);
911
912     /**
913     * @brief process_input_device_event.
914     *
915     * @param
916     *
917     * @return none.
918     */
919     virtual bool process_input_device_event (int client, uint32 context, const String& uuid, uint32 type, const char *data, size_t len, _OUT_ uint32& result);
920
921     /**
922     * @brief process_key_event_done.
923     *
924     * @param
925     *
926     * @return none.
927     */
928     virtual void process_key_event_done (int client, uint32 context, KeyEvent &key, uint32 ret, uint32 serial);
929
930     /**
931     * @brief request_ise_hide.
932     *
933     * @param
934     *
935     * @return none.
936     */
937     virtual void request_ise_hide (int client, uint32 context);
938
939     /**
940     * @brief set_autocapital_type.
941     *
942     * @param
943     *
944     * @return none.
945     */
946     virtual void set_autocapital_type (int client, uint32 context, String uuid, int mode);
947
948     /**
949      * @brief update_ise_geometry.
950      *
951      * @param
952      *
953      * @return none.
954      */
955     virtual void update_ise_geometry (int client, uint32 context, uint32 x, uint32 y, uint32 width, uint32 height);
956
957     /**
958     * @brief remote_update_preedit_string.
959     *
960     * @param
961     *
962     * @return none.
963     */
964
965     virtual void remote_update_preedit_string (int client, uint32 context, const WideString str, const WideString commit, const AttributeList &attrs, uint32 caret);
966
967     /**
968     * @brief remote_send_key_event.
969     *
970     * @param
971     *
972     * @return none.
973     */
974     virtual void remote_send_key_event (int client, uint32 context, const KeyEvent &key);
975
976     /**
977     * @brief remote_forward_key_event.
978     *
979     * @param
980     *
981     * @return none.
982     */
983     virtual void remote_forward_key_event (int client, uint32 context, const KeyEvent &key);
984
985     /**
986     * @brief remote_commit_string.
987     *
988     * @param
989     *
990     * @return none.
991     */
992     virtual void remote_commit_string (int client, uint32 context, const WideString& wstr);
993
994     /**
995     * @brief remote_delete_surrounding_text.
996     *
997     * @param
998     *
999     * @return none.
1000     */
1001     virtual void remote_delete_surrounding_text (int client, uint32 context, uint32 offset, uint32 len);
1002
1003     /**
1004     * @brief set_prediction_allow.
1005     *
1006     * @param
1007     *
1008     * @return none.
1009     */
1010     virtual void set_prediction_allow (int client, uint32 context, String uuid, int mode);
1011
1012     /**
1013     * @brief send_fail_reply.
1014     *
1015     * @param
1016     *
1017     * @return none.
1018     */
1019     virtual void send_fail_reply (int client);
1020
1021     /**
1022      * @brief commit_content.
1023      *
1024      * @param
1025      *
1026      * @return none.
1027      */
1028     virtual void commit_content (int client, uint32 context, const String& content, const String& description, const String& mime_types);
1029
1030     /**
1031     * @brief update_entry_metadata.
1032     *
1033     * @param
1034     *
1035     * @return none.
1036     */
1037     virtual void update_entry_metadata (int client, uint32 context);
1038
1039     /**
1040     * @brief request_ise_reshow.
1041     *
1042     * @param
1043     *
1044     * @return none.
1045     */
1046     virtual void request_ise_reshow (int client, uint32 context);
1047 };
1048
1049 /**  @} */
1050
1051 } /* namespace scim */
1052
1053 #endif /* __ISF_PANEL_AGENT_BASE_H */
1054
1055 /*
1056 vi:ts=4:nowrap:ai:expandtab
1057 */