ecore_imf: Add ecore_imf_context_keyboard_mode_get API 31/113331/4
authorInHong Han <inhong1.han@samsung.com>
Tue, 7 Feb 2017 05:49:02 +0000 (14:49 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Wed, 8 Feb 2017 01:15:02 +0000 (17:15 -0800)
Because, there is no way to get keyboard mode manually.
Change-Id: I12cbdc52cbf650648b63c5864167343ba64fe635

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

index fb5b321..55869ec 100644 (file)
@@ -712,6 +712,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 */
 };
 
 /**
@@ -2201,6 +2202,19 @@ 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);
 
+/**
+ * @brief Get the keyboard mode on the input panel.
+ *
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.20.0
+ *
+ * @param[in] ctx An #Ecore_IMF_Context
+ * @return the keyboard mode
+ *
+ * @since_tizen 4.0
+ */
+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
  */
 
index 2b6b11c..0f7373f 100644 (file)
@@ -1381,3 +1381,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;
+}