ecore_imf: move the docs to header
authorJihoon Kim <imfine98@gmail.com>
Tue, 8 Jan 2013 01:57:22 +0000 (01:57 +0000)
committerJihoon Kim <imfine98@gmail.com>
Tue, 8 Jan 2013 01:57:22 +0000 (01:57 +0000)
SVN revision: 82373

src/lib/ecore_imf/Ecore_IMF.h
src/lib/ecore_imf/ecore_imf_context.c

index 641ece7..41dca8c 100644 (file)
@@ -34,6 +34,30 @@ extern "C" {
 #endif
 
 /**
+ * @defgroup Ecore_IMF_Context_Group Ecore Input Method Context Functions
+ * @ingroup Ecore_IMF_Lib_Group
+ *
+ * Functions that operate on Ecore Input Method Context objects.
+
+ * Ecore Input Method Context Function defines the interface for EFL input methods. 
+ * An input method is used by EFL text input widgets like elm_entry 
+ * (based on edje_entry) to map from key events to Unicode character strings.
+ *
+ * The default input method can be set through setting the ECORE_IMF_MODULE environment variable.
+ *
+ * An input method may consume multiple key events in sequence and finally output the composed result. 
+ * This is called preediting, and an input method may provide feedback about 
+ * this process by displaying the intermediate composition states as preedit text.
+ *
+ * Immodule is plugin to connect your application and input method framework such as SCIM, ibus, and so on.@n
+ * ecore_imf_init() should be called to initialize and load immodule.@n
+ * ecore_imf_shutdown() is used for shutdowning and unloading immodule.
+ *
+ * An example of usage of these functions can be found at:
+ * @li @ref ecore_imf_example_c
+ */
+
+/**
  * @addtogroup Ecore_IMF_Context_Group
  *
  * @{
@@ -53,7 +77,8 @@ typedef enum
 {
    ECORE_IMF_INPUT_PANEL_STATE_SHOW,        /**< Notification after the display of the input panel @since 1.7 */
    ECORE_IMF_INPUT_PANEL_STATE_HIDE,        /**< Notification prior to the dismissal of the input panel @since 1.7 */
-   ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW    /**< Notification prior to the display of the input panel @since 1.7 */
+   ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW,   /**< Notification prior to the display of the input panel @since 1.7 */
+   ECORE_IMF_INPUT_PANEL_STATE_WILL_HIDE    /**< Notification prior to the dismissal of the input panel @since 1.8 */
 } Ecore_IMF_Input_Panel_State;
 
 typedef enum
@@ -237,8 +262,10 @@ typedef enum
    ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY,      /**< Number Only layout */
    ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID,         /**< Never use this */
    ECORE_IMF_INPUT_PANEL_LAYOUT_HEX,             /**< Hexadecimal layout @since 1.2 */
-   ECORE_IMF_INPUT_PANEL_LAYOUT_TERMINAL,        /**< Command-line terminal layout including esc, alt, ctrl key, so on (no auto-correct, no auto-capitalization) @since 1.2 */
-   ECORE_IMF_INPUT_PANEL_LAYOUT_PASSWORD         /**< Like normal, but no auto-correct, no auto-capitalization etc. @since 1.2 */
+   ECORE_IMF_INPUT_PANEL_LAYOUT_TERMINAL,        /**< Command-line terminal layout including ESC, Alt, Ctrl key, so on (no auto-correct, no auto-capitalization) @since 1.2 */
+   ECORE_IMF_INPUT_PANEL_LAYOUT_PASSWORD,        /**< Like normal, but no auto-correct, no auto-capitalization etc. @since 1.2 */
+   ECORE_IMF_INPUT_PANEL_LAYOUT_NAME,            /**< Name layout */
+   ECORE_IMF_INPUT_PANEL_LAYOUT_ADDRESS,         /**< Address layout */
 } Ecore_IMF_Input_Panel_Layout;
 
 /**
@@ -489,76 +516,926 @@ EAPI int                           ecore_imf_shutdown(void);
 
 EAPI void                          ecore_imf_module_register(const Ecore_IMF_Context_Info *info, Ecore_IMF_Context *(*imf_module_create)(void), Ecore_IMF_Context *(*imf_module_exit)(void));
 
+/**
+ * Get the list of the available Input Method Context ids.
+ *
+ * Note that the caller is responsible for freeing the Eina_List
+ * when finished with it. There is no need to finish the list strings.
+ *
+ * @return Return an Eina_List of strings;
+ *         on failure it returns NULL.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI Eina_List                    *ecore_imf_context_available_ids_get(void);
 EAPI Eina_List                    *ecore_imf_context_available_ids_by_canvas_type_get(const char *canvas_type);
+
+/**
+ * Get the id of the default Input Method Context.
+ * The id may to used to create a new instance of an Input Method
+ * Context object.
+ *
+ * @return Return a string containing the id of the default Input
+ *         Method Context; on failure it returns NULL.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI const char                   *ecore_imf_context_default_id_get(void);
 EAPI const char                   *ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type);
+
+/**
+ * Retrieve the info for the Input Method Context with @p id.
+ *
+ * @param id The Input Method Context id to query for.
+ * @return Return a #Ecore_IMF_Context_Info for the Input Method Context with @p id;
+ *         on failure it returns NULL.
+ * @ingroup Ecore_IMF_Context_Group
+ * 
+ * Example
+ * @code
+ *
+ * const char *ctx_id;
+ * const Ecore_IMF_Context_Info *ctx_info;
+ * Ecore_IMF_Context *imf_context;
+ * ctx_id = ecore_imf_context_default_id_get();
+ * if (ctx_id)
+ *   {
+ *      ctx_info = ecore_imf_context_info_by_id_get(ctx_id);
+ *      if (!ctx_info->canvas_type ||
+ *          strcmp(ctx_info->canvas_type, "evas") == 0)
+ *        {
+ *           imf_context = ecore_imf_context_add(ctx_id);
+ *        }
+ *      else
+ *        {
+ *           ctx_id = ecore_imf_context_default_id_by_canvas_type_get("evas");
+ *           if (ctx_id)
+ *             {
+ *                imf_context = ecore_imf_context_add(ctx_id);
+ *             }
+ *        }
+ *   }
+ * @endcode
+ */
 EAPI const Ecore_IMF_Context_Info *ecore_imf_context_info_by_id_get(const char *id);
 
+/**
+ * Create a new Input Method Context defined by the given id.
+ *
+ * @param id The Input Method Context id.
+ * @return A newly allocated Input Method Context;
+ *         on failure it returns NULL.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI Ecore_IMF_Context            *ecore_imf_context_add(const char *id);
+
+/**
+ * Retrieve the info for the given Input Method Context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return Return a #Ecore_IMF_Context_Info for the given Input Method Context;
+ *         on failure it returns NULL.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI const Ecore_IMF_Context_Info *ecore_imf_context_info_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Delete the given Input Method Context and free its memory.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_del(Ecore_IMF_Context *ctx);
+
+/**
+ * Set the client window for the Input Method Context; this is the
+ * Ecore_X_Window when using X11, Ecore_Win32_Window when using Win32, etc.
+ * This window is used in order to correctly position status windows, and may
+ * also be used for purposes internal to the Input Method Context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param window The client window. This may be @c NULL to indicate
+ *               that the previous client window no longer exists.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window);
+
+/**
+ * Get the client window of the Input Method Context
+ *
+ * See @ref ecore_imf_context_client_window_set for more details.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return Return the client window.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                         *ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Set the client canvas for the Input Method Context; this is the
+ * canvas in which the input appears.
+ * The canvas type can be determined by using the context canvas type.
+ * Actually only canvas with type "evas" (Evas *) is supported.
+ * This canvas may be used in order to correctly position status windows, and may
+ * also be used for purposes internal to the Input Method Context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param canvas The client canvas. This may be @c NULL to indicate
+ *               that the previous client canvas no longer exists.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas);
+
+/**
+ * Get the client canvas of the Input Method Context.
+ *
+ * See @ref ecore_imf_context_client_canvas_set for more details.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return Return the client canvas.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                         *ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Ask the Input Method Context to show itself.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_show(Ecore_IMF_Context *ctx);
+
+/**
+ * Ask the Input Method Context to hide itself.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_hide(Ecore_IMF_Context *ctx);
+
+/**
+ * Retrieve the current preedit string and cursor position
+ * for the Input Method Context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param str Location to store the retrieved string. The
+ *            string retrieved must be freed with free().
+ * @param cursor_pos Location to store position of cursor (in characters)
+ *                   within the preedit string.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cursor_pos);
+
+/**
+ * Retrieve the current preedit string, attributes and
+ * cursor position for the Input Method Context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param str Location to store the retrieved string. The
+ *            string retrieved must be freed with free().
+ * @param attrs an Eina_List of attributes
+ * @param cursor_pos Location to store position of cursor (in characters)
+ *                   within the preedit string.
+ * @ingroup Ecore_IMF_Context_Group
+ *
+ * Example
+ * @code
+ * char *preedit_string;
+ * int cursor_pos;
+ * Eina_List *attrs = NULL, *l = NULL;
+ * Ecore_IMF_Preedit_Attr *attr;
+ *
+ * ecore_imf_context_preedit_string_with_attributes_get(imf_context,
+ *                                                      &preedit_string,
+ *                                                      &attrs, &cursor_pos);
+ * if (!preedit_string) return;
+ *
+ *  if (strlen(preedit_string) > 0)
+ *    {
+ *       if (attrs)
+ *         {
+ *            EINA_LIST_FOREACH(attrs, l, attr)
+ *              {
+ *                 if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB1)
+ *                   {
+ *                      // Something to do
+ *                   }
+ *                 else if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB2)
+ *                   {
+ *                      // Something to do
+ *                   }
+ *                 else if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB3)
+ *                   {
+ *                      // Something to do
+ *                   }
+ *              }
+ *         }
+ *    }
+ * 
+ * // delete attribute list
+ * EINA_LIST_FREE(attrs, attr) free(attr);
+ *
+ * free(preedit_string);
+ * @endcode
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx, char **str, Eina_List **attrs, int *cursor_pos);
+
+/**
+ * Notify the Input Method Context that the widget to which its
+ * correspond has gained focus.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ *
+ * Example
+ * @code
+ * static void
+ * _focus_in_cb(void *data, Evas_Object *o, const char *emission, const char *source)
+ * {
+ *    ecore_imf_context_reset(imf_context);
+ *    ecore_imf_context_focus_in(imf_context);
+ * }
+ *
+ * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_IN, _focus_in_cb, ed);
+ * @endcode
+ */
 EAPI void                          ecore_imf_context_focus_in(Ecore_IMF_Context *ctx);
