3 * @brief Defines scim::HelperAgent and it's related types.
5 * scim::HelperAgent is a class used to write Client Helper modules.
9 /* ISF is based on SCIM 1.4.7 and extended for supporting more mobile fitable. */
12 * Smart Common Input Method
14 * Copyright (c) 2004-2005 James Su <suzhe@tsinghua.org.cn>
15 * Copyright (c) 2012-2015 Samsung Electronics Co., Ltd.
18 * This library is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU Lesser General Public
20 * License as published by the Free Software Foundation; either
21 * version 2 of the License, or (at your option) any later version.
23 * This library is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU Lesser General Public License for more details.
28 * You should have received a copy of the GNU Lesser General Public
29 * License along with this program; if not, write to the
30 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
31 * Boston, MA 02111-1307 USA
33 * Modifications by Samsung Electronics Co., Ltd.
34 * 1. Add new interface APIs for keyboard ISE
35 * a. expand_candidate (), contract_candidate () and set_candidate_style ()
36 * b. set_keyboard_ise_by_uuid () and reset_keyboard_ise ()
37 * c. get_surrounding_text () and delete_surrounding_text ()
38 * d. show_preedit_string (), hide_preedit_string (), update_preedit_string () and update_preedit_caret ()
39 * e. show_candidate_string (), hide_candidate_string () and update_candidate_string ()
41 * $Id: scim_helper.h,v 1.16 2005/05/24 12:22:51 suzhe Exp $
44 #ifndef __SCIM_HELPER_H
45 #define __SCIM_HELPER_H
47 #include "scim_utility.h"
49 #ifndef SCIM_HELPER_LAUNCHER_PROGRAM
50 #define SCIM_HELPER_LAUNCHER_PROGRAM (SCIM_LIBEXECDIR "/scim-helper-launcher")
57 * @ingroup InputServiceFramework
58 * The accessory classes to help develop and manage Client Helper objects.
61 class EXAPI HelperError: public Exception
64 HelperError (const String& what_arg)
65 : Exception (String("scim::Helper: ") + what_arg) { }
69 * @brief Helper option indicates that it's a stand alone Helper.
71 * Stand alone Helper has no corresponding IMEngine Factory,
72 * Such Helper can not be started by IMEngine Factory.
73 * So Panel must provide a menu, or something else, which contains
74 * all stand alone Helper items, so that user can start them by
77 const uint32 SCIM_HELPER_STAND_ALONE = 1;
80 * @brief Helper option indicates that it must be started
81 * automatically when Panel starts.
83 * If Helper objects want to start itself as soon as
84 * the Panel starts, set this option.
86 const uint32 SCIM_HELPER_AUTO_START = (1<<1);
89 * @brief Helper option indicates that it should be restarted
90 * when it exits abnormally.
92 * This option should not be used with #SCIM_HELPER_STAND_ALONE.
94 const uint32 SCIM_HELPER_AUTO_RESTART = (1<<2);
97 * @brief Helper option indicates that it needs the screen update
100 * Helper object with this option will receive the UPDATE_SCREEN event
101 * when the screen of focused ic is changed.
103 const uint32 SCIM_HELPER_NEED_SCREEN_INFO = (1<<3);
106 * @brief Helper option indicates that it needs the spot location
109 * Helper object with this option will receive the SPOT_LOCATION_INFO event
110 * when the spot location of focused ic is changed.
112 const uint32 SCIM_HELPER_NEED_SPOT_LOCATION_INFO = (1<<4);
115 * @brief ISE option indicates whether helper ISE handles the keyboard keyevent
117 const uint32 ISM_HELPER_PROCESS_KEYBOARD_KEYEVENT = (1<<16);
120 * @brief ISE option indicates whether it should be hidden in control panel.
122 const uint32 ISM_ISE_HIDE_IN_CONTROL_PANEL = (1<<17);
125 * @brief ISE option for 3rd party; IMEngine is not available.
127 const uint32 ISM_HELPER_WITHOUT_IMENGINE = (1<<18);
130 * @brief Structure to hold the information of a Helper object.
134 String uuid; /**< The UUID of this Helper object, replaced with Application ID since tizen 2.4 */
135 String name; /**< The Name of this Helper object, UTF-8 encoding. Deprecated since tizen 2.4 */
136 String icon; /**< The Icon file path of this Helper object. Deprecated since tizen 2.4 */
137 String description; /**< The short description of this Helper object. Deprecated since tizen 2.4 */
138 uint32 option; /**< The options of this Helper object. @sa #SCIM_HELPER_STAND_ALONE etc. Deprecated since tizen 2.4 */
140 HelperInfo (const String &puuid = String (),
141 const String &pname = String (),
142 const String &picon = String (),
143 const String &pdesc = String (),
163 typedef Slot3<void, const HelperAgent *, int, const String &>
166 typedef Slot4<void, const HelperAgent *, int, const String &, const String &>
167 HelperAgentSlotString;
169 typedef Slot4<void, const HelperAgent *, int, const String &, const std::vector<String> &>
170 HelperAgentSlotStringVector;
172 typedef Slot5<void, const HelperAgent *, int, const String &, const String &, const String &>
173 HelperAgentSlotString2;
175 typedef Slot4<void, const HelperAgent *, int, const String &, int>
178 typedef Slot5<void, const HelperAgent *, int, const String &, int, int>
179 HelperAgentSlotIntInt;
181 typedef Slot4<void, const HelperAgent *, int, const String &, const Transaction &>
182 HelperAgentSlotTransaction;
184 typedef Slot4<void, const HelperAgent *, int, const String &, const rectinfo &>
187 typedef Slot2<void, const HelperAgent *, struct rectinfo &>
190 typedef Slot2<void, const HelperAgent *, uint32 &>
191 HelperAgentSlotUintVoid;
193 typedef Slot3<void, const HelperAgent *, int, uint32 &>
194 HelperAgentSlotIntUint;
196 typedef Slot3<void, const HelperAgent *, char *, size_t &>
197 HelperAgentSlotRawVoid;
199 typedef Slot3<void, const HelperAgent *, char **, size_t &>
200 HelperAgentSlotGetRawVoid;
202 typedef Slot4<void, const HelperAgent *, int, char *, size_t &>
203 HelperAgentSlotIntRawVoid;
205 typedef Slot3<void, const HelperAgent *, int, char **>
206 HelperAgentSlotIntGetStringVoid;
208 typedef Slot2<void, const HelperAgent *, const std::vector<uint32> &>
209 HelperAgentSlotUintVector;
211 typedef Slot2<void, const HelperAgent *, LookupTable &>
212 HelperAgentSlotLookupTable;
213 typedef Slot3<void, const HelperAgent *, KeyEvent &, uint32 &>
214 HelperAgentSlotKeyEventUint;
215 typedef Slot4<void, const HelperAgent *, KeyEvent &, uint32 &, uint32>
216 HelperAgentSlotKeyEventUintUint;
218 typedef Slot5<void, const HelperAgent *, uint32 &, char *, size_t &, uint32 &>
219 HelperAgentSlotUintCharSizeUint;
221 typedef Slot2<void, const HelperAgent *, const String &>
222 HelperAgentSlotStringVoid;
225 * @brief The accessory class to write a Helper object.
227 * This class implements all Socket Transaction protocol between
228 * Helper object and Panel.
230 class EXAPI HelperAgent
232 class HelperAgentImpl;
233 HelperAgentImpl *m_impl;
235 HelperAgent (const HelperAgent &);
236 const HelperAgent & operator = (const HelperAgent &);
243 * @brief Open socket connection to the Panel.
245 * Helper objects and Panel communicate with each other via the Socket
246 * created by Panel, just same as the Socket between FrontEnds and Panel.
248 * Helper object can select/poll on the connection id returned by this function
249 * to see if there are any data available to be read. If any data are available,
250 * Helper object should call HelperAgent::filter_event() to process the data.
252 * This method should be called after the necessary signal-slots are connected.
253 * If this Helper is started by an IMEngine Instance, then signal attach_input_context
254 * will be emitted during this call.
256 * Signal update_screen will be emitted during this call as well to set the startup
257 * screen of this Helper. The ic and ic_uuid parameters are invalid here.
259 * @param info The information of this Helper object.
260 * @param display The display which this Helper object should run on.
262 * @return The connection socket id. -1 means failed to create
265 int open_connection (const HelperInfo &info,
266 const String &display);
269 * @brief Close the socket connection to Panel.
271 void close_connection ();
274 * @brief Get the connection id previously returned by open_connection().
276 * @return the connection id
278 int get_connection_number () const;
281 * @brief Check whether this HelperAgent has been connected to a Panel.
283 * Return true when it is connected to panel, otherwise return false.
285 bool is_connected () const;
288 * @brief Check if there are any events available to be processed.
290 * If it returns true then Helper object should call
291 * HelperAgent::filter_event() to process them.
293 * @return true if there are any events available.
295 bool has_pending_event () const;
298 * @brief Process the pending events.
300 * This function will emit the corresponding signals according
303 * @return false if the connection is broken, otherwise return true.
305 bool filter_event ();
308 * @brief Read messages from socket buffer, and see if there is a message with the given cmd.
310 * @return false if the connection is broken, or no message available with given cmd. Otherwise return true.
312 bool wait_for_message (int cmd, int timeout);
315 * @brief Process one message that is in our message queue.
317 * This function will emit the corresponding signals according
320 * @param message The message that needs to be handled.
322 * @return false if the connection is broken, otherwise return true.
324 bool handle_message (MessageItem *message);
327 * @brief Request SCIM to reload all configuration.
329 * This function should only by used by Setup Helper to request
330 * scim's reloading the configuration.
332 void reload_config () const;
335 * @brief Register some properties into Panel.
337 * This function send the request to Panel to register a list
340 * @param properties The list of Properties to be registered into Panel.
342 * @sa scim::Property.
344 void register_properties (const PropertyList &properties) const;
347 * @brief Update a registered property.
349 * @param property The property to be updated.
351 void update_property (const Property &property) const;
354 * @brief Send a set of events to an IMEngineInstance.
356 * All events should be put into a Transaction.
357 * And the events can only be received by one IMEngineInstance object.
359 * @param ic The handle of the Input Context to receive the events.
360 * @param ic_uuid The UUID of the Input Context.
361 * @param trans The Transaction object holds the events.
363 void send_imengine_event (int ic,
364 const String &ic_uuid,
365 const Transaction &trans) const;
368 * @brief Send a KeyEvent to an IMEngineInstance.
370 * @param ic The handle of the IMEngineInstance to receive the event.
371 * -1 means the currently focused IMEngineInstance.
372 * @param ic_uuid The UUID of the IMEngineInstance. Empty means don't match.
373 * @param key The KeyEvent to be sent.
375 void send_key_event (int ic,
376 const String &ic_uuid,
377 const KeyEvent &key) const;
380 * @brief Forward a KeyEvent to client application directly.
382 * @param ic The handle of the client Input Context to receive the event.
383 * -1 means the currently focused Input Context.
384 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
385 * Empty means don't match.
386 * @param key The KeyEvent to be forwarded.
388 void forward_key_event (int ic,
389 const String &ic_uuid,
390 const KeyEvent &key) const;
393 * @brief Commit a WideString to client application directly.
395 * @param ic The handle of the client Input Context to receive the WideString.
396 * -1 means the currently focused Input Context.
397 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
398 * Empty means don't match.
399 * @param wstr The WideString to be committed.
401 void commit_string (int ic,
402 const String &ic_uuid,
403 const WideString &wstr) const;
406 * @brief Commit a UTF-8 String to client application directly.
408 * @param ic The handle of the client Input Context to receive the commit string.
409 * -1 means the currently focused Input Context.
410 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
411 * Empty means don't match.
412 * @param buf The byte array of UTF-8 string to be committed.
413 * @param buflen The buf size in bytes.
415 void commit_string (int ic,
416 const String &ic_uuid,
421 * @brief Request to show preedit string.
423 * @param ic The handle of the client Input Context to receive the request.
424 * -1 means the currently focused Input Context.
425 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
426 * Empty means don't match.
428 void show_preedit_string (int ic,
429 const String &ic_uuid) const;
432 * @brief Request to show aux string.
434 void show_aux_string (void) const;
437 * @brief Request to show candidate string.
439 void show_candidate_string (void) const;
442 * @brief Request to show associate string.
444 void show_associate_string (void) const;
447 * @brief Request to hide preedit string.
449 * @param ic The handle of the client Input Context to receive the request.
450 * -1 means the currently focused Input Context.
451 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
452 * Empty means don't match.
454 void hide_preedit_string (int ic,
455 const String &ic_uuid) const;
458 * @brief Request to hide aux string.
460 void hide_aux_string (void) const;
463 * @brief Request to hide candidate string.
465 void hide_candidate_string (void) const;
468 * @brief Request to hide associate string.
470 void hide_associate_string (void) const;
473 * @brief Update a new WideString for preedit.
475 * @param ic The handle of the client Input Context to receive the WideString.
476 * -1 means the currently focused Input Context.
477 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
478 * Empty means don't match.
479 * @param wstr The WideString to be updated.
480 * @param attrs The attribute list for preedit string.
482 void update_preedit_string (int ic,
483 const String &ic_uuid,
484 const WideString &wstr,
485 const AttributeList &attrs) const;
488 * @brief Update a new UTF-8 string for preedit.
490 * @param ic The handle of the client Input Context to receive the UTF-8 String.
491 * -1 means the currently focused Input Context.
492 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
493 * Empty means don't match.
494 * @param buf The byte array of UTF-8 string to be updated.
495 * @param buflen The buf size in bytes.
496 * @param attrs The attribute list for preedit string.
498 void update_preedit_string (int ic,
499 const String &ic_uuid,
502 const AttributeList &attrs) const;
505 * @brief Update a new WideString and caret for preedit.
507 * @param ic The handle of the client Input Context to receive the WideString.
508 * -1 means the currently focused Input Context.
509 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
510 * Empty means don't match.
511 * @param wstr The WideString to be updated.
512 * @param attrs The attribute list for preedit string.
513 * @param caret The caret position in preedit string.
515 void update_preedit_string (int ic,
516 const String &ic_uuid,
517 const WideString &wstr,
518 const AttributeList &attrs,
522 * @brief Update a new UTF-8 string and caret for preedit.
524 * @param ic The handle of the client Input Context to receive the UTF-8 String.
525 * -1 means the currently focused Input Context.
526 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
527 * Empty means don't match.
528 * @param buf The byte array of UTF-8 string to be updated.
529 * @param buflen The buf size in bytes.
530 * @param attrs The attribute list for preedit string.
531 * @param caret The caret position in preedit string.
533 void update_preedit_string (int ic,
534 const String &ic_uuid,
537 const AttributeList &attrs,
541 * @brief Update a new WideString and caret for preedit.
543 * @param ic The handle of the client Input Context to receive the WideString.
544 * -1 means the currently focused Input Context.
545 * @param ic_uuid The UUID of the IMEngine used by the Input Context.
546 * Empty means don't match.
547 * @param preedit The WideString to be updated.
548 * @param commit The WideString to be commited on reset.
549 * @param attrs The attribute list for preedit string.
550 * @param caret The caret position in preedit string.
552 * The commit string can be used to replace the preedit string on reset
553 * for example on unfocus.
556 void update_preedit_string (int ic,
557 const String &ic_uuid,
558 const WideString &preedit,
559 const WideString &commit,
560 const AttributeList &attrs,
564 * @brief Update a new string for aux.
566 * @param str The string to be updated.
567 * @param attrs The attribute list for aux string.
569 void update_aux_string (const String &str,
570 const AttributeList &attrs) const;
573 * @brief Request to update candidate.
575 * @param table The lookup table for candidate.
577 void update_candidate_string (const LookupTable &table) const;
580 * @brief Request to update associate.
582 * @param table The lookup table for associate.
584 void update_associate_string (const LookupTable &table) const;
587 * @brief When the input context of ISE is changed,
588 * ISE can call this function to notify application
590 * @param type type of event.
591 * @param value value of event.
593 void update_input_context (uint32 type,
597 * @brief Request to get surrounding text asynchronously.
599 * @param uuid The helper ISE UUID.
600 * @param maxlen_before The max length of before.
601 * @param maxlen_after The max length of after.
603 void get_surrounding_text (const String &uuid,
605 int maxlen_after) const;
608 * @brief Request to get surrounding text synchronously.
610 * @param maxlen_before The max length of before.
611 * @param maxlen_after The max length of after.
612 * @param text The surounding text.
613 * @param cursor The cursor position.
615 void get_surrounding_text (int maxlen_before, int maxlen_after, String &text, int &cursor);
618 * @brief Request to delete surrounding text.
620 * @param offset The offset for cursor position.
621 * @param len The length for delete text.
623 void delete_surrounding_text (int offset,
627 * @brief Request to get selection.
629 * @param uuid The helper ISE UUID.
631 void get_selection (const String &uuid) const;
634 * @brief Request to get selection text synchronously.
636 * @param text The selection text.
638 void get_selection_text (String &text);
641 * @brief Request to selected text.
643 * @param start The start position in text.
644 * @param end The end position in text.
646 void set_selection (int start,
650 * @brief Set candidate position in screen.
652 * @param left The x position in screen.
653 * @param top The y position in screen.
655 void set_candidate_position (int left,
659 * @brief Request to hide candidate window.
661 void candidate_hide (void) const;
664 * @brief Request to get candidate window size and position.
666 * @param uuid The helper ISE UUID.
668 void get_candidate_window_geometry (const String &uuid) const;
671 * @brief Set current keyboard ISE.
673 * @param uuid The keyboard ISE UUID.
675 void set_keyboard_ise_by_uuid (const String &uuid) const;
678 * @brief Request to get current keyboard ISE information.
680 * @param uuid The helper ISE UUID.
682 void get_keyboard_ise (const String &uuid) const;
685 * @brief Request to get uuid list of all keyboard ISEs.
687 * @param uuid The helper ISE UUID.
689 void get_keyboard_ise_list (const String &uuid) const;
692 * @brief Update ISE window geometry.
694 * @param x The x position in screen.
695 * @param y The y position in screen.
696 * @param width The ISE window width.
697 * @param height The ISE window height.
699 void update_geometry (int x,
705 * @brief Request to expand candidate window.
707 void expand_candidate (void) const;
710 * @brief Request to contract candidate window.
712 void contract_candidate (void) const;
715 * @brief Send selected candidate string index number.
717 void select_candidate (int index) const;
720 * @brief Update ise exit status
722 void update_ise_exit (void) const;
725 * @brief Update the preedit caret position in the preedit string.
727 * @param caret - the new position of the preedit caret.
729 void update_preedit_caret (int caret) const;
732 * @brief Set candidate style.
734 * @param portrait_line - the displayed line number for portrait.
735 * @param mode - candidate window mode.
737 void set_candidate_style (ISF_CANDIDATE_PORTRAIT_LINE_T portrait_line = ONE_LINE_CANDIDATE,
738 ISF_CANDIDATE_MODE_T mode = SOFT_CANDIDATE_WINDOW) const;
741 * @brief Request to reset keyboard ISE.
743 void reset_keyboard_ise (void) const;
746 * @brief Request to flush keyboard ISE.
748 void flush_keyboard_ise (void) const;
751 * @brief Send a private command to an application
753 * @param command The private command sent from IME.
755 void send_private_command (const String &command) const;
758 * @brief Commit content to an application
760 * @param content The content sent from IME.
762 void commit_content (const String &content,
763 const String &description,
764 const String &mime_types) const;
767 * @brief Request panel to hide ISE, since in some cases ISE cannot hide itself (e.g. WAYLAND)
769 void request_ise_hide (void) const;
771 void recapture_string (int ic,
772 const String &ic_uuid,
775 const WideString &preedit_str,
776 const WideString &commit_str,
777 const AttributeList &attrs) const;
781 * @brief Connect a slot to Helper exit signal.
783 * This signal is used to let the Helper exit.
785 * The prototype of the slot is:
787 * void exit (const HelperAgent *agent, int ic, const String &ic_uuid);
790 * - agent The pointer to the HelperAgent object which emits this signal.
791 * - ic An opaque handle of the currently focused input context.
792 * - ic_uuid The UUID of the IMEngineInstance associated with the focused input context.
794 Connection signal_connect_exit (HelperAgentSlotVoid *slot);
797 * @brief Connect a slot to Helper attach input context signal.
799 * This signal is used to attach an input context to this helper.
801 * When an input context requst to start this helper, then this
802 * signal will be emitted as soon as the helper is started.
804 * When an input context want to start an already started helper,
805 * this signal will also be emitted.
807 * Helper can send some events back to the IMEngineInstance in this
808 * signal-slot, to inform that it has been started sccessfully.
810 * The prototype of the slot is:
812 * void attach_input_context (const HelperAgent *agent, int ic, const String &ic_uuid);
814 Connection signal_connect_attach_input_context (HelperAgentSlotVoid *slot);
817 * @brief Connect a slot to Helper detach input context signal.
819 * This signal is used to detach an input context from this helper.
821 * When an input context requst to stop this helper, then this
822 * signal will be emitted.
824 * Helper shouldn't send any event back to the IMEngineInstance, because
825 * the IMEngineInstance attached to the ic should have been destroyed.
827 * The prototype of the slot is:
829 * void detach_input_context (const HelperAgent *agent, int ic, const String &ic_uuid);
831 Connection signal_connect_detach_input_context (HelperAgentSlotVoid *slot);
834 * @brief Connect a slot to Helper reload config signal.
836 * This signal is used to let the Helper reload configuration.
838 * The prototype of the slot is:
840 * void reload_config (const HelperAgent *agent, int ic, const String &ic_uuid);
842 Connection signal_connect_reload_config (HelperAgentSlotVoid *slot);
845 * @brief Connect a slot to Helper update screen signal.
847 * This signal is used to let the Helper move its GUI to another screen.
848 * It can only be emitted when SCIM_HELPER_NEED_SCREEN_INFO is set in HelperInfo.option.
850 * The prototype of the slot is:
852 * void update_screen (const HelperAgent *agent, int ic, const String &ic_uuid, int screen_number);
854 Connection signal_connect_update_screen (HelperAgentSlotInt *slot);
857 * @brief Connect a slot to Helper update spot location signal.
859 * This signal is used to let the Helper move its GUI according to the current spot location.
860 * It can only be emitted when SCIM_HELPER_NEED_SPOT_LOCATION_INFO is set in HelperInfo.option.
862 * The prototype of the slot is:
863 * void update_spot_location (const HelperAgent *agent, int ic, const String &ic_uuid, int x, int y);
865 Connection signal_connect_update_spot_location (HelperAgentSlotIntInt *slot);
868 * @brief Connect a slot to Helper update cursor position signal.
870 * This signal is used to let the Helper get the cursor position information.
872 * The prototype of the slot is:
873 * void update_cursor_position (const HelperAgent *agent, int ic, const String &ic_uuid, int cursor_pos);
875 Connection signal_connect_update_cursor_position (HelperAgentSlotInt *slot);
878 * @brief Connect a slot to Helper update surrounding text signal.
880 * This signal is used to let the Helper get the surrounding text.
882 * The prototype of the slot is:
883 * void update_surrounding_text (const HelperAgent *agent, int ic, const String &text, int cursor);
885 Connection signal_connect_update_surrounding_text (HelperAgentSlotInt *slot);
888 * @brief Connect a slot to Helper update selection signal.
890 * This signal is used to let the Helper get the selection.
892 * The prototype of the slot is:
893 * void update_selection (const HelperAgent *agent, int ic, const String &text);
895 Connection signal_connect_update_selection (HelperAgentSlotVoid *slot);
898 * @brief Connect a slot to Helper trigger property signal.
900 * This signal is used to trigger a property registered by this Helper.
901 * A property will be triggered when user clicks on it.
903 * The prototype of the slot is:
904 * void trigger_property (const HelperAgent *agent, int ic, const String &ic_uuid, const String &property);
906 Connection signal_connect_trigger_property (HelperAgentSlotString *slot);
909 * @brief Connect a slot to Helper process imengine event signal.
911 * This signal is used to deliver the events sent from IMEngine to Helper.
913 * The prototype of the slot is:
914 * void process_imengine_event (const HelperAgent *agent, int ic, const String &ic_uuid, const Transaction &transaction);
916 Connection signal_connect_process_imengine_event (HelperAgentSlotTransaction *slot);
919 * @brief Connect a slot to Helper focus out signal.
921 * This signal is used to do something when input context is focus out.
923 * The prototype of the slot is:
924 * void focus_out (const HelperAgent *agent, int ic, const String &ic_uuid);
926 Connection signal_connect_focus_out (HelperAgentSlotVoid *slot);
929 * @brief Connect a slot to Helper focus in signal.
931 * This signal is used to do something when input context is focus in.
933 * The prototype of the slot is:
934 * void focus_in (const HelperAgent *agent, int ic, const String &ic_uuid);
936 Connection signal_connect_focus_in (HelperAgentSlotVoid *slot);
939 * @brief Connect a slot to Helper show signal.
941 * This signal is used to show Helper ISE window.
943 * The prototype of the slot is:
944 * void ise_show (const HelperAgent *agent, int ic, char *buf, size_t &len);
946 Connection signal_connect_ise_show (HelperAgentSlotIntRawVoid *slot);
949 * @brief Connect a slot to Helper hide signal.
951 * This signal is used to hide Helper ISE window.
953 * The prototype of the slot is:
954 * void ise_hide (const HelperAgent *agent, int ic, const String &ic_uuid);
956 Connection signal_connect_ise_hide (HelperAgentSlotVoid *slot);
959 * @brief Connect a slot to Helper get ISE window geometry signal.
961 * This signal is used to get Helper ISE window size and position.
963 * The prototype of the slot is:
964 * void get_geometry (const HelperAgent *agent, struct rectinfo &info);
966 Connection signal_connect_get_geometry (HelperAgentSlotSize *slot);
969 * @brief Connect a slot to Helper set mode signal.
971 * This signal is used to set Helper ISE mode.
973 * The prototype of the slot is:
974 * void set_mode (const HelperAgent *agent, uint32 &mode);
976 Connection signal_connect_set_mode (HelperAgentSlotUintVoid *slot);
979 * @brief Connect a slot to Helper set language signal.
981 * This signal is used to set Helper ISE language.
983 * The prototype of the slot is:
984 * void set_language (const HelperAgent *agent, uint32 &language);
986 Connection signal_connect_set_language (HelperAgentSlotUintVoid *slot);
989 * @brief Connect a slot to Helper set im data signal.
991 * This signal is used to send im data to Helper ISE.
993 * The prototype of the slot is:
994 * void set_imdata (const HelperAgent *agent, char *buf, size_t &len);
996 Connection signal_connect_set_imdata (HelperAgentSlotRawVoid *slot);
999 * @brief Connect a slot to Helper get im data signal.
1001 * This signal is used to get im data from Helper ISE.
1003 * The prototype of the slot is:
1004 * void get_imdata (const HelperAgent *, char **buf, size_t &len);
1006 Connection signal_connect_get_imdata (HelperAgentSlotGetRawVoid *slot);
1009 * @brief Connect a slot to Helper get language locale.
1011 * This signal is used to get language locale from Helper ISE.
1013 * The prototype of the slot is:
1014 * void get_language_locale (const HelperAgent *, int ic, char **locale);
1016 Connection signal_connect_get_language_locale (HelperAgentSlotIntGetStringVoid *slot);
1019 * @brief Connect a slot to Helper set return key type signal.
1021 * This signal is used to set return key type to Helper ISE.
1023 * The prototype of the slot is:
1024 * void set_return_key_type (const HelperAgent *agent, uint32 &type);
1026 Connection signal_connect_set_return_key_type (HelperAgentSlotUintVoid *slot);
1029 * @brief Connect a slot to Helper get return key type signal.
1031 * This signal is used to get return key type from Helper ISE.
1033 * The prototype of the slot is:
1034 * void get_return_key_type (const HelperAgent *agent, uint32 &type);
1036 Connection signal_connect_get_return_key_type (HelperAgentSlotUintVoid *slot);
1039 * @brief Connect a slot to Helper set return key disable signal.
1041 * This signal is used to set return key disable to Helper ISE.
1043 * The prototype of the slot is:
1044 * void set_return_key_disable (const HelperAgent *agent, uint32 &disabled);
1046 Connection signal_connect_set_return_key_disable (HelperAgentSlotUintVoid *slot);
1049 * @brief Connect a slot to Helper get return key disable signal.
1051 * This signal is used to get return key disable from Helper ISE.
1053 * The prototype of the slot is:
1054 * void get_return_key_disable (const HelperAgent *agent, uint32 &disabled);
1056 Connection signal_connect_get_return_key_disable (HelperAgentSlotUintVoid *slot);
1059 * @brief Connect a slot to Helper get layout signal.
1061 * This signal is used to get Helper ISE layout.
1063 * The prototype of the slot is:
1064 * void get_layout (const HelperAgent *agent, uint32 &layout);
1066 Connection signal_connect_get_layout (HelperAgentSlotUintVoid *slot);
1069 * @brief Connect a slot to Helper set layout signal.
1071 * This signal is used to set Helper ISE layout.
1073 * The prototype of the slot is:
1074 * void set_layout (const HelperAgent *agent, uint32 &layout);
1076 Connection signal_connect_set_layout (HelperAgentSlotUintVoid *slot);
1079 * @brief Connect a slot to Helper set shift mode signal.
1081 * This signal is used to set Helper shift mode.
1083 * The prototype of the slot is:
1084 * void set_caps_mode (const HelperAgent *agent, uint32 &mode);
1086 Connection signal_connect_set_caps_mode (HelperAgentSlotUintVoid *slot);
1089 * @brief Connect a slot to Helper reset input context signal.
1091 * This signal is used to reset Helper ISE input context.
1093 * The prototype of the slot is:
1094 * void reset_input_context (const HelperAgent *agent, int ic, const String &uuid);
1096 Connection signal_connect_reset_input_context (HelperAgentSlotVoid *slot);
1099 * @brief Connect a slot to Helper update candidate window geometry signal.
1101 * This signal is used to get candidate window size and position.
1103 * The prototype of the slot is:
1104 * void update_candidate_geometry (const HelperAgent *agent, int ic, const String &uuid, const rectinfo &info);
1106 Connection signal_connect_update_candidate_geometry (HelperAgentSlotRect *slot);
1109 * @brief Connect a slot to Helper update keyboard ISE signal.
1111 * This signal is used to get current keyboard ISE name and uuid.
1113 * The prototype of the slot is:
1114 * void update_keyboard_ise (const HelperAgent *agent, int ic, const String &uuid,
1115 * const String &ise_name, const String &ise_uuid);
1117 Connection signal_connect_update_keyboard_ise (HelperAgentSlotString2 *slot);
1120 * @brief Connect a slot to Helper update keyboard ISE list signal.
1122 * This signal is used to get uuid list of all keyboard ISEs.
1124 * The prototype of the slot is:
1125 * void update_keyboard_ise_list (const HelperAgent *agent, int ic, const String &uuid,
1126 * const std::vector<String> &ise_list);
1128 Connection signal_connect_update_keyboard_ise_list (HelperAgentSlotStringVector *slot);
1131 * @brief Connect a slot to Helper candidate more window show signal.
1133 * This signal is used to do someting when candidate more window is showed.
1135 * The prototype of the slot is:
1136 * void candidate_more_window_show (const HelperAgent *agent, int ic, const String &uuid);
1138 Connection signal_connect_candidate_more_window_show (HelperAgentSlotVoid *slot);
1141 * @brief Connect a slot to Helper candidate more window hide signal.
1143 * This signal is used to do someting when candidate more window is hidden.
1145 * The prototype of the slot is:
1146 * void candidate_more_window_hide (const HelperAgent *agent, int ic, const String &uuid);
1148 Connection signal_connect_candidate_more_window_hide (HelperAgentSlotVoid *slot);
1151 * @brief Connect a slot to Helper candidate show signal.
1153 * This signal is used to do candidate show.
1155 * The prototype of the slot is:
1156 * void candidate_show (const HelperAgent *agent, int ic, const String &uuid);
1158 Connection signal_connect_candidate_show (HelperAgentSlotVoid *slot);
1161 * @brief Connect a slot to Helper candidate hide signal.
1163 * This signal is used to do candidate hide.
1165 * The prototype of the slot is:
1166 * void candidate_hide (const HelperAgent *agent,int ic, const String &uuid);
1168 Connection signal_connect_candidate_hide (HelperAgentSlotVoid *slot);
1171 * @brief Connect a slot to Helper update lookup table signal.
1173 * This signal is used to do someting when update lookup table.
1175 * The prototype of the slot is:
1176 * void update_lookup_table (const HelperAgent *agent, int ic, const String &uuid, LookupTable &Table);
1178 Connection signal_connect_update_lookup_table (HelperAgentSlotLookupTable *slot);
1181 * @brief Connect a slot to Helper select aux signal.
1183 * This signal is used to do something when aux is selected.
1185 * The prototype of the slot is:
1186 * void select_aux (const HelperAgent *agent, int ic, const String &uuid, int index);
1188 Connection signal_connect_select_aux (HelperAgentSlotInt *slot);
1191 * @brief Connect a slot to Helper select candidate signal.
1193 * This signal is used to do something when candidate is selected.
1195 * The prototype of the slot is:
1196 * void select_candidate (const HelperAgent *agent, int ic, const String &uuid, int index);
1198 Connection signal_connect_select_candidate (HelperAgentSlotInt *slot);
1201 * @brief Connect a slot to Helper candidate table page up signal.
1203 * This signal is used to do something when candidate table is paged up.
1205 * The prototype of the slot is:
1206 * void candidate_table_page_up (const HelperAgent *agent, int ic, const String &uuid);
1208 Connection signal_connect_candidate_table_page_up (HelperAgentSlotVoid *slot);
1211 * @brief Connect a slot to Helper candidate table page down signal.
1213 * This signal is used to do something when candidate table is paged down.
1215 * The prototype of the slot is:
1216 * void candidate_table_page_down (const HelperAgent *agent, int ic, const String &uuid);
1218 Connection signal_connect_candidate_table_page_down (HelperAgentSlotVoid *slot);
1221 * @brief Connect a slot to Helper update candidate table page size signal.
1223 * This signal is used to do something when candidate table page size is changed.
1225 * The prototype of the slot is:
1226 * void update_candidate_table_page_size (const HelperAgent *, int ic, const String &uuid, int page_size);
1228 Connection signal_connect_update_candidate_table_page_size (HelperAgentSlotInt *slot);
1231 * @brief Connect a slot to Helper select associate signal.
1233 * This signal is used to do something when associate is selected.
1235 * The prototype of the slot is:
1236 * void select_associate (const HelperAgent *agent, int ic, const String &uuid, int index);
1238 Connection signal_connect_select_associate (HelperAgentSlotInt *slot);
1241 * @brief Connect a slot to Helper associate table page up signal.
1243 * This signal is used to do something when associate table is paged up.
1245 * The prototype of the slot is:
1246 * void associate_table_page_up (const HelperAgent *agent, int ic, const String &uuid);
1248 Connection signal_connect_associate_table_page_up (HelperAgentSlotVoid *slot);
1251 * @brief Connect a slot to Helper associate table page down signal.
1253 * This signal is used to do something when associate table is paged down.
1255 * The prototype of the slot is:
1256 * void associate_table_page_down (const HelperAgent *agent, int ic, const String &uuid);
1258 Connection signal_connect_associate_table_page_down (HelperAgentSlotVoid *slot);
1261 * @brief Connect a slot to Helper update associate table page size signal.
1263 * This signal is used to do something when associate table page size is changed.
1265 * The prototype of the slot is:
1266 * void update_associate_table_page_size (const HelperAgent *, int ic, const String &uuid, int page_size);
1268 Connection signal_connect_update_associate_table_page_size (HelperAgentSlotInt *slot);
1271 * @brief Connect a slot to Helper turn on log signal.
1273 * This signal is used to turn on Helper ISE debug information.
1275 * The prototype of the slot is:
1276 * void turn_on_log (const HelperAgent *agent, uint32 &on);
1278 Connection signal_connect_turn_on_log (HelperAgentSlotUintVoid *slot);
1281 * @brief Connect a slot to Helper update displayed candidate number signal.
1283 * This signal is used to inform helper ISE displayed candidate number.
1285 * The prototype of the slot is:
1286 * void update_displayed_candidate_number (const HelperAgent *, int ic, const String &uuid, int number);
1288 Connection signal_connect_update_displayed_candidate_number (HelperAgentSlotInt *slot);
1291 * @brief Connect a slot to Helper longpress candidate signal.
1293 * This signal is used to do something when candidate is longpress.
1295 * The prototype of the slot is:
1296 * void longpress_candidate (const HelperAgent *agent, int ic, const String &uuid, int index);
1298 Connection signal_connect_longpress_candidate (HelperAgentSlotInt *slot);
1301 * @brief Connect a slot to Helper update candidate item layout signal.
1303 * The prototype of the slot is:
1304 * void update_candidate_item_layout (const HelperAgent *, const std::vector<uint32> &row_items);
1306 Connection signal_connect_update_candidate_item_layout (HelperAgentSlotUintVector *slot);
1309 * @brief Connect a slot to Helper process key event signal.
1311 * The prototype of the slot is:
1312 * void process_key_event (const HelperAgent *, KeyEvent &key, uint32 &ret);
1314 Connection signal_connect_process_key_event (HelperAgentSlotKeyEventUint *slot);
1317 * @brief Connect a slot to Helper process key event with keycode signal.
1319 * The prototype of the slot is:
1320 * void process_key_event_with_keycode (const HelperAgent *, KeyEvent &key, uint32 &ret, uint32 keycode);
1322 Connection signal_connect_process_key_event_with_keycode (HelperAgentSlotKeyEventUintUint *slot);
1325 * @brief Connect a slot to Helper set input mode signal.
1327 * This signal is used to set Helper ISE input mode.
1329 * The prototype of the slot is:
1330 * void set_input_mode (const HelperAgent *agent, uint32 &input_mode);
1332 Connection signal_connect_set_input_mode (HelperAgentSlotUintVoid *slot);
1335 * @brief Connect a slot to Helper set input hint signal.
1337 * This signal is used to set Helper ISE input hint.
1339 * The prototype of the slot is:
1340 * void set_input_hint (const HelperAgent *agent, uint32 &input_hint);
1342 Connection signal_connect_set_input_hint (HelperAgentSlotUintVoid *slot);
1345 * @brief Connect a slot to Helper update bidi direction signal.
1347 * This signal is used to update Helper ISE bidi direction.
1349 * The prototype of the slot is:
1350 * void update_bidi_direction (const HelperAgent *agent, uint32 &bidi_direction);
1352 Connection signal_connect_update_bidi_direction (HelperAgentSlotUintVoid *slot);
1355 * @brief Connect a slot to Helper show option window.
1357 * This signal is used to do request the ISE to show option window.
1359 * The prototype of the slot is:
1360 * void show_option_window (const HelperAgent *agent, int ic, const String &uuid);
1362 Connection signal_connect_show_option_window (HelperAgentSlotVoid *slot);
1365 * @brief Connect a slot to Helper resume option window.
1367 * This signal is used to do request the ISE to resume option window.
1369 * The prototype of the slot is:
1370 * void resume_option_window (const HelperAgent *agent, int ic, const String &uuid);
1372 Connection signal_connect_resume_option_window (HelperAgentSlotVoid *slot);
1375 * @brief Connect a slot to Helper check if the option is available.
1377 * This signal is used to request ISE to reply if the option (setting) is available.
1379 * The prototype of the slot is:
1380 * void check_option_window (const HelperAgent *agent, uint32 &avail);
1382 Connection signal_connect_check_option_window (HelperAgentSlotUintVoid *slot);
1385 * @brief Connect a slot to Helper process unconventional input device event signal.
1387 * The prototype of the slot is:
1388 * void process_input_device_event (const HelperAgent *, uint32 &type, char *data, size_t &size, uint32 &ret);
1390 Connection signal_connect_process_input_device_event (HelperAgentSlotUintCharSizeUint *slot);
1393 * @brief Connect a slot to Helper set prediction hint signal.
1395 * This signal is used to send prediction hint to Helper ISE.
1397 * The prototype of the slot is:
1398 * void set_prediction_hint (const HelperAgent *agent, char *prediction_hint);
1400 Connection signal_connect_set_prediction_hint (HelperAgentSlotStringVoid *slot);
1403 * @brief Connect a slot to Helper set mime type signal.
1405 * This signal is used to send mime type to Helper ISE.
1407 * The prototype of the slot is:
1408 * void set_mime_type (const HelperAgent *agent, char *mime_type);
1410 Connection signal_connect_set_mime_type (HelperAgentSlotStringVoid *slot);
1413 * @brief Connect a slot to Helper set prediction hint data signal.
1415 * This signal is used to send prediction hint data to Helper ISE.
1417 * The prototype of the slot is:
1418 * void set_prediction_hint_data (const HelperAgent *agent, char *key, char *value);
1420 Connection signal_connect_set_prediction_hint_data (HelperAgentSlotString *slot);
1423 * @brief Connect a slot to Helper set optimization hint signal.
1425 * This signal is used to send optimization hint to Helper ISE.
1427 * The prototype of the slot is:
1428 * void set_optimization_hint (const HelperAgent *agent, uint32 &hint);
1430 Connection signal_connect_set_optimization_hint (HelperAgentSlotUintVoid *slot);
1435 } /* namespace scim */
1443 #endif /* __SCIM_HELPER_H */
1446 vi:ts=4:nowrap:ai:expandtab