jihoon pushed a commit to branch master.
commit 8dda0883c1835e0a2bea850bcd9ab2d66d58e665
Author: Jihoon Kim <[email protected]>
Date: Wed Mar 27 17:28:53 2013 +0900
edje: Add edje_object_part_text_input_panel_layout_variation_set/get API
---
ChangeLog | 1 +
NEWS | 1 +
src/lib/edje/Edje.h | 36 ++++++++++++++++++++++++++++++++++++
src/lib/edje/edje_entry.c | 34 ++++++++++++++++++++++++++++++++++
src/lib/edje/edje_private.h | 2 ++
src/lib/edje/edje_util.c | 33 +++++++++++++++++++++++++++++++++
6 files changed, 107 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 731b5f9..680af60 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
2013-03-27 Jihoon Kim
* Add ecore_imf_context_input_panel_variation_set/get API.
+ * Add edje_object_part_text_input_panel_layout_variation_set/get API.
2013-03-25 Cedric Bail
diff --git a/NEWS b/NEWS
index 84c205f..31f8b5b 100644
--- a/NEWS
+++ b/NEWS
@@ -82,6 +82,7 @@ Additions:
* 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
+ * Add edje_object_part_text_input_panel_layout_variation_set/get API
Deprecations:
* ecore_x:
diff --git a/src/lib/edje/Edje.h b/src/lib/edje/Edje.h
index 5ae4711..749b1d4 100644
--- a/src/lib/edje/Edje.h
+++ b/src/lib/edje/Edje.h
@@ -5227,6 +5227,14 @@ typedef enum _Edje_Input_Panel_Layout
EDJE_INPUT_PANEL_LAYOUT_PASSWORD /**< Like normal, but no
auto-correct, no auto-capitalization etc. @since 1.2 */
} Edje_Input_Panel_Layout;
+enum
+{
+ EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_NORMAL,
+ EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED,
+ EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_DECIMAL,
+ EDJE_INPUT_PANEL_LAYOUT_NUMBERONLY_VARIATION_SIGNED_AND_DECIMAL
+};
+
typedef void (*Edje_Text_Filter_Cb) (void *data, Evas_Object *obj,
const char *part, Edje_Text_Filter_Type type, char **text);
typedef void (*Edje_Markup_Filter_Cb) (void *data, Evas_Object *obj,
const char *part, char **text);
typedef Evas_Object *(*Edje_Item_Provider_Cb) (void *data, Evas_Object *obj,
const char *part, const char *item);
@@ -5346,6 +5354,34 @@ EAPI void
edje_object_part_text_input_panel_layout_set (Evas_Ob
EAPI Edje_Input_Panel_Layout edje_object_part_text_input_panel_layout_get
(const Evas_Object *obj, const char *part);
/**
+ * @brief Set the layout variation of the input panel.
+ *
+ * The layout variation of the input panel or virtual keyboard can make it
easier or
+ * harder to enter content. This allows you to hint what kind of input you
+ * are expecting to enter and thus have the input panel automatically
+ * come up with the right mode.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ * @param variation layout variation type
+ * @since 1.8
+ */
+EAPI void
edje_object_part_text_input_panel_layout_variation_set(Evas_Object *obj, const
char *part, int variation);
+
+/**
+ * @brief Get the layout variation of the input panel.
+ *
+ * @param obj A valid Evas_Object handle
+ * @param part The part name
+ *
+ * @return Layout variation type of the input panel
+ *
+ * @see edje_object_part_text_input_panel_layout_variation_set
+ * @since 1.8
+ */
+EAPI int
edje_object_part_text_input_panel_layout_variation_get(const Evas_Object *obj,
const char *part);
+
+/**
* @brief Set the autocapitalization type on the immodule.
*
* @param obj A valid Evas_Object handle
diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 82f5bb0..4eaf0a7 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -3595,6 +3595,40 @@ _edje_entry_input_panel_layout_get(Edje_Real_Part *rp)
}
void
+_edje_entry_input_panel_layout_variation_set(Edje_Real_Part *rp, int variation)
+{
+ Entry *en;
+
+ if ((rp->type != EDJE_RP_TYPE_TEXT) ||
+ (!rp->typedata.text)) return;
+ en = rp->typedata.text->entry_data;
+ if (!en) return;
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ ecore_imf_context_input_panel_layout_variation_set(en->imf_context,
variation);
+#else
+ (void) variation;
+#endif
+}
+
+int
+_edje_entry_input_panel_layout_variation_get(Edje_Real_Part *rp)
+{
+ Entry *en;
+
+ if ((rp->type != EDJE_RP_TYPE_TEXT) ||
+ (!rp->typedata.text)) return 0;
+ en = rp->typedata.text->entry_data;
+ if (!en) return 0;
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ return
ecore_imf_context_input_panel_layout_variation_get(en->imf_context);
+#endif
+
+ return 0;
+}
+
+void
_edje_entry_imf_context_reset(Edje_Real_Part *rp)
{
#ifdef HAVE_ECORE_IMF
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index e79fee9..452e56d 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -2271,6 +2271,8 @@ int _edje_entry_cursor_pos_get(Edje_Real_Part *rp,
Edje_Cursor cur);
void _edje_entry_imf_context_reset(Edje_Real_Part *rp);
void _edje_entry_input_panel_layout_set(Edje_Real_Part *rp,
Edje_Input_Panel_Layout layout);
Edje_Input_Panel_Layout _edje_entry_input_panel_layout_get(Edje_Real_Part *rp);
+void _edje_entry_input_panel_layout_variation_set(Edje_Real_Part *rp, int
variation);
+int _edje_entry_input_panel_layout_variation_get(Edje_Real_Part *rp);
void _edje_entry_autocapital_type_set(Edje_Real_Part *rp,
Edje_Text_Autocapital_Type autocapital_type);
Edje_Text_Autocapital_Type _edje_entry_autocapital_type_get(Edje_Real_Part
*rp);
void _edje_entry_prediction_allow_set(Edje_Real_Part *rp, Eina_Bool
prediction);
diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index a1e9508..83baf0d 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -2722,6 +2722,39 @@ _part_text_input_panel_layout_get(Eo *obj EINA_UNUSED,
void *_pd, va_list *list)
}
EAPI void
+edje_object_part_text_input_panel_layout_variation_set(Evas_Object *obj, const
char *part, int variation)
+{
+ 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_layout_variation_set(rp, variation);
+ }
+}
+
+EAPI int
+edje_object_part_text_input_panel_layout_variation_get(const Evas_Object *obj,
const char *part)
+{
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ ed = _edje_fetch(obj);
+ if ((!ed) || (!part)) return 0;
+ rp = _edje_real_part_recursive_get(ed, part);
+ if (!rp) return 0;
+ if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
+ {
+ return _edje_entry_input_panel_layout_variation_get(rp);
+ }
+ return 0;
+}
+
+EAPI void
edje_object_part_text_autocapital_type_set(Evas_Object *obj, const char *part,
Edje_Text_Autocapital_Type autocapital_type)
{
if (!obj) return;
--
------------------------------------------------------------------------------
Own the Future-Intel® Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest.
Compete for recognition, cash, and the chance to get your game
on Steam. $5K grand prize plus 10 genre and skill prizes.
Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d