+
+/**
+ * Notify the Input Method Context that the widget to which its
+ * correspond has lost focus.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ *
+ * Example
+ * @code
+ * static void
+ * _focus_out_cb(void *data, Evas_Object *o, const char *emission, const char *source)
+ * {
+ *    ecore_imf_context_reset(imf_context);
+ *    ecore_imf_context_focus_out(imf_context);
+ * }
+ *
+ * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_OUT, _focus_out_cb, ed);
+ * @endcode
+ */
 EAPI void                          ecore_imf_context_focus_out(Ecore_IMF_Context *ctx);
+
+/**
+ * Notify the Input Method Context that a change such as a
+ * change in cursor position has been made. This will typically
+ * cause the Input Method Context to clear the preedit state.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ * 
+ * Example
+ * @code
+ * static void
+ * _focus_out_cb(void *data, Evas_Object *o, const char *emission, const char *source)
+ * {
+ *    ecore_imf_context_reset(imf_context);
+ *    ecore_imf_context_focus_out(imf_context);
+ * }
+ *
+ * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_OUT, _focus_out_cb, ed);
+ * @endcode
+ */
 EAPI void                          ecore_imf_context_reset(Ecore_IMF_Context *ctx);
+
+/**
+ * Notify the Input Method Context that a change in the cursor
+ * position has been made.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param cursor_pos New cursor position in characters.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_cursor_position_set(Ecore_IMF_Context *ctx, int cursor_pos);
+
+/**
+ * Notify the Input Method Context that a change in the cursor
+ * location has been made. The location is relative to the canvas.
+ * The cursor location can be used to determine the position of 
+ * candidate word window in the immodule.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param x cursor x position.
+ * @param y cursor y position.
+ * @param w cursor width.
+ * @param h cursor height.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_cursor_location_set(Ecore_IMF_Context *ctx, int x, int y, int w, int h);
+
+/**
+ * Set whether the IM context should use the preedit string
+ * to display feedback. If @c use_preedit is @c EINA_FALSE (default
+ * is @c EINA_TRUE), then the IM context may use some other method to display
+ * feedback, such as displaying it in a child of the root window.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param use_preedit Whether the IM context should use the preedit string.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_use_preedit_set(Ecore_IMF_Context *ctx, Eina_Bool use_preedit);
+
+/**
+ * Set the callback to be used on surrounding_get request.
+ *
+ * This callback will be called when the Input Method Context
+ * module requests the surrounding context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param func The callback to be called.
+ * @param data The data pointer to be passed to @p func
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, Eina_Bool (*func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos), const void *data);
+
+/**
+ * Set the input mode used by the Ecore Input Context.
+ *
+ * The input mode can be one of the input modes defined in
+ * Ecore_IMF_Input_Mode. The default input mode is
+ * ECORE_IMF_INPUT_MODE_FULL.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param input_mode The input mode to be used by @p ctx.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI void                          ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode);
+
+/**
+ * Get the input mode being used by the Ecore Input Context.
+ *
+ * See @ref ecore_imf_context_input_mode_set for more details.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return The input mode being used by @p ctx.
+ * @ingroup Ecore_IMF_Context_Group
+ */
 EAPI Ecore_IMF_Input_Mode          ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Allow an Ecore Input Context to internally handle an event.
+ * If this function returns @c EINA_TRUE, then no further processing
+ * should be done for this event.
+ *
+ * Input methods must be able to accept all types of events (simply
+ * returning @c EINA_FALSE if the event was not handled), but there is no
+ * obligation of any events to be submitted to this function.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param type The type of event defined by #Ecore_IMF_Event_Type.
+ * @param event The event itself.
+ * @return @c EINA_TRUE if the event was handled; otherwise @c EINA_FALSE.
+ * @ingroup Ecore_IMF_Context_Group
+ *
+ * Example
+ * @code
+ * static void
+ * _key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+ * {
+ *    Evas_Event_Key_Down *ev = event_info;
+ *    if (!ev->keyname) return;
+ *
+ *    if (imf_context)
+ *      {
+ *         Ecore_IMF_Event_Key_Down ecore_ev;
+ *         ecore_imf_evas_event_key_down_wrap(ev, &ecore_ev);
+ *         if (ecore_imf_context_filter_event(imf_context,
+ *                                            ECORE_IMF_EVENT_KEY_DOWN,
+ *                                            (Ecore_IMF_Event *)&ecore_ev))
+ *           return;
+ *      }
+ * }
+ *
+ * evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, data);
+ * @endcode
+ */
 EAPI Eina_Bool                     ecore_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event);
 
 /* plugin specific functions */
