diff --git a/ChangeLog b/ChangeLog index 2442e7beaf..731b5f9f81 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-03-27 Jihoon Kim + + * Add ecore_imf_context_input_panel_variation_set/get API. + + 2013-03-25 Cedric Bail * Eina: add portable eina_file_mkstemp(). diff --git a/NEWS b/NEWS index c1931abe60..84c205f0bd 100644 --- a/NEWS +++ b/NEWS @@ -81,6 +81,7 @@ Additions: * Eeze: Add a dummy libmount replacement for when libmount is not there. * Ecore_Con: Add systemd socket activation support (ECORE_CON_SOCKET_ACTIVATE). * Ecore: notify systemd that we are ready as soon as the main loop is running. + * ecore_imf: Add ecore_imf_context_input_panel_layout_variation_set/get API Deprecations: * ecore_x: diff --git a/src/lib/ecore_imf/Ecore_IMF.h b/src/lib/ecore_imf/Ecore_IMF.h index 37a859d8bc..012c29e0bf 100644 --- a/src/lib/ecore_imf/Ecore_IMF.h +++ b/src/lib/ecore_imf/Ecore_IMF.h @@ -299,6 +299,14 @@ typedef enum ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_SIGNIN /**< Sign-in @since 1.8 */ } Ecore_IMF_Input_Panel_Return_Key_Type; +enum +{ + ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_NORMAL, + ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED, + ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_DECIMAL, + ECORE_IMF_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED_AND_DECIMAL +}; + struct _Ecore_IMF_Event_Preedit_Start { Ecore_IMF_Context *ctx; @@ -1255,6 +1263,27 @@ EAPI void ecore_imf_context_input_panel_layout_set(Ecor */ EAPI Ecore_IMF_Input_Panel_Layout ecore_imf_context_input_panel_layout_get(Ecore_IMF_Context *ctx); +/** + * Set the layout variation of the current active input panel. + * + * @param ctx An #Ecore_IMF_Context. + * @param variation the layout variation + * @note Default layout variation type is NORMAL. + * @ingroup Ecore_IMF_Context_Group + * @since 1.8.0 + */ +EAPI void ecore_imf_context_input_panel_layout_variation_set(Ecore_IMF_Context *ctx, int variation); + +/** + * Get the layout variation of the current active input panel. + * + * @param ctx An #Ecore_IMF_Context. + * @return the layout variation + * @ingroup Ecore_IMF_Context_Group + * @since 1.8.0 + */ +EAPI int ecore_imf_context_input_panel_layout_variation_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. diff --git a/src/lib/ecore_imf/ecore_imf_context.c b/src/lib/ecore_imf/ecore_imf_context.c index 8f6efa623a..41a84b2cee 100644 --- a/src/lib/ecore_imf/ecore_imf_context.c +++ b/src/lib/ecore_imf/ecore_imf_context.c @@ -820,6 +820,32 @@ ecore_imf_context_input_panel_layout_get(Ecore_IMF_Context *ctx) return ECORE_IMF_INPUT_PANEL_LAYOUT_INVALID; } +EAPI void +ecore_imf_context_input_panel_layout_variation_set(Ecore_IMF_Context *ctx, int variation) +{ + if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) + { + ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT, + "ecore_imf_context_input_panel_layout_variation_set"); + return; + } + + ctx->input_panel_layout_variation = variation; +} + +EAPI int +ecore_imf_context_input_panel_layout_variation_get(Ecore_IMF_Context *ctx) +{ + if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT)) + { + ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT, + "ecore_imf_context_input_panel_layout_variation_get"); + return 0; + } + + return ctx->input_panel_layout_variation; +} + EAPI void ecore_imf_context_input_panel_language_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Lang lang) { diff --git a/src/lib/ecore_imf/ecore_imf_private.h b/src/lib/ecore_imf/ecore_imf_private.h index b4ff0f2ee0..7452bd784f 100644 --- a/src/lib/ecore_imf/ecore_imf_private.h +++ b/src/lib/ecore_imf/ecore_imf_private.h @@ -53,6 +53,7 @@ struct _Ecore_IMF_Context Ecore_IMF_Input_Panel_Layout input_panel_layout; Ecore_IMF_Input_Panel_Lang input_panel_lang; Ecore_IMF_Input_Panel_Return_Key_Type input_panel_return_key_type; + int input_panel_layout_variation; Eina_Bool allow_prediction : 1; Eina_Bool input_panel_enabled : 1; Eina_Bool input_panel_return_key_disabled : 1;