2 * ISF(Input Service Framework)
4 * ISF is based on SCIM 1.4.7 and extended for supporting more mobile fitable.
5 * Copyright (c) 2012-2014 Samsung Electronics Co., Ltd.
7 * Contact: Haifeng Deng <haifeng.deng@samsung.com>, Hengliang Luo <hl.luo@samsung.com>
9 * This library is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU Lesser General Public License as published by the
11 * Free Software Foundation; either version 2.1 of the License, or (at your option)
14 * This library is distributed in the hope that it will be useful, but WITHOUT ANY
15 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17 * License for more details.
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with this library; if not, write to the Free Software Foundation, Inc., 51
21 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 #ifndef __ISF_CONTROL_H
26 #define __ISF_CONTROL_H
28 #include <scim_visibility.h>
32 #endif /* __cplusplus */
34 /////////////////////////////////////////////////////////////////////////////
35 // Declaration of global data types.
36 /////////////////////////////////////////////////////////////////////////////
39 HARDWARE_KEYBOARD_ISE = 0, /* Hardware keyboard ISE */
40 SOFTWARE_KEYBOARD_ISE /* Software keyboard ISE */
44 * @brief The structure type to contain IME's information.
48 * @see isf_control_get_all_ime_info
55 int has_option; // 0: no keyboard option, 1: keyboard option is available, -1: unknown yet
58 /////////////////////////////////////////////////////////////////////////////
59 // Declaration of global functions.
60 /////////////////////////////////////////////////////////////////////////////
62 * @deprecated Deprecated since tizen 2.4. [Use isf_control_set_active_ime() instead]
64 * @brief Set active ISE by UUID.
66 * @param uuid The active ISE's UUID.
68 * @return 0 if successfully, otherwise return -1;
70 EAPI int isf_control_set_active_ise_by_uuid (const char *uuid);
73 * @deprecated Deprecated since tizen 2.4. [Use isf_control_get_active_ime() instead]
75 * @brief Get active ISE's UUID.
77 * @param uuid The parameter is used to store active ISE's UUID.
78 * Application needs free *uuid if it is not used.
80 * @return the length of UUID if successfully, otherwise return -1
82 EAPI int isf_control_get_active_ise (char **uuid);
85 * @brief Get the list of all ISEs' UUID.
87 * @param uuid_list The list is used to store all ISEs' UUID.
88 * Application needs free **uuid_list if it is not used.
90 * @return the count of UUID list if successfully, otherwise return -1;
92 EAPI int isf_control_get_ise_list (char ***uuid_list);
95 * @brief Get ISE's information according to ISE's UUID.
97 * @param uuid The ISE's UUID.
98 * @param name The parameter is used to store ISE's name. Application needs free *name if it is not used.
99 * @param language The parameter is used to store ISE's language. Application needs free *language if it is not used.
100 * @param type The parameter is used to store ISE's type.
101 * @param option The parameter is used to store ISE's option.
103 * @return 0 if successfully, otherwise return -1
105 EAPI int isf_control_get_ise_info (const char *uuid, char **name, char **language, ISE_TYPE_T *type, int *option);
108 * @brief Get ISE's information according to ISE's UUID.
110 * @param uuid The ISE's UUID.
111 * @param name The parameter is used to store ISE's name. Application needs free *name if it is not used.
112 * @param language The parameter is used to store ISE's language. Application needs free *language if it is not used.
113 * @param type The parameter is used to store ISE's type.
114 * @param option The parameter is used to store ISE's option.
115 * @param module_name The parameter is used to store ISE's module file name.
117 * @return 0 if successfully, otherwise return -1
119 EAPI int isf_control_get_ise_info_and_module_name (const char *uuid, char **name, char **language, ISE_TYPE_T *type, int *option, char **module_name);
122 * @brief Set active ISE to default ISE.
124 * @return 0 if successfully, otherwise return -1
126 EAPI int isf_control_set_active_ise_to_default (void);
129 * @brief Reset all ISEs' options.
131 * @return 0 if successfully, otherwise return -1;
133 EAPI int isf_control_reset_ise_option (void);
136 * @brief Set initial ISE by UUID.
138 * @param uuid The initial ISE's UUID.
140 * @return 0 if successfully, otherwise return -1
142 EAPI int isf_control_set_initial_ise_by_uuid (const char *uuid);
145 * @brief Get initial ISE UUID.
147 * @param uuid The parameter is used to store initial ISE's UUID.
148 * Application needs free *uuid if it is not used.
150 * @return the length of UUID if successfully, otherwise return -1;
152 EAPI int isf_control_get_initial_ise (char **uuid);
155 * @deprecated Deprecated since tizen 2.4. [Use isf_control_show_ime_selector() instead]
157 * @brief Show ISE selector.
159 * @return 0 if successfully, otherwise return -1;
161 EAPI int isf_control_show_ise_selector (void);
164 * @brief Get the number of S/W or H/W keyboard ISEs
166 * @param type ISE's type.
168 * @return the count of ISEs if successfully, otherwise return -1;
170 EAPI int isf_control_get_ise_count (ISE_TYPE_T type);
173 * @deprecated Deprecated since tizen 2.4. [Use isf_control_open_ime_option_window() instead]
175 * @brief Show ISE's option window.
177 * @return 0 if successfully, otherwise return -1
179 EAPI int isf_control_show_ise_option_window (void);
182 * @brief Gets the information of all IME (on-screen keyboard).
184 * @remarks This API should not be used by IME process.
188 * @param[out] info The parameter is used to store all IME information. Application needs to free @a *info variable
190 * @return The count of IME on success, otherwise -1
192 * @post The current active IME's has_option variable will have 0 or 1 value. Other IME's has_option variable might be -1 (unknown).
195 ime_info_s *ime_info = NULL;
196 int i, cnt = isf_control_get_all_ime_info(&ime_info);
198 for (i = 0; i < cnt; i++) {
199 LOGD("%s %s %d %d %d", ime_info[i].appid, ime_info[i].label, ime_info[i].is_enabled, ime_info[i].is_preinstalled, ime_info[i].has_option);
205 EAPI int isf_control_get_all_ime_info (ime_info_s **info);
208 * @brief Requests to open the current IME's option window.
210 * @remarks Each IME might have its option (setting) or not. This function should be called only if the current IME provides its option.
214 * @return 0 on success, otherwise return -1
216 * @pre The availibility of IME option can be found using isf_control_get_all_ime_info() and isf_control_get_active_ime() functions.
218 EAPI int isf_control_open_ime_option_window (void);
221 * @brief Gets active IME's Application ID.
225 * @param[out] appid This is used to store active IME's Application ID. The allocated @a appid needs to be released using free()
227 * @return The length of @a appid on success, otherwise -1
229 EAPI int isf_control_get_active_ime (char **appid);
232 * @brief Sets active IME by Application ID.
236 * @param[in] appid Application ID of IME to set as active one
238 * @return 0 on success, otherwise return -1
240 EAPI int isf_control_set_active_ime (const char *appid);
243 * @brief Sets On/Off of installed IME by Application ID.
247 * @param[in] appid Application ID of IME to enable or disable
248 * @param[in] is_enabled @c true to enable the IME, otherwise @c false
250 * @return 0 on success, otherwise return -1
252 EAPI int isf_control_set_enable_ime (const char *appid, bool is_enabled);
255 * @brief Requests to open the installed IME list application.
257 * @remarks This API should not be used by inputmethod-setting application.
261 * @return 0 on success, otherwise return -1
263 EAPI int isf_control_show_ime_list (void);
266 * @brief Requests to open the IME selector application.
268 * @remarks This API should not be used by inputmethod-setting application.
272 * @return 0 on success, otherwise return -1
274 EAPI int isf_control_show_ime_selector (void);
277 * @brief Checks if the specific IME is enabled or disabled in the system keyboard setting.
281 * @param[in] appid The application ID of the IME
282 * @param[out] enabled The On (enabled) and Off (disabled) state of the IME
284 * @return 0 on success, otherwise return -1
286 EAPI int isf_control_is_ime_enabled (const char *appid, bool *enabled);
289 * @brief Get the recent geometry of S/W keyboard
293 * @param[out] x Pointer to an integer in which to store the X coordinate of the IME that appeared recently. -1 indicates unknown.
294 * @param[out] y Pointer to an integer in which to store the Y coordinate of the IME that appeared recently. -1 indicates unknown.
295 * @param[out] w Pointer to an integer in which to store the width of the IME that appeared recently. -1 indicates unknown.
296 * @param[out] h Pointer to an integer in which to store the height of the IME that appeared recently. -1 indicates unknown.
298 * @return 0 if successfully, otherwise return -1;
300 EAPI int isf_control_get_recent_ime_geometry (int *x, int *y, int *w, int *h);
304 #endif /* __cplusplus */
306 #endif /* __ISF_CONTROL_H */
309 vi:ts=4:nowrap:ai:expandtab