+
+/**
+ * @defgroup Ecore_IMF_Context_Module_Group Ecore Input Method Context Module Functions
+ * @ingroup Ecore_IMF_Lib_Group
+ *
+ * Functions that should be used by Ecore Input Method Context modules.
+ */
+
+/**
+ * Creates a new Input Method Context with klass specified by @p ctxc.
+ *
+ * This method should be used by modules implementing the Input
+ * Method Context interface.
+ *
+ * @param ctxc An #Ecore_IMF_Context_Class.
+ * @return A new #Ecore_IMF_Context; on failure it returns NULL.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI Ecore_IMF_Context            *ecore_imf_context_new(const Ecore_IMF_Context_Class *ctxc);
+
+/**
+ * Set the Input Method Context specific data.
+ *
+ * Note that this method should be used by modules to set
+ * the Input Method Context specific data and it's not meant to
+ * be used by applications to store application specific data.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param data The Input Method Context specific data.
+ * @return A new #Ecore_IMF_Context; on failure it returns NULL.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI void                          ecore_imf_context_data_set(Ecore_IMF_Context *ctx, void *data);
+
+/**
+ * Get the Input Method Context specific data.
+ *
+ * See @ref ecore_imf_context_data_set for more details.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return The Input Method Context specific data.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI void                         *ecore_imf_context_data_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Retrieve context around insertion point.
+ * Input methods typically want context in order to constrain input text based on existing text; 
+ * this is important for languages such as Thai where only some sequences of characters are allowed.
+ * In addition, the text around the insertion point can be used for supporting autocapital feature.
+ *
+ * This function is implemented by calling the
+ * Ecore_IMF_Context::retrieve_surrounding_func (
+ * set using #ecore_imf_context_retrieve_surrounding_callback_set).
+ *
+ * There is no obligation for a widget to respond to the
+ * retrieve_surrounding_func, so input methods must be prepared
+ * to function without context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param text Location to store a UTF-8 encoded string of text
+ *             holding context around the insertion point.
+ *             If the function returns @c EINA_TRUE, then you must free
+ *             the result stored in this location with free().
+ * @param cursor_pos Location to store the position in characters of
+ *                   the insertion cursor within @p text.
+ * @return @c EINA_TRUE if surrounding text was provided; otherwise
+ * @c EINA_FALSE.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI Eina_Bool                     ecore_imf_context_surrounding_get(Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
+
+/**
+ * Adds ECORE_IMF_EVENT_PREEDIT_START to the event queue.
+ *
+ * ECORE_IMF_EVENT_PREEDIT_START should be added when a new preedit sequence starts.
+ * It's asynchronous method to put event to the event queue.
+ * ecore_imf_context_event_callback_call() can be used as synchronous method.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI void                          ecore_imf_context_preedit_start_event_add(Ecore_IMF_Context *ctx);
+
+/**
+ * Adds ECORE_IMF_EVENT_PREEDIT_END to the event queue.
+ *
+ * ECORE_IMF_EVENT_PREEDIT_END should be added when a new preedit sequence has been completed or canceled.
+ * It's asynchronous method to put event to the event queue.
+ * ecore_imf_context_event_callback_call() can be used as synchronous method.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI void                          ecore_imf_context_preedit_end_event_add(Ecore_IMF_Context *ctx);
+
+/**
+ * Adds ECORE_IMF_EVENT_PREEDIT_CHANGED to the event queue.
+ *
+ * It's asynchronous method to put event to the event queue.
+ * ecore_imf_context_event_callback_call() can be used as synchronous method.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI void                          ecore_imf_context_preedit_changed_event_add(Ecore_IMF_Context *ctx);
+
+/**
+ * Adds ECORE_IMF_EVENT_COMMIT to the event queue.
+ *
+ * It's asynchronous method to put event to the event queue.
+ * ecore_imf_context_event_callback_call() can be used as synchronous method.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param str The committed string.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI void                          ecore_imf_context_commit_event_add(Ecore_IMF_Context *ctx, const char *str);
+
+/**
+ * Adds ECORE_IMF_EVENT_DELETE_SURROUNDING to the event queue.
+ *
+ * Asks the widget that the input context is attached to to delete characters around the cursor position
+ * by adding the ECORE_IMF_EVENT_DELETE_SURROUNDING to the event queue.
+ * Note that offset and n_chars are in characters not in bytes.
+ *
+ * It's asynchronous method to put ECORE_IMF_EVENT_DELETE_SURROUNDING event to the event queue.
+ * ecore_imf_context_event_callback_call() can be used as synchronous method.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param offset The start offset of surrounding to be deleted.
+ * @param n_chars The number of characters to be deleted.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ */
 EAPI void                          ecore_imf_context_delete_surrounding_event_add(Ecore_IMF_Context *ctx, int offset, int n_chars);
+
+/**
+ * Add (register) a callback function to a given context event.
+ *
+ * This function adds a function callback to the context @p ctx when the
+ * event of type @p type occurs on it. The function pointer is @p
+ * func.
+ *
+ * The event type @p type to trigger the function may be one of
+ * #ECORE_IMF_CALLBACK_PREEDIT_START, #ECORE_IMF_CALLBACK_PREEDIT_END,
+ * #ECORE_IMF_CALLBACK_PREEDIT_CHANGED, #ECORE_IMF_CALLBACK_COMMIT and
+ * #ECORE_IMF_CALLBACK_DELETE_SURROUNDING.
+ *
+ * @param ctx Ecore_IMF_Context to attach a callback to.
+ * @param type The type of event that will trigger the callback
+ * @param func The (callback) function to be called when the event is
+ *        triggered
+ * @param data The data pointer to be passed to @p func
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ *
+ * Example
+ * @code
+ * static void
+ * _imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx, void *event_info)
+ * {
+ *    char *commit_str = event_info;
+ *    // something to do
+ * }
+ *
+ * ecore_imf_context_event_callback_add(en->imf_context, ECORE_IMF_CALLBACK_COMMIT, _imf_event_commit_cb, data);
+ * @endcode
+ */
 EAPI void                          ecore_imf_context_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func, const void *data);
+
+/**
+ * Delete (unregister) a callback function registered to a given
+ * context event.
+ *
+ * This function removes a function callback from the context @p ctx when the
+ * event of type @p type occurs on it. The function pointer is @p
+ * func.
+ *
+ * @see ecore_imf_context_event_callback_add() for more details
+ *
+ * @param ctx Ecore_IMF_Context to remove a callback from.
+ * @param type The type of event that was triggering the callback
+ * @param func The (callback) function that was to be called when the event was triggered
+ * @return the data pointer
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI void                         *ecore_imf_context_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func);
+
+/**
+ * Call a given callback on the context @p ctx.
+ *
+ * ecore_imf_context_preedit_start_event_add(), ecore_imf_context_preedit_end_event_add(), 
+ * ecore_imf_context_preedit_changed_event_add(), ecore_imf_context_commit_event_add() and
+ * ecore_imf_context_delete_surrounding_event_add() APIs are asynchronous 
+ * because those API adds each event to the event queue.
+ *
+ * This API provides the way to call each callback function immediately.
+ *
+ * @param ctx Ecore_IMF_Context.
+ * @param type The type of event that will trigger the callback
+ * @param event_info The pointer to event specific struct or information to
+ *        pass to the callback functions registered on this event
+ * @ingroup Ecore_IMF_Context_Module_Group
+ * @since 1.2.0
+ */
 EAPI void                          ecore_imf_context_event_callback_call(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, void *event_info);
+
+/**
+ * Set whether the IM context should allow to use the text prediction.
+ * If @p prediction is @c EINA_FALSE (default is @c EINA_TRUE), then the IM
+ * context will not display the text prediction window.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param prediction Whether the IM context should allow to use the text prediction.
+ * @note Default value is EINA_TRUE.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_prediction_allow_set(Ecore_IMF_Context *ctx, Eina_Bool prediction);
+
+/**
+ * Get whether the IM context should allow to use the text prediction.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return @c EINA_TRUE if it allows to use the text prediction, otherwise
+ * @c EINA_FALSE.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI Eina_Bool                     ecore_imf_context_prediction_allow_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Set the autocapitalization type on the immodule.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param autocapital_type the autocapitalization type.
+ * @note Default type is ECORE_IMF_AUTOCAPITAL_TYPE_SENTENCE.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_autocapital_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Autocapital_Type autocapital_type);
+
+/**
+ * Get the autocapitalization type.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return The autocapital type being used by @p ctx.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI Ecore_IMF_Autocapital_Type    ecore_imf_context_autocapital_type_get(Ecore_IMF_Context *ctx);
 
+/**
+ * Ask the Input Method Context to show the control panel of using Input Method.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_control_panel_show(Ecore_IMF_Context *ctx);
+
+/**
+ * Ask the Input Method Context to hide the control panel of using Input Method.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_control_panel_hide(Ecore_IMF_Context *ctx);
 
+/**
+ * Ask the Input Method Context to show the input panel (virtual keyboard).
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_input_panel_show(Ecore_IMF_Context *ctx);
+
+/**
+ * Ask the Input Method Context to hide the input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_input_panel_hide(Ecore_IMF_Context *ctx);
+
+/**
+ * Set the layout of the input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param layout see #Ecore_IMF_Input_Panel_Layout
+ * @note Default layout type is ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_input_panel_layout_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout);
+
+/**
+ * Get the layout of the current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return layout see #Ecore_IMF_Input_Panel_Layout
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI Ecore_IMF_Input_Panel_Layout  ecore_imf_context_input_panel_layout_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Set the language of the input panel.
+ * This API can be used when you want to show the English keyboard.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param lang the language to be set to the input panel.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_input_panel_language_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang);
+
+/**
+ * Get the language of the input panel.
+ *
+ * See @ref ecore_imf_context_input_panel_language_set for more details.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return Ecore_IMF_Input_Panel_Lang
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI Ecore_IMF_Input_Panel_Lang    ecore_imf_context_input_panel_language_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Set whether the Input Method Context should request to show the input panel automatically
+ * when the widget has focus.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param enabled If true, the input panel will be shown when the widget is clicked or has focus.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI void                          ecore_imf_context_input_panel_enabled_set(Ecore_IMF_Context *ctx, Eina_Bool enable);
+
+/**
+ * Get whether the Input Method Context requests to show the input panel automatically.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return Return the attribute to show the input panel automatically
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.1.0
+ */
 EAPI Eina_Bool                     ecore_imf_context_input_panel_enabled_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Set the input panel-specific data to deliver to the input panel.
