cedric pushed a commit to branch master.

commit ff01dec8fbaa0c502db821fcd29fb9335e12134e
Author: Cedric Bail <[email protected]>
Date:   Thu Sep 5 19:22:51 2013 +0900

    edje: fix function to use Eo API.
    
    I am really unhappy to have to do this patch myself. This commit is in since
    May and I have continuously request to be fixed. It has taken way to long. 
It's
    done now. Next time I see such a patch in EFL, I will revert it right away.
---
 src/lib/edje/Edje_Eo.h      | 29 +++++++++++++++++++++++++++++
 src/lib/edje/edje_private.h |  2 ++
 src/lib/edje/edje_smart.c   |  2 ++
 src/lib/edje/edje_util.c    | 36 ++++++++++++++++++++++++++++--------
 4 files changed, 61 insertions(+), 8 deletions(-)

diff --git a/src/lib/edje/Edje_Eo.h b/src/lib/edje/Edje_Eo.h
index 6678a96..b892ac6 100644
--- a/src/lib/edje/Edje_Eo.h
+++ b/src/lib/edje/Edje_Eo.h
@@ -63,6 +63,8 @@ enum
    EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET,
    EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET,
    EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET,
+   EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_VARIATION_SET,
+   EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_VARIATION_GET,
    EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET,
    EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET,
    EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET,
@@ -283,6 +285,33 @@ enum
 #define edje_obj_part_text_input_panel_layout_get(part, ret) 
EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET), 
EO_TYPECHECK(const char *, part), EO_TYPECHECK(Edje_Input_Panel_Layout *, ret)
 
 /**
+ * @def edje_obj_part_text_input_panel_variation_get
+ * @since 1.8
+ *
+ * @brief Get the layout variation of the input panel.
+ *
+ * @param[in] part
+ * @param[out] ret
+ *
+ * @see edje_object_part_text_input_panel_variation_get
+ */
+#define edje_obj_part_text_input_panel_variation_get(part, ret) 
EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_VARIATION_GET), 
EO_TYPECHECK(const char *, part), EO_TYPECHECK(int *, ret)
+
+/**
+ * @def edje_obj_part_text_input_panel_variation_set
+ * @since 1.8
+ *
+ * @brief Set the layout variation of the input panel.
+ *
+ * @param[in] part
+ * @param[in] variation
+ * @param[out] ret
+ *
+ * @see edje_object_part_text_input_panel_variation_get
+ */
+#define edje_obj_part_text_input_panel_variation_set(part, variation) 
EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_VARIATION_SET), 
EO_TYPECHECK(const char *, part), EO_TYPECHECK(int, variation)
+
+/**
  * @def edje_obj_part_text_autocapital_type_set
  * @since 1.8
  *
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index 608aa01..b850992 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -2471,6 +2471,8 @@ void _part_text_cursor_pos_get(Eo *obj, void *_pd, 
va_list *list);
 void _part_text_imf_context_reset(Eo *obj, void *_pd, va_list *list);
 void _part_text_input_panel_layout_set(Eo *obj, void *_pd, va_list *list);
 void _part_text_input_panel_layout_get(Eo *obj, void *_pd, va_list *list);
+void _part_text_input_panel_layout_variation_set(Eo *obj, void *_pd, va_list 
*list);
+void _part_text_input_panel_layout_variation_get(Eo *obj, void *_pd, va_list 
*list);
 void _part_text_autocapital_type_set(Eo *obj, void *_pd, va_list *list);
 void _part_text_autocapital_type_get(Eo *obj, void *_pd, va_list *list);
 void _part_text_prediction_allow_set(Eo *obj, void *_pd, va_list *list);
diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c
index de3ee80..bdd23f6 100644
--- a/src/lib/edje/edje_smart.c
+++ b/src/lib/edje/edje_smart.c
@@ -450,6 +450,8 @@ _edje_smart_class_constructor(Eo_Class *klass)
         EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_IMF_CONTEXT_RESET), 
_part_text_imf_context_reset),
         
EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_SET), 
_part_text_input_panel_layout_set),
         
EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_GET), 
_part_text_input_panel_layout_get),
+        
EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_VARIATION_SET), 
_part_text_input_panel_layout_variation_set),
+        
EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_VARIATION_GET), 
_part_text_input_panel_layout_variation_get),
         
EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_SET), 
_part_text_autocapital_type_set),
         
EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_AUTOCAPITAL_TYPE_GET), 
_part_text_autocapital_type_get),
         
EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_PREDICTION_ALLOW_SET), 
_part_text_prediction_allow_set),
diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index ae925c0..bbf3df3 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -2706,10 +2706,18 @@ _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;
+   eo_do((Eo *)obj, edje_obj_part_text_input_panel_variation_set(part, 
variation));
+}
+
+void
+_part_text_input_panel_layout_variation_set(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list)
+{
+   const char *part = va_arg(*list, const char *);
+   int variation = va_arg(*list, int);
+
+   Edje *ed = _pd;
    Edje_Real_Part *rp;
 
-   ed = _edje_fetch(obj);
    if ((!ed) || (!part)) return;
    rp = _edje_real_part_recursive_get(&ed, part);
    if (!rp) return;
@@ -2722,18 +2730,30 @@ 
edje_object_part_text_input_panel_layout_variation_set(Evas_Object *obj, const c
 EAPI int
 edje_object_part_text_input_panel_layout_variation_get(const Evas_Object *obj, 
const char *part)
 {
-   Edje *ed;
+   int ret = 0;
+   if (obj)
+     eo_do((Eo *)obj, edje_obj_part_text_input_panel_variation_get(part, 
&ret));
+   return ret;
+}
+
+void
+_part_text_input_panel_layout_variation_get(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list)
+{
+   const char *part = va_arg(*list, const char *);
+   int *r = va_arg(*list, int *);
+
+   Edje *ed = _pd;
    Edje_Real_Part *rp;
 
-   ed = _edje_fetch(obj);
-   if ((!ed) || (!part)) return 0;
+   if (*r) *r = 0;
+   if ((!ed) || (!part)) return ;
    rp = _edje_real_part_recursive_get(&ed, part);
-   if (!rp) return 0;
+   if (!rp) return ;
    if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
      {
-        return _edje_entry_input_panel_layout_variation_get(rp);
+        if (*r) *r = _edje_entry_input_panel_layout_variation_get(rp);
      }
-   return 0;
+   return ;
 }
 
 EAPI void

-- 

------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk

Reply via email to