Add edje_object_part_text_input_panel_show/hide.
authorjihoon <jihoon@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 13 Feb 2012 06:34:47 +0000 (06:34 +0000)
committerJihoon Kim <jihoon48.kim@samsung.com>
Sat, 18 Feb 2012 06:50:48 +0000 (15:50 +0900)
These APIs can be used in input panel manual control mode.

Change-Id: Icc7e67fecab9cbaa9155a3abb89f1f6ec3a983ee
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@67873 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
src/lib/Edje.h
src/lib/edje_entry.c
src/lib/edje_private.h
src/lib/edje_util.c

index 6b3eeaa..bfa4448 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
        * Entry: Fix to work edje_object_part_text_input_panel_enabled_set/get well
              even though ecore_imf doesn't exist or immodule isn't used.
+
+2012-02-07  WooHyun Jung
+
+        * Added edje_object_markup_filter_callback_{add,del,del_full}.
+        These let you append(delete) markup filter functions for filtering
+        inserted text.
+
+2012-02-08  Cedric Bail
+
+       * Fix bug when using EDJE_CALC_CACHE and using relative to x and y
+       on separate part.
+       * Fix bug with filter preventing any action to be triggered.
+
+2012-02-10  Cedric Bail
+
+       * Prevent propagation of signal, when there is a matching target with edje GROUP.
+
+2012-02-13  Jihoon Kim
+
+       * add edje_object_part_text_input_panel_show/hide.
+      These APIs can be used in input panel manual control mode
index e542760..b37ec5d 100644 (file)
@@ -2953,6 +2953,31 @@ EAPI void             edje_object_part_text_input_panel_enabled_set (const Evas_
 EAPI Eina_Bool        edje_object_part_text_input_panel_enabled_get (const Evas_Object *obj, const char *part);
 
 /**
+ * @brief Show the input panel (virtual keyboard) based on the input panel property such as layout, autocapital types, and so on.
+ *
+ * Note that input panel is shown or hidden automatically according to the focus state.
+ * This API can be used in the case of manually controling by using edje_object_part_text_input_panel_enabled_set.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @since 1.2.0
+ */
+EAPI void             edje_object_part_text_input_panel_show(const Evas_Object *obj, const char *part);
+
+/**
+ * @brief Hide the input panel (virtual keyboard).
+ * @see edje_object_part_text_input_panel_show
+ *
+ * Note that input panel is shown or hidden automatically according to the focus state.
+ * This API can be used in the case of manually controling by using edje_object_part_text_input_panel_enabled_set.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @since 1.2.0
+ */
+EAPI void             edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part);
+
+/**
  * @brief Set the viewport region of the text.
  *
  * @param viewport A valid Evas_Object geometry
index 8030c22..b8dc2b0 100644 (file)
@@ -3272,6 +3272,30 @@ _edje_entry_input_panel_enabled_get(Edje_Real_Part *rp)
    return en->input_panel_enable;
 }
 
+void
+_edje_entry_input_panel_show(Edje_Real_Part *rp)
+{
+   Entry *en = rp->entry_data;
+
+   if (!en) return;
+#ifdef HAVE_ECORE_IMF
+   if (en->imf_context)
+     ecore_imf_context_input_panel_show(en->imf_context);
+#endif
+}
+
+void
+_edje_entry_input_panel_hide(Edje_Real_Part *rp)
+{
+   Entry *en = rp->entry_data;
+
+   if (!en) return;
+#ifdef HAVE_ECORE_IMF
+   if (en->imf_context)
+     ecore_imf_context_input_panel_hide(en->imf_context);
+#endif
+}
+
 static Evas_Textblock_Cursor *
 _cursor_get(Edje_Real_Part *rp, Edje_Cursor cur)
 {
index c17b486..e6b24b3 100644 (file)
@@ -1948,6 +1948,8 @@ void _edje_entry_autocapital_type_set(Edje_Real_Part *rp, Edje_Text_Autocapital_
 Edje_Text_Autocapital_Type _edje_entry_autocapital_type_get(Edje_Real_Part *rp);
 void _edje_entry_input_panel_enabled_set(Edje_Real_Part *rp, Eina_Bool enabled);
 Eina_Bool _edje_entry_input_panel_enabled_get(Edje_Real_Part *rp);
+void _edje_entry_input_panel_show(Edje_Real_Part *rp);
+void _edje_entry_input_panel_hide(Edje_Real_Part *rp);
 Eina_Bool _edje_entry_selection_geometry_get(Edje_Real_Part *rp, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
 
 void _edje_external_init();
index 5c41817..3a5d1db 100644 (file)
@@ -1991,6 +1991,34 @@ edje_object_part_text_input_panel_enabled_get(const Evas_Object *obj, const char
 }
 
 EAPI void
+edje_object_part_text_input_panel_show(const Evas_Object *obj, const char *part)
+{
+   Edje *ed;
+   Edje_Real_Part *rp;
+
+   ed = _edje_fetch(obj);
+   if ((!ed) || (!part)) return;
+   rp = _edje_real_part_recursive_get(ed, part);
+   if (!rp) return;
+   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+     _edje_entry_input_panel_show(rp);
+}
+
+EAPI void
+edje_object_part_text_input_panel_hide(const Evas_Object *obj, const char *part)
+{
+   Edje *ed;
+   Edje_Real_Part *rp;
+
+   ed = _edje_fetch(obj);
+   if ((!ed) || (!part)) return;
+   rp = _edje_real_part_recursive_get(ed, part);
+   if (!rp) return;
+   if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+     _edje_entry_input_panel_hide(rp);
+}
+
+EAPI void
 edje_object_text_insert_filter_callback_add(Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data)
 {
    Edje *ed;