+ * This API is used by applications to deliver specific data to the input panel.
+ * The data format MUST be negotiated by both application and the input panel.
+ * The size and format of data are defined by the input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param data The specific data to be set to the input panel.
+ * @param len the length of data, in bytes, to send to the input panel
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI void                          ecore_imf_context_input_panel_imdata_set(Ecore_IMF_Context *ctx, const void *data, int len);
+
+/**
+ * Get the specific data of the current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param data The specific data to be got from the input panel
+ * @param len The length of data
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI void                          ecore_imf_context_input_panel_imdata_get(Ecore_IMF_Context *ctx, void *data, int *len);
+
+/**
+ * Set the "return" key type. This type is used to set string or icon on the "return" key of the input panel.
+ *
+ * An input panel displays the string or icon associated with this type
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param return_key_type The type of "return" key on the input panel
+ * @note Default type is ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI void                          ecore_imf_context_input_panel_return_key_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Return_Key_Type return_key_type);
+
+/**
+ * Get the "return" key type.
+ *
+ * @see ecore_imf_context_input_panel_return_key_type_set() for more details
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return The type of "return" key on the input panel
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI Ecore_IMF_Input_Panel_Return_Key_Type ecore_imf_context_input_panel_return_key_type_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Set the return key on the input panel to be disabled.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param disabled The state
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI void                          ecore_imf_context_input_panel_return_key_disabled_set(Ecore_IMF_Context *ctx, Eina_Bool disabled);
+
+/**
+ * Get whether the return key on the input panel should be disabled or not.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return @c EINA_TRUE if it should be disabled.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI Eina_Bool                     ecore_imf_context_input_panel_return_key_disabled_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Set the caps lock mode on the input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param mode Turn on caps lock on the input panel if @c EINA_TRUE.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI void                          ecore_imf_context_input_panel_caps_lock_mode_set(Ecore_IMF_Context *ctx, Eina_Bool mode);
+
+/**
+ * Get the caps lock mode on the input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return @c EINA_TRUE if the caps lock is turned on.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
 EAPI Eina_Bool                     ecore_imf_context_input_panel_caps_lock_mode_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Get the position of the current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param x top-left x co-ordinate of the input panel
+ * @param y top-left y co-ordinate of the input panel
+ * @param w width of the input panel
+ * @param h height of the input panel
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.3
+ */
 EAPI void                          ecore_imf_context_input_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
+
+/**
+ * Get state of current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @return The state of input panel.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.3
+ */
 EAPI Ecore_IMF_Input_Panel_State   ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx);
+
+/**
+ * Register a callback function which will be called if there is change in input panel state,language,mode etc.
+ * In order to deregister the callback function 
+ * Use @ref ecore_imf_context_input_panel_event_callback_del.
+ *
+ * @param ctx An #Ecore_IMF_Context
+ * @param type event type
+ * @param func the callback function
+ * @param data application-input panel specific data.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.3
+ */
 EAPI void                          ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value), const void *data);
+
+/**
+ * Unregister a callback function which will be called if there is change in input panel state, language, mode etc.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param type An #Ecore_IMF_Input_Panel_Event.
+ * @param func the callback function
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.3
+ */
 EAPI void                          ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value));
+
+/**
+ * Get the current language locale of the input panel.
+ *
+ * ex) fr_FR
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param lang Location to store the retrieved language string. The
+ *             string retrieved must be freed with free().
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.3
+ */
 EAPI void                          ecore_imf_context_input_panel_language_locale_get(Ecore_IMF_Context *ctx, char **lang);
+
+/**
+ * Get the geometry information of the candidate panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param x top-left x co-ordinate of the candidate panel
+ * @param y top-left y co-ordinate of the candidate panel
+ * @param w width of the candidate panel
+ * @param h height of the candidate panel
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.3
+ */
 EAPI void                          ecore_imf_context_candidate_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
 
 /* The following entry points must be exported by each input method module
index 4e4fadc..8f6efa6 100644 (file)
 #include "Ecore_IMF.h"
 #include "ecore_imf_private.h"
 
-/**
- * @defgroup Ecore_IMF_Context_Group Ecore Input Method Context Functions
- * @ingroup Ecore_IMF_Lib_Group
- *
- * Functions that operate on Ecore Input Method Context objects.
-
- * Ecore Input Method Context Function defines the interface for EFL input methods. 
- * An input method is used by EFL text input widgets like elm_entry 
- * (based on edje_entry) to map from key events to Unicode character strings.
- *
- * The default input method can be set through setting the ECORE_IMF_MODULE environment variable.
- *
- * An input method may consume multiple key events in sequence and finally output the composed result. 
- * This is called preediting, and an input method may provide feedback about 
- * this process by displaying the intermediate composition states as preedit text.
- *
- * Immodule is plugin to connect your application and input method framework such as SCIM, ibus, and so on.@n
- * ecore_imf_init() should be called to initialize and load immodule.@n
- * ecore_imf_shutdown() is used for shutdowning and unloading immodule.
- *
- * An example of usage of these functions can be found at:
- * @li @ref ecore_imf_example_c
- */
-
-/**
- * Get the list of the available Input Method Context ids.
- *
- * Note that the caller is responsible for freeing the Eina_List
- * when finished with it. There is no need to finish the list strings.
- *
- * @return Return an Eina_List of strings;
- *         on failure it returns NULL.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI Eina_List *
 ecore_imf_context_available_ids_get(void)
 {
@@ -81,15 +47,6 @@ _ecore_imf_context_match_locale(const char *locale, const char *against, int aga
    return 0;
 }
 
-/**
- * Get the id of the default Input Method Context.
- * The id may to used to create a new instance of an Input Method
- * Context object.
- *
- * @return Return a string containing the id of the default Input
- *         Method Context; on failure it returns NULL.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI const char *
 ecore_imf_context_default_id_get(void)
 {
@@ -154,40 +111,6 @@ ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type)
    return id;
 }
 
-/**
- * Retrieve the info for the Input Method Context with @p id.
- *
- * @param id The Input Method Context id to query for.
- * @return Return a #Ecore_IMF_Context_Info for the Input Method Context with @p id;
- *         on failure it returns NULL.
- * @ingroup Ecore_IMF_Context_Group
- * 
- * Example
- * @code
- *
- * const char *ctx_id;
- * const Ecore_IMF_Context_Info *ctx_info;
- * Ecore_IMF_Context *imf_context;
- * ctx_id = ecore_imf_context_default_id_get();
- * if (ctx_id)
- *   {
- *      ctx_info = ecore_imf_context_info_by_id_get(ctx_id);
- *      if (!ctx_info->canvas_type ||
- *          strcmp(ctx_info->canvas_type, "evas") == 0)
- *        {
- *           imf_context = ecore_imf_context_add(ctx_id);
- *        }
- *      else
- *        {
- *           ctx_id = ecore_imf_context_default_id_by_canvas_type_get("evas");
- *           if (ctx_id)
- *             {
- *                imf_context = ecore_imf_context_add(ctx_id);
- *             }
- *        }
- *   }
- * @endcode
- */
 EAPI const Ecore_IMF_Context_Info *
 ecore_imf_context_info_by_id_get(const char *id)
 {
@@ -199,14 +122,6 @@ ecore_imf_context_info_by_id_get(const char *id)
    return module->info;
 }
 
