jihoon pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4533eef59b3b84c28ed6cd5814d753291df3f6f1

commit 4533eef59b3b84c28ed6cd5814d753291df3f6f1
Author: Jihoon Kim <[email protected]>
Date:   Mon Apr 17 16:53:50 2017 +0900

    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
---
 src/lib/ecore_imf/Ecore_IMF.h         | 12 ++++++++++++
 src/lib/ecore_imf/ecore_imf_context.c | 16 ++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/src/lib/ecore_imf/Ecore_IMF.h b/src/lib/ecore_imf/Ecore_IMF.h
index 6bca58f..8f2fa2a 100644
--- a/src/lib/ecore_imf/Ecore_IMF.h
+++ b/src/lib/ecore_imf/Ecore_IMF.h
@@ -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
  */
 
diff --git a/src/lib/ecore_imf/ecore_imf_context.c 
b/src/lib/ecore_imf/ecore_imf_context.c
index d6fd854..a7289ba 100644
--- a/src/lib/ecore_imf/ecore_imf_context.c
+++ b/src/lib/ecore_imf/ecore_imf_context.c
@@ -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;
+}

-- 


Reply via email to