From: Jihoon Kim <jihoon48.kim@samsung.com>
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 21 Feb 2011 06:22:37 +0000 (06:22 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 21 Feb 2011 06:22:37 +0000 (06:22 +0000)
Subject: [E-devel] [PATCH] ecore_imf_context_canvas_get,
ecore_imf_context_window_get

This patch includes the code to add ecore_imf_context_canvas_get and
ecore_imf_context_window_get.
These APIs are coupled with the ecore_imf_context_canvas_set and
ecore_imf_context_window_set.

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@57203 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

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

index ff363bf..e67e5af 100644 (file)
@@ -302,7 +302,9 @@ EAPI Ecore_IMF_Context            *ecore_imf_context_add(const char *id);
 EAPI const Ecore_IMF_Context_Info *ecore_imf_context_info_get(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_del(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window);
+EAPI void                         *ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas);
+EAPI void                         *ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_show(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_hide(Ecore_IMF_Context *ctx);
 EAPI void                          ecore_imf_context_preedit_string_get(Ecore_IMF_Context *ctx, char **str, int *cursor_pos);
index 7d6d2b1..6eb5a42 100644 (file)
@@ -242,6 +242,28 @@ ecore_imf_context_client_window_set(Ecore_IMF_Context *ctx, void *window)
         return;
      }
    if (ctx->klass->client_window_set) ctx->klass->client_window_set(ctx, 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
+ */
+EAPI void *
+ecore_imf_context_client_window_get(Ecore_IMF_Context *ctx)
+{
+   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+     {
+        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+                         "ecore_imf_context_client_window_get");
+        return NULL;
+     }
+   return ctx->window;
 }
 
 /**
@@ -267,6 +289,28 @@ ecore_imf_context_client_canvas_set(Ecore_IMF_Context *ctx, void *canvas)
         return;
      }
    if (ctx->klass->client_canvas_set) ctx->klass->client_canvas_set(ctx, 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
+ */
+EAPI void *
+ecore_imf_context_client_canvas_get(Ecore_IMF_Context *ctx)
+{
+   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+     {
+        ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+                         "ecore_imf_context_client_canvas_get");
+        return NULL;
+     }
+   return ctx->client_canvas;
 }
 
 /**
index 0d31618..3137272 100644 (file)
@@ -43,6 +43,8 @@ struct _Ecore_IMF_Context
    const Ecore_IMF_Context_Class *klass;
    void                          *data;
    int                            input_mode;
+   void                          *window;
+   void                          *client_canvas;
    Eina_Bool                    (*retrieve_surrounding_func)(void *data, Ecore_IMF_Context *ctx, char **text, int *cursor_pos);
    void                          *retrieve_surrounding_data;
 };