-/**
- * Create a new Input Method Context defined by the given id.
- *
- * @param id The Input Method Context id.
- * @return A newly allocated Input Method Context;
- *         on failure it returns NULL.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI Ecore_IMF_Context *
 ecore_imf_context_add(const char *id)
 {
@@ -242,14 +157,6 @@ ecore_imf_context_add(const char *id)
    return ctx;
 }
 
-/**
- * Retrieve the info for the given Input Method Context.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return Return a #Ecore_IMF_Context_Info for the given Input Method Context;
- *         on failure it returns NULL.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI const Ecore_IMF_Context_Info *
 ecore_imf_context_info_get(Ecore_IMF_Context *ctx)
 {
@@ -262,12 +169,6 @@ ecore_imf_context_info_get(Ecore_IMF_Context *ctx)
    return ctx->module->info;
 }
 
-/**
- * Delete the given Input Method Context and free its memory.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_del(Ecore_IMF_Context *ctx)
 {
@@ -291,17 +192,6 @@ ecore_imf_context_del(Ecore_IMF_Context *ctx)
    free(ctx);
 }
 
-/**
- * Set the client window for the Input Method Context; this is the
- * Ecore_X_Window when using X11, Ecore_Win32_Window when using Win32, etc.
- * This window is used in order to correctly position status windows, and may
- * also be used for purposes internal to the Input Method Context.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param window The client window. This may be @c NULL to indicate
- *               that the previous client window no longer exists.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window)
 {
@@ -315,16 +205,6 @@ ecore_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window)
    ctx->window = window;
 }
 
-/**
- * Get the client window of the Input Method Context
- *
- * See @ref ecore_imf_context_client_window_set for more details.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return Return the client window.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void *
 ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx)
 {
@@ -337,19 +217,6 @@ ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx)
    return ctx->window;
 }
 
-/**
- * Set the client canvas for the Input Method Context; this is the
- * canvas in which the input appears.
- * The canvas type can be determined by using the context canvas type.
- * Actually only canvas with type "evas" (Evas *) is supported.
- * This canvas may be used in order to correctly position status windows, and may
- * also be used for purposes internal to the Input Method Context.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param canvas The client canvas. This may be @c NULL to indicate
- *               that the previous client canvas no longer exists.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas)
 {
@@ -363,16 +230,6 @@ ecore_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas)
    ctx->client_canvas = canvas;
 }
 
-/**
- * Get the client canvas of the Input Method Context.
- *
- * See @ref ecore_imf_context_client_canvas_set for more details.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return Return the client canvas.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void *
 ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx)
 {
@@ -385,12 +242,6 @@ ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx)
    return ctx->client_canvas;
 }
 
-/**
- * Ask the Input Method Context to show itself.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_show(Ecore_IMF_Context *ctx)
 {
@@ -403,12 +254,6 @@ ecore_imf_context_show(Ecore_IMF_Context *ctx)
    if (ctx->klass->show) ctx->klass->show(ctx);
 }
 
-/**
- * Ask the Input Method Context to hide itself.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_hide(Ecore_IMF_Context *ctx)
 {
@@ -421,17 +266,6 @@ ecore_imf_context_hide(Ecore_IMF_Context *ctx)
    if (ctx->klass->hide) ctx->klass->hide(ctx);
 }
 
-/**
- * Retrieve the current preedit string and cursor position
- * for the Input Method Context.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param str Location to store the retrieved string. The
- *            string retrieved must be freed with free().
- * @param cursor_pos Location to store position of cursor (in characters)
- *                   within the preedit string.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cursor_pos)
 {
@@ -450,59 +284,6 @@ ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cu
      }
 }
 
-/**
- * Retrieve the current preedit string, attributes and
- * cursor position for the Input Method Context.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param str Location to store the retrieved string. The
- *            string retrieved must be freed with free().
- * @param attrs an Eina_List of attributes
- * @param cursor_pos Location to store position of cursor (in characters)
- *                   within the preedit string.
- * @ingroup Ecore_IMF_Context_Group
- *
- * Example
- * @code
- * char *preedit_string;
- * int cursor_pos;
- * Eina_List *attrs = NULL, *l = NULL;
- * Ecore_IMF_Preedit_Attr *attr;
- *
- * ecore_imf_context_preedit_string_with_attributes_get(imf_context,
- *                                                      &preedit_string,
- *                                                      &attrs, &cursor_pos);
- * if (!preedit_string) return;
- *
- *  if (strlen(preedit_string) > 0)
- *    {
- *       if (attrs)
- *         {
- *            EINA_LIST_FOREACH(attrs, l, attr)
- *              {
- *                 if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB1)
- *                   {
- *                      // Something to do
- *                   }
- *                 else if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB2)
- *                   {
- *                      // Something to do
- *                   }
- *                 else if (attr->preedit_type == ECORE_IMF_PREEDIT_TYPE_SUB3)
- *                   {
- *                      // Something to do
- *                   }
- *              }
- *         }
- *    }
- * 
- * // delete attribute list
- * EINA_LIST_FREE(attrs, attr) free(attr);
- *
- * free(preedit_string);
- * @endcode
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx, char **str, Eina_List **attrs, int *cursor_pos)
 {
@@ -522,25 +303,6 @@ ecore_imf_context_preedit_string_with_attributes_get(Ecore_IMF_Context *ctx, cha
      }
 }
 
-/**
- * Notify the Input Method Context that the widget to which its
- * correspond has gained focus.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- *
- * Example
- * @code
- * static void
- * _focus_in_cb(void *data, Evas_Object *o, const char *emission, const char *source)
- * {
- *    ecore_imf_context_reset(imf_context);
- *    ecore_imf_context_focus_in(imf_context);
- * }
- *
- * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_IN, _focus_in_cb, ed);
- * @endcode
- */
 EAPI void
 ecore_imf_context_focus_in(Ecore_IMF_Context *ctx)
 {
@@ -553,25 +315,6 @@ ecore_imf_context_focus_in(Ecore_IMF_Context *ctx)
    if (ctx->klass->focus_in) ctx->klass->focus_in(ctx);
 }
 
-/**
- * Notify the Input Method Context that the widget to which its
- * correspond has lost focus.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- *
- * Example
- * @code
- * static void
- * _focus_out_cb(void *data, Evas_Object *o, const char *emission, const char *source)
- * {
- *    ecore_imf_context_reset(imf_context);
- *    ecore_imf_context_focus_out(imf_context);
- * }
- *
- * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_OUT, _focus_out_cb, ed);
- * @endcode
- */
 EAPI void
 ecore_imf_context_focus_out(Ecore_IMF_Context *ctx)
 {
@@ -584,26 +327,6 @@ ecore_imf_context_focus_out(Ecore_IMF_Context *ctx)
    if (ctx->klass->focus_out) ctx->klass->focus_out(ctx);
 }
 
-/**
- * Notify the Input Method Context that a change such as a
- * change in cursor position has been made. This will typically
- * cause the Input Method Context to clear the preedit state.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- * 
- * Example
- * @code
- * static void
- * _focus_out_cb(void *data, Evas_Object *o, const char *emission, const char *source)
- * {
- *    ecore_imf_context_reset(imf_context);
- *    ecore_imf_context_focus_out(imf_context);
- * }
- *
- * evas_object_event_callback_add(obj, EVAS_CALLBACK_FOCUS_OUT, _focus_out_cb, ed);
- * @endcode
- */
 EAPI void
 ecore_imf_context_reset(Ecore_IMF_Context *ctx)
 {
@@ -616,14 +339,6 @@ ecore_imf_context_reset(Ecore_IMF_Context *ctx)
    if (ctx->klass->reset) ctx->klass->reset(ctx);
 }
 
