ecore_imf: Add ecore_imf_context_keyboard_mode_get API

Summary:
When the keyboard mode state is changed, the keyboard_mode_event_cb will be called, too.
But there is no way to get keyboard mode manually.

Test Plan: Tested in Tizen device

Reviewers: jihoon, woohyun, id213sin

Reviewed By: jihoon

Subscribers: jpeg, z-wony, jsuya, cedric

Differential Revision: https://phab.enlightenment.org/D4786
This commit is contained in:
Jihoon Kim 2017-04-17 16:53:50 +09:00
parent 2ea4872869
commit 4533eef59b
2 changed files with 28 additions and 0 deletions

View File

@ -700,6 +700,7 @@ struct _Ecore_IMF_Context_Class
void (*candidate_panel_geometry_get)(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h); /**< Return the candidate panel geometry */
void (*input_hint_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Hints input_hints); /**< Sets input hint to fine-tune input methods behavior */
void (*bidi_direction_set) (Ecore_IMF_Context *ctx, Ecore_IMF_BiDi_Direction direction); /**< Set bidirectionality at the cursor position */
Ecore_IMF_Input_Panel_Keyboard_Mode (*keyboard_mode_get) (Ecore_IMF_Context *ctx); /**< Return the current keyboard mode of the input panel */
};
/**
@ -1861,6 +1862,17 @@ EAPI void ecore_imf_context_bidi_direction_set(Ecore_IM
*/
EAPI Ecore_IMF_BiDi_Direction ecore_imf_context_bidi_direction_get(Ecore_IMF_Context *ctx);
/**
* @ingroup Ecore_IMF_Context_Group
* @brief Get the keyboard mode on the input panel.
*
* @since 1.20.0
*
* @param[in] ctx An #Ecore_IMF_Context
* @return the keyboard mode
*/
EAPI Ecore_IMF_Input_Panel_Keyboard_Mode ecore_imf_context_keyboard_mode_get(Ecore_IMF_Context *ctx);
/* The following entry points must be exported by each input method module
*/

View File

@ -1391,3 +1391,19 @@ ecore_imf_context_bidi_direction_get(Ecore_IMF_Context *ctx)
return ctx->bidi_direction;
}
EAPI Ecore_IMF_Input_Panel_Keyboard_Mode
ecore_imf_context_keyboard_mode_get(Ecore_IMF_Context *ctx)
{
Ecore_IMF_Input_Panel_Keyboard_Mode mode = ECORE_IMF_INPUT_PANEL_SW_KEYBOARD_MODE;
if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
{
ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
"ecore_imf_context_keyboard_mode_get");
return ECORE_IMF_INPUT_PANEL_SW_KEYBOARD_MODE;
}
if (ctx->klass->keyboard_mode_get)
mode = ctx->klass->keyboard_mode_get(ctx);
return mode;
}