-/**
- * Notify the Input Method Context that a change in the cursor
- * position has been made.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param cursor_pos New cursor position in characters.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_cursor_position_set(Ecore_IMF_Context *ctx, int cursor_pos)
 {
@@ -636,20 +351,6 @@ ecore_imf_context_cursor_position_set(Ecore_IMF_Context *ctx, int cursor_pos)
    if (ctx->klass->cursor_position_set) ctx->klass->cursor_position_set(ctx, cursor_pos);
 }
 
-/**
- * Notify the Input Method Context that a change in the cursor
- * location has been made. The location is relative to the canvas.
- * The cursor location can be used to determine the position of 
- * candidate word window in the immodule.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param x cursor x position.
- * @param y cursor y position.
- * @param w cursor width.
- * @param h cursor height.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_cursor_location_set(Ecore_IMF_Context *ctx, int x, int y, int w, int h)
 {
@@ -662,16 +363,6 @@ ecore_imf_context_cursor_location_set(Ecore_IMF_Context *ctx, int x, int y, int
    if (ctx->klass->cursor_location_set) ctx->klass->cursor_location_set(ctx, x, y, w, h);
 }
 
-/**
- * Set whether the IM context should use the preedit string
- * to display feedback. If @c use_preedit is @c EINA_FALSE (default
- * is @c EINA_TRUE), then the IM context may use some other method to display
- * feedback, such as displaying it in a child of the root window.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param use_preedit Whether the IM context should use the preedit string.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_use_preedit_set(Ecore_IMF_Context *ctx, Eina_Bool use_preedit)
 {
@@ -684,17 +375,6 @@ ecore_imf_context_use_preedit_set(Ecore_IMF_Context *ctx, Eina_Bool use_preedit)
    if (ctx->klass->use_preedit_set) ctx->klass->use_preedit_set(ctx, use_preedit);
 }
 
-/**
- * Set whether the IM context should allow to use the text prediction.
- * If @p prediction is @c EINA_FALSE (default is @c EINA_TRUE), then the IM
- * context will not display the text prediction window.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param prediction Whether the IM context should allow to use the text prediction.
- * @note Default value is EINA_TRUE.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_prediction_allow_set(Ecore_IMF_Context *ctx, Eina_Bool prediction)
 {
@@ -711,15 +391,6 @@ ecore_imf_context_prediction_allow_set(Ecore_IMF_Context *ctx, Eina_Bool predict
      ctx->klass->prediction_allow_set(ctx, prediction);
 }
 
-/**
- * Get whether the IM context should allow to use the text prediction.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return @c EINA_TRUE if it allows to use the text prediction, otherwise
- * @c EINA_FALSE.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI Eina_Bool
 ecore_imf_context_prediction_allow_get(Ecore_IMF_Context *ctx)
 {
@@ -733,15 +404,6 @@ ecore_imf_context_prediction_allow_get(Ecore_IMF_Context *ctx)
    return ctx->allow_prediction;
 }
 
-/**
- * Set the autocapitalization type on the immodule.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param autocapital_type the autocapitalization type.
- * @note Default type is ECORE_IMF_AUTOCAPITAL_TYPE_SENTENCE.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_autocapital_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Autocapital_Type autocapital_type)
 {
@@ -757,14 +419,6 @@ ecore_imf_context_autocapital_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Autocap
    if (ctx->klass->autocapital_type_set) ctx->klass->autocapital_type_set(ctx, autocapital_type);
 }
 
-/**
- * Get the autocapitalization type.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return The autocapital type being used by @p ctx.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI Ecore_IMF_Autocapital_Type
 ecore_imf_context_autocapital_type_get(Ecore_IMF_Context *ctx)
 {
@@ -778,17 +432,6 @@ ecore_imf_context_autocapital_type_get(Ecore_IMF_Context *ctx)
    return ctx->autocapital_type;
 }
 
-/**
- * Set the callback to be used on surrounding_get request.
- *
- * This callback will be called when the Input Method Context
- * module requests the surrounding context.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param func The callback to be called.
- * @param data The data pointer to be passed to @p func
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, Eina_Bool (*func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos), const void *data)
 {
@@ -803,17 +446,6 @@ ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, Eina
    ctx->retrieve_surrounding_data = (void *) data;
 }
 
-/**
- * Set the input mode used by the Ecore Input Context.
- *
- * The input mode can be one of the input modes defined in
- * Ecore_IMF_Input_Mode. The default input mode is
- * ECORE_IMF_INPUT_MODE_FULL.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param input_mode The input mode to be used by @p ctx.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI void
 ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode input_mode)
 {
@@ -827,15 +459,6 @@ ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode in
    ctx->input_mode = input_mode;
 }
 
-/**
- * Get the input mode being used by the Ecore Input Context.
- *
- * See @ref ecore_imf_context_input_mode_set for more details.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return The input mode being used by @p ctx.
- * @ingroup Ecore_IMF_Context_Group
- */
 EAPI Ecore_IMF_Input_Mode
 ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx)
 {
@@ -848,43 +471,6 @@ ecore_imf_context_input_mode_get(Ecore_IMF_Context *ctx)
    return ctx->input_mode;
 }
 
-/**
- * Allow an Ecore Input Context to internally handle an event.
- * If this function returns @c EINA_TRUE, then no further processing
- * should be done for this event.
- *
- * Input methods must be able to accept all types of events (simply
- * returning @c EINA_FALSE if the event was not handled), but there is no
- * obligation of any events to be submitted to this function.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param type The type of event defined by #Ecore_IMF_Event_Type.
- * @param event The event itself.
- * @return @c EINA_TRUE if the event was handled; otherwise @c EINA_FALSE.
- * @ingroup Ecore_IMF_Context_Group
- *
- * Example
- * @code
- * static void
- * _key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
- * {
- *    Evas_Event_Key_Down *ev = event_info;
- *    if (!ev->keyname) return;
- *
- *    if (imf_context)
- *      {
- *         Ecore_IMF_Event_Key_Down ecore_ev;
- *         ecore_imf_evas_event_key_down_wrap(ev, &ecore_ev);
- *         if (ecore_imf_context_filter_event(imf_context,
- *                                            ECORE_IMF_EVENT_KEY_DOWN,
- *                                            (Ecore_IMF_Event *)&ecore_ev))
- *           return;
- *      }
- * }
- *
- * evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _key_down_cb, data);
- * @endcode
- */
 EAPI Eina_Bool
 ecore_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type, Ecore_IMF_Event *event)
 {
@@ -898,23 +484,6 @@ ecore_imf_context_filter_event(Ecore_IMF_Context *ctx, Ecore_IMF_Event_Type type
    return EINA_FALSE;
 }
 
-/**
- * @defgroup Ecore_IMF_Context_Module_Group Ecore Input Method Context Module Functions
- * @ingroup Ecore_IMF_Lib_Group
- *
- * Functions that should be used by Ecore Input Method Context modules.
- */
-
-/**
- * Creates a new Input Method Context with klass specified by @p ctxc.
- *
- * This method should be used by modules implementing the Input
- * Method Context interface.
- *
- * @param ctxc An #Ecore_IMF_Context_Class.
- * @return A new #Ecore_IMF_Context; on failure it returns NULL.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI Ecore_IMF_Context *
 ecore_imf_context_new(const Ecore_IMF_Context_Class *ctxc)
 {
@@ -931,18 +500,6 @@ ecore_imf_context_new(const Ecore_IMF_Context_Class *ctxc)
    return ctx;
 }
 
-/**
- * Set the Input Method Context specific data.
- *
- * Note that this method should be used by modules to set
- * the Input Method Context specific data and it's not meant to
- * be used by applications to store application specific data.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param data The Input Method Context specific data.
- * @return A new #Ecore_IMF_Context; on failure it returns NULL.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI void
 ecore_imf_context_data_set(Ecore_IMF_Context *ctx, void *data)
 {
@@ -955,15 +512,6 @@ ecore_imf_context_data_set(Ecore_IMF_Context *ctx, void *data)
    ctx->data = data;
 }
 
-/**
- * Get the Input Method Context specific data.
- *
- * See @ref ecore_imf_context_data_set for more details.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return The Input Method Context specific data.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI void *ecore_imf_context_data_get(Ecore_IMF_Context *ctx)
 {
    if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -975,31 +523,6 @@ EAPI void *ecore_imf_context_data_get(Ecore_IMF_Context *ctx)
    return ctx->data;
 }
 
-/**
- * Retrieve context around insertion point.
- * Input methods typically want context in order to constrain input text based on existing text; 
- * this is important for languages such as Thai where only some sequences of characters are allowed.
- * In addition, the text around the insertion point can be used for supporting autocapital feature.
- *
- * This function is implemented by calling the
- * Ecore_IMF_Context::retrieve_surrounding_func (
- * set using #ecore_imf_context_retrieve_surrounding_callback_set).
- *
- * There is no obligation for a widget to respond to the
- * retrieve_surrounding_func, so input methods must be prepared
- * to function without context.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param text Location to store a UTF-8 encoded string of text
- *             holding context around the insertion point.
- *             If the function returns @c EINA_TRUE, then you must free
- *             the result stored in this location with free().
- * @param cursor_pos Location to store the position in characters of
- *                   the insertion cursor within @p text.
- * @return @c EINA_TRUE if surrounding text was provided; otherwise
- * @c EINA_FALSE.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI Eina_Bool
 ecore_imf_context_surrounding_get(Ecore_IMF_Context *ctx, char **text, int *cursor_pos)
 {
@@ -1030,16 +553,6 @@ _ecore_imf_event_free_preedit(void *data EINA_UNUSED, void *event)
    free(event);
 }
 
-/**
- * Adds ECORE_IMF_EVENT_PREEDIT_START to the event queue.
- *
- * ECORE_IMF_EVENT_PREEDIT_START should be added when a new preedit sequence starts.
- * It's asynchronous method to put event to the event queue.
- * ecore_imf_context_event_callback_call() can be used as synchronous method.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI void
 ecore_imf_context_preedit_start_event_add(Ecore_IMF_Context *ctx)
 {
@@ -1058,16 +571,6 @@ ecore_imf_context_preedit_start_event_add(Ecore_IMF_Context *ctx)
                    ev, _ecore_imf_event_free_preedit, NULL);
 }
 
-/**
- * Adds ECORE_IMF_EVENT_PREEDIT_END to the event queue.
- *
- * ECORE_IMF_EVENT_PREEDIT_END should be added when a new preedit sequence has been completed or canceled.
- * It's asynchronous method to put event to the event queue.
- * ecore_imf_context_event_callback_call() can be used as synchronous method.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI void
 ecore_imf_context_preedit_end_event_add(Ecore_IMF_Context *ctx)
 {
@@ -1086,15 +589,6 @@ ecore_imf_context_preedit_end_event_add(Ecore_IMF_Context *ctx)
                    ev, _ecore_imf_event_free_preedit, NULL);
 }
 
-/**
- * Adds ECORE_IMF_EVENT_PREEDIT_CHANGED to the event queue.
- *
- * It's asynchronous method to put event to the event queue.
- * ecore_imf_context_event_callback_call() can be used as synchronous method.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI void
 ecore_imf_context_preedit_changed_event_add(Ecore_IMF_Context *ctx)
 {
@@ -1123,16 +617,6 @@ _ecore_imf_event_free_commit(void *data EINA_UNUSED, void *event)
    free(ev);
 }
 
-/**
- * Adds ECORE_IMF_EVENT_COMMIT to the event queue.
- *
- * It's asynchronous method to put event to the event queue.
- * ecore_imf_context_event_callback_call() can be used as synchronous method.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param str The committed string.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI void
 ecore_imf_context_commit_event_add(Ecore_IMF_Context *ctx, const char *str)
 {
@@ -1150,7 +634,6 @@ ecore_imf_context_commit_event_add(Ecore_IMF_Context *ctx, const char *str)
    ev->str = str ? strdup(str) : NULL;
    ecore_event_add(ECORE_IMF_EVENT_COMMIT,
                    ev, _ecore_imf_event_free_commit, NULL);
-
 }
 
 static void
@@ -1159,21 +642,6 @@ _ecore_imf_event_free_delete_surrounding(void *data EINA_UNUSED, void *event)
    free(event);
 }
 
-/**
- * Adds ECORE_IMF_EVENT_DELETE_SURROUNDING to the event queue.
- *
- * Asks the widget that the input context is attached to to delete characters around the cursor position
- * by adding the ECORE_IMF_EVENT_DELETE_SURROUNDING to the event queue.
- * Note that offset and n_chars are in characters not in bytes.
- *
- * It's asynchronous method to put ECORE_IMF_EVENT_DELETE_SURROUNDING event to the event queue.
- * ecore_imf_context_event_callback_call() can be used as synchronous method.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param offset The start offset of surrounding to be deleted.
- * @param n_chars The number of characters to be deleted.
- * @ingroup Ecore_IMF_Context_Module_Group
- */
 EAPI void
 ecore_imf_context_delete_surrounding_event_add(Ecore_IMF_Context *ctx, int offset, int n_chars)
 {
@@ -1194,38 +662,6 @@ ecore_imf_context_delete_surrounding_event_add(Ecore_IMF_Context *ctx, int offse
                    ev, _ecore_imf_event_free_delete_surrounding, NULL);
 }
 
-/**
- * Add (register) a callback function to a given context event.
- *
- * This function adds a function callback to the context @p ctx when the
- * event of type @p type occurs on it. The function pointer is @p
- * func.
- *
- * The event type @p type to trigger the function may be one of
- * #ECORE_IMF_CALLBACK_PREEDIT_START, #ECORE_IMF_CALLBACK_PREEDIT_END,
- * #ECORE_IMF_CALLBACK_PREEDIT_CHANGED, #ECORE_IMF_CALLBACK_COMMIT and
- * #ECORE_IMF_CALLBACK_DELETE_SURROUNDING.
- *
- * @param ctx Ecore_IMF_Context to attach a callback to.
- * @param type The type of event that will trigger the callback
- * @param func The (callback) function to be called when the event is
- *        triggered
- * @param data The data pointer to be passed to @p func
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- *
- * Example
- * @code
- * static void
- * _imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx, void *event_info)
- * {
- *    char *commit_str = event_info;
- *    // something to do
- * }
- *
- * ecore_imf_context_event_callback_add(en->imf_context, ECORE_IMF_CALLBACK_COMMIT, _imf_event_commit_cb, data);
- * @endcode
- */
 EAPI void
 ecore_imf_context_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func, const void *data)
 {
@@ -1250,23 +686,6 @@ ecore_imf_context_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_
    ctx->callbacks = eina_list_append(ctx->callbacks, fn);
 }
 
-/**
- * Delete (unregister) a callback function registered to a given
- * context event.
- *
- * This function removes a function callback from the context @p ctx when the
- * event of type @p type occurs on it. The function pointer is @p
- * func.
- *
- * @see ecore_imf_context_event_callback_add() for more details
- *
- * @param ctx Ecore_IMF_Context to remove a callback from.
- * @param type The type of event that was triggering the callback
- * @param func The (callback) function that was to be called when the event was triggered
- * @return the data pointer
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI void *
 ecore_imf_context_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, Ecore_IMF_Event_Cb func)
 {
@@ -1297,23 +716,6 @@ ecore_imf_context_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_
    return NULL;
 }
 
-/**
- * Call a given callback on the context @p ctx.
- *
- * ecore_imf_context_preedit_start_event_add(), ecore_imf_context_preedit_end_event_add(), 
- * ecore_imf_context_preedit_changed_event_add(), ecore_imf_context_commit_event_add() and
- * ecore_imf_context_delete_surrounding_event_add() APIs are asynchronous 
- * because those API adds each event to the event queue.
- *
- * This API provides the way to call each callback function immediately.
- *
- * @param ctx Ecore_IMF_Context.
- * @param type The type of event that will trigger the callback
- * @param event_info The pointer to event specific struct or information to
- *        pass to the callback functions registered on this event
- * @ingroup Ecore_IMF_Context_Module_Group
- * @since 1.2.0
- */
 EAPI void
 ecore_imf_context_event_callback_call(Ecore_IMF_Context *ctx, Ecore_IMF_Callback_Type type, void *event_info)
 {
@@ -1334,13 +736,6 @@ ecore_imf_context_event_callback_call(Ecore_IMF_Context *ctx, Ecore_IMF_Callback
      }
 }
 
-/**
- * Ask the Input Method Context to show the control panel of using Input Method.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_control_panel_show(Ecore_IMF_Context *ctx)
 {
@@ -1354,13 +749,6 @@ ecore_imf_context_control_panel_show(Ecore_IMF_Context *ctx)
    if (ctx->klass->control_panel_show) ctx->klass->control_panel_show(ctx);
 }
 
-/**
- * Ask the Input Method Context to hide the control panel of using Input Method.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_control_panel_hide(Ecore_IMF_Context *ctx)
 {
@@ -1374,13 +762,6 @@ ecore_imf_context_control_panel_hide(Ecore_IMF_Context *ctx)
    if (ctx->klass->control_panel_hide) ctx->klass->control_panel_hide(ctx);
 }
 
-/**
- * Ask the Input Method Context to show the input panel (virtual keyboard).
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_input_panel_show(Ecore_IMF_Context *ctx)
 {
@@ -1394,13 +775,6 @@ ecore_imf_context_input_panel_show(Ecore_IMF_Context *ctx)
    if (ctx->klass->show) ctx->klass->show(ctx);
 }
 
-/**
- * Ask the Input Method Context to hide the input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_input_panel_hide(Ecore_IMF_Context *ctx)
 {
@@ -1414,15 +788,6 @@ ecore_imf_context_input_panel_hide(Ecore_IMF_Context *ctx)
    if (ctx->klass->hide) ctx->klass->hide(ctx);
 }
 
-/**
- * Set the layout of the input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param layout see #Ecore_IMF_Input_Panel_Layout
- * @note Default layout type is ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_input_panel_layout_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Layout layout)
 {
@@ -1439,14 +804,6 @@ ecore_imf_context_input_panel_layout_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input
    ctx->input_panel_layout = layout;
 }
 
-/**
- * Get the layout of the current active input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return layout see #Ecore_IMF_Input_Panel_Layout
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI Ecore_IMF_Input_Panel_Layout
 ecore_imf_context_input_panel_layout_get(Ecore_IMF_Context *ctx)
 {
@@ -1463,15 +820,6 @@ ecore_imf_context_input_panel_layout_get(Ecore_IMF_Context *ctx)
      return ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID;
 }
 
-/**
- * Set the language of the input panel.
- * This API can be used when you want to show the English keyboard.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param lang the language to be set to the input panel.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_input_panel_language_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang)
 {
@@ -1486,16 +834,6 @@ ecore_imf_context_input_panel_language_set(Ecore_IMF_Context *ctx, Ecore_IMF_Inp
    ctx->input_panel_lang = lang;
 }
 
-/**
- * Get the language of the input panel.
- *
- * See @ref ecore_imf_context_input_panel_language_set for more details.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return Ecore_IMF_Input_Panel_Lang
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI Ecore_IMF_Input_Panel_Lang
 ecore_imf_context_input_panel_language_get(Ecore_IMF_Context *ctx)
 {
@@ -1509,15 +847,6 @@ ecore_imf_context_input_panel_language_get(Ecore_IMF_Context *ctx)
    return ctx->input_panel_lang;
 }
 
-/**
- * Set whether the Input Method Context should request to show the input panel automatically
- * when the widget has focus.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param enabled If true, the input panel will be shown when the widget is clicked or has focus.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI void
 ecore_imf_context_input_panel_enabled_set(Ecore_IMF_Context *ctx,
                                            Eina_Bool enabled)
@@ -1532,14 +861,6 @@ ecore_imf_context_input_panel_enabled_set(Ecore_IMF_Context *ctx,
    ctx->input_panel_enabled = enabled;
 }
 
-/**
- * Get whether the Input Method Context requests to show the input panel automatically.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return Return the attribute to show the input panel automatically
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.1.0
- */
 EAPI Eina_Bool
 ecore_imf_context_input_panel_enabled_get(Ecore_IMF_Context *ctx)
 {
@@ -1553,18 +874,6 @@ ecore_imf_context_input_panel_enabled_get(Ecore_IMF_Context *ctx)
    return ctx->input_panel_enabled;
 }
 
-/**
- * Set the input panel-specific data to deliver to the input panel.
- * This API is used by applications to deliver specific data to the input panel.
- * The data format MUST be negotiated by both application and the input panel.
- * The size and format of data are defined by the input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param data The specific data to be set to the input panel.
- * @param len the length of data, in bytes, to send to the input panel
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI void
 ecore_imf_context_input_panel_imdata_set(Ecore_IMF_Context *ctx, const void *data, int len)
 {
@@ -1581,15 +890,6 @@ ecore_imf_context_input_panel_imdata_set(Ecore_IMF_Context *ctx, const void *dat
      ctx->klass->input_panel_imdata_set(ctx, data, len);
 }
 
-/**
- * Get the specific data of the current active input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param data The specific data to be got from the input panel
- * @param len The length of data
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI void
 ecore_imf_context_input_panel_imdata_get(Ecore_IMF_Context *ctx, void *data, int *len)
 {
@@ -1606,17 +906,6 @@ ecore_imf_context_input_panel_imdata_get(Ecore_IMF_Context *ctx, void *data, int
      ctx->klass->input_panel_imdata_get(ctx, data, len);
 }
 
-/**
- * Set the "return" key type. This type is used to set string or icon on the "return" key of the input panel.
- *
- * An input panel displays the string or icon associated with this type
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param return_key_type The type of "return" key on the input panel
- * @note Default type is ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_DEFAULT.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI void
 ecore_imf_context_input_panel_return_key_type_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Return_Key_Type return_key_type)
 {
@@ -1631,16 +920,6 @@ ecore_imf_context_input_panel_return_key_type_set(Ecore_IMF_Context *ctx, Ecore_
    if (ctx->klass->input_panel_return_key_type_set) ctx->klass->input_panel_return_key_type_set(ctx, return_key_type);
 }
 
-/**
- * Get the "return" key type.
- *
- * @see ecore_imf_context_input_panel_return_key_type_set() for more details
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return The type of "return" key on the input panel
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI Ecore_IMF_Input_Panel_Return_Key_Type
 ecore_imf_context_input_panel_return_key_type_get(Ecore_IMF_Context *ctx)
 {
@@ -1654,14 +933,6 @@ ecore_imf_context_input_panel_return_key_type_get(Ecore_IMF_Context *ctx)
    return ctx->input_panel_return_key_type;
 }
 
-/**
- * Set the return key on the input panel to be disabled.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param disabled The state
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI void
 ecore_imf_context_input_panel_return_key_disabled_set(Ecore_IMF_Context *ctx, Eina_Bool disabled)
 {
@@ -1676,14 +947,6 @@ ecore_imf_context_input_panel_return_key_disabled_set(Ecore_IMF_Context *ctx, Ei
    if (ctx->klass->input_panel_return_key_disabled_set) ctx->klass->input_panel_return_key_disabled_set(ctx, disabled);
 }
 
-/**
- * Get whether the return key on the input panel should be disabled or not.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return @c EINA_TRUE if it should be disabled.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI Eina_Bool
 ecore_imf_context_input_panel_return_key_disabled_get(Ecore_IMF_Context *ctx)
 {
@@ -1697,14 +960,6 @@ ecore_imf_context_input_panel_return_key_disabled_get(Ecore_IMF_Context *ctx)
    return ctx->input_panel_return_key_disabled;
 }
 
-/**
- * Set the caps lock mode on the input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param mode Turn on caps lock on the input panel if @c EINA_TRUE.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI void
 ecore_imf_context_input_panel_caps_lock_mode_set(Ecore_IMF_Context *ctx, Eina_Bool mode)
 {
@@ -1721,14 +976,6 @@ ecore_imf_context_input_panel_caps_lock_mode_set(Ecore_IMF_Context *ctx, Eina_Bo
    ctx->input_panel_caps_lock_mode = mode;
 }
 
-/**
- * Get the caps lock mode on the input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return @c EINA_TRUE if the caps lock is turned on.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.2.0
- */
 EAPI Eina_Bool
 ecore_imf_context_input_panel_caps_lock_mode_get(Ecore_IMF_Context *ctx)
 {
@@ -1742,17 +989,6 @@ ecore_imf_context_input_panel_caps_lock_mode_get(Ecore_IMF_Context *ctx)
    return ctx->input_panel_caps_lock_mode;
 }
 
-/**
- * Get the position of the current active input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param x top-left x co-ordinate of the input panel
- * @param y top-left y co-ordinate of the input panel
- * @param w width of the input panel
- * @param h height of the input panel
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.3
- */
 EAPI void
 ecore_imf_context_input_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
 {
@@ -1767,14 +1003,6 @@ ecore_imf_context_input_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *
      ctx->klass->input_panel_geometry_get(ctx, x, y, w, h);
 }
 
-/**
- * Get state of current active input panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @return The state of input panel.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.3
- */
 EAPI Ecore_IMF_Input_Panel_State
 ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx)
 {
@@ -1792,18 +1020,6 @@ ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx)
    return state;
 }
 
-/**
- * Register a callback function which will be called if there is change in input panel state,language,mode etc.
- * In order to deregister the callback function 
- * Use @ref ecore_imf_context_input_panel_event_callback_del.
- *
- * @param ctx An #Ecore_IMF_Context
- * @param type event type
- * @param func the callback function
- * @param data application-input panel specific data.
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.3
- */
 EAPI void
 ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx,
                                                  Ecore_IMF_Input_Panel_Event type,
@@ -1821,15 +1037,6 @@ ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx,
      ctx->klass->input_panel_event_callback_add(ctx, type, func, (void *)data);
 }
 
-/**
- * Unregister a callback function which will be called if there is change in input panel state, language, mode etc.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param type An #Ecore_IMF_Input_Panel_Event.
- * @param func the callback function
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.3
- */
 EAPI void
 ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx,
                                                  Ecore_IMF_Input_Panel_Event type,
@@ -1846,17 +1053,6 @@ ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx,
      ctx->klass->input_panel_event_callback_del(ctx, type, func);
 }
 
-/**
- * Get the current language locale of the input panel.
- *
- * ex) fr_FR
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param lang Location to store the retrieved language string. The
- *             string retrieved must be freed with free().
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.3
- */
 EAPI void
 ecore_imf_context_input_panel_language_locale_get(Ecore_IMF_Context *ctx, char **lang)
 {
@@ -1875,17 +1071,6 @@ ecore_imf_context_input_panel_language_locale_get(Ecore_IMF_Context *ctx, char *
      }
 }
 
-/**
- * Get the geometry information of the candidate panel.
- *
- * @param ctx An #Ecore_IMF_Context.
- * @param x top-left x co-ordinate of the candidate panel
- * @param y top-left y co-ordinate of the candidate panel
- * @param w width of the candidate panel
- * @param h height of the candidate panel
- * @ingroup Ecore_IMF_Context_Group
- * @since 1.3
- */
 EAPI void
 ecore_imf_context_candidate_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
 {