edje: make functions in Text API return Eina_Bool.
authorVorobiov Vitalii <vi.vorobiov@samsung.com>
Thu, 31 Oct 2013 02:04:11 +0000 (11:04 +0900)
committerCedric Bail <cedric.bail@samsung.com>
Thu, 31 Oct 2013 02:04:18 +0000 (11:04 +0900)
Make the following functions return Eina_Bool so the caller can detect errors:
edje_edit_state_text_set
edje_edit_state_text_size_set
edje_edit_state_text_align_x_set
edje_edit_state_text_align_y_set
edje_edit_state_text_elipsis_set
edje_edit_state_text_fit_x_set
edje_edit_state_text_fit_y_set
edje_edit_state_text_min_x_set
edje_edit_state_text_min_y_set
edje_edit_state_text_max_x_set
edje_edit_state_text_max_y_set

Reviewers: cedric, seoz

CC: reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D301

Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
src/lib/edje/Edje_Edit.h
src/lib/edje/edje_edit.c

index ca521b5..efd7055 100644 (file)
@@ -55,7 +55,7 @@ typedef struct _Edje_Edit_Script_Error Edje_Edit_Script_Error;
  * @brief Functions to deal with edje internal object. Don't use in standard
  * situations. The use of any of the edje_edit_* functions can break your
  * theme ability, remember that the program must be separated from the interface!
- * 
+ *
  * This was intended ONLY for use in an actual edje editor program. Unless
  * you are writing one of these, do NOT use this API here.
  *
@@ -2227,8 +2227,10 @@ EAPI const char * edje_edit_state_text_get(Evas_Object *obj, const char *part, c
  * @param state The name of the state to set text (not including the state value).
  * @param value The state value.
  * @param text The new text to assign.
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_set(Evas_Object *obj, const char *part, const char *state, double value,const char *text);
+EAPI Eina_Bool edje_edit_state_text_set(Evas_Object *obj, const char *part, const char *state, double value,const char *text);
 
 /** Get font name for a given part state.
  *
@@ -2273,12 +2275,15 @@ EAPI int edje_edit_state_text_size_get(Evas_Object *obj, const char *part, const
  * @param state The name of the state to set text size (not including the state value).
  * @param value The state value.
  * @param size The new font size to set (in pixel)
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_size_set(Evas_Object *obj, const char *part, const char *state, double value, int size);
+EAPI Eina_Bool edje_edit_state_text_size_set(Evas_Object *obj, const char *part, const char *state, double value, int size);
 
 /** Get the text horizontal align of a part state.
  *
  * The value range is from 0.0(right) to 1.0(left)
+ * If the value is between -1.0 and 0.0 then it uses align automatically.
  *
  * @param obj Object being edited.
  * @param part Part that contain state.
@@ -2305,14 +2310,17 @@ EAPI double edje_edit_state_text_align_y_get(Evas_Object *obj, const char *part,
 /** Set the text horizontal align of a part state.
  *
  * The value range is from 0.0(right) to 1.0(left)
+ * If the value is between -1.0 and 0.0 then it uses align automatically.
  *
  * @param obj Object being edited.
  * @param part Part that contain state.
  * @param state The name of the state to set the text horizontal align (not including the state value).
  * @param value The state value.
  * @param align The new text horizontal align value
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_align_x_set(Evas_Object *obj, const char *part, const char *state, double value, double align);
+EAPI Eina_Bool edje_edit_state_text_align_x_set(Evas_Object *obj, const char *part, const char *state, double value, double align);
 
 /** Set the text vertical align of a part state.
  *
@@ -2323,12 +2331,14 @@ EAPI void edje_edit_state_text_align_x_set(Evas_Object *obj, const char *part, c
  * @param state The name of the state to set the text vertical align (not including the state value).
  * @param value The state value.
  * @param align The new text vertical align value
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_align_y_set(Evas_Object *obj, const char *part, const char *state, double value, double align);
+EAPI Eina_Bool edje_edit_state_text_align_y_set(Evas_Object *obj, const char *part, const char *state, double value, double align);
 
 /** Get the text elipsis of a part state.
  *
- * The value range is from 0.0(right) to 1.0(left)
+ * The value range is from 0.0(right) to 1.0(left), and -1.0 (if disabled)
  *
  * @param obj Object being edited.
  * @param part Part that contain state.
@@ -2342,14 +2352,17 @@ EAPI double edje_edit_state_text_elipsis_get(Evas_Object *obj, const char *part,
 /** Set the text vertical align of a part state.
  *
  * The value range is from 0.0(right) to 1.0(left)
+ * If the value is in range from -1.0 to 0.0 then ellipsis is disabled.
  *
  * @param obj Object being edited.
  * @param part Part that contain state.
  * @param state The name of the state to set the text elipses value (not including the state value).
  * @param value The state value.
  * @param balance The position where to cut the string
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_elipsis_set(Evas_Object *obj, const char *part, const char *state, double value, double balance);
+EAPI Eina_Bool edje_edit_state_text_elipsis_set(Evas_Object *obj, const char *part, const char *state, double value, double balance);
 
 /** Get if the text part fit it's container horizontally
  *
@@ -2369,8 +2382,10 @@ EAPI Eina_Bool edje_edit_state_text_fit_x_get(Evas_Object *obj, const char *part
  * @param state The name of the state to set the if the text part fit it's container horizontally (not including the state value).
  * @param value The state value.
  * @param fit EINA_TRUE to make the text fit it's container horizontally, EINA_FALSE otherwise.
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_fit_x_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool fit);
+EAPI Eina_Bool edje_edit_state_text_fit_x_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool fit);
 
 /** Get if the text part fit it's container vertically
  *
@@ -2390,8 +2405,10 @@ EAPI Eina_Bool edje_edit_state_text_fit_y_get(Evas_Object *obj, const char *part
  * @param state The name of the state to set the if the text part fit it's container vertically (not including the state value).
  * @param value The state value.
  * @param fit EINA_TRUE to make the text fit it's container vertically, EINA_FALSE otherwise.
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_fit_y_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool fit);
+EAPI Eina_Bool edje_edit_state_text_fit_y_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool fit);
 
 /** Get if the text part forces the minimum horizontal size of the container to be equal to the minimum horizontal size of the text part
  *
@@ -2444,8 +2461,10 @@ EAPI Eina_Bool edje_edit_state_text_max_y_get(Evas_Object *obj, const char *part
  * @param state The name of the state to set the the minimum horizontal size of the container to be equal (not including the state value).
  * @param value The state value.
  * @param v EINA_TRUE to make the text force it's forces container's minimum horizontal size, EINA_FALSE otherwise.
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_min_x_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v);
+EAPI Eina_Bool edje_edit_state_text_min_x_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v);
 
 /** Set if the text part forces the maximum horizontal size of the container to be equal to the maximum horizontal size of the text part
  *
@@ -2454,8 +2473,10 @@ EAPI void edje_edit_state_text_min_x_set(Evas_Object *obj, const char *part, con
  * @param state The name of the state to set the the maximum horizontal size of the container to be equal (not including the state value).
  * @param value The state value.
  * @param v EINA_TRUE to make the text force it's forces container's maximum horizontal size, EINA_FALSE otherwise.
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_max_x_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v);
+EAPI Eina_Bool edje_edit_state_text_max_x_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v);
 
 /** Set if the text part forces the minimum vertical size of the container to be equal to the minimum vertical size of the text part
  *
@@ -2464,8 +2485,10 @@ EAPI void edje_edit_state_text_max_x_set(Evas_Object *obj, const char *part, con
  * @param state The name of the state to set the the minimum vertical size of the container to be equal (not including the state value).
  * @param value The state value.
  * @param v EINA_TRUE to make the text force it's forces container's minimum vertical size, EINA_FALSE otherwise.
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_min_y_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v);
+EAPI Eina_Bool edje_edit_state_text_min_y_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v);
 
 /** Set if the text part forces the maximum vertical size of the container to be equal to the maximum vertical size of the text part
  *
@@ -2474,8 +2497,10 @@ EAPI void edje_edit_state_text_min_y_set(Evas_Object *obj, const char *part, con
  * @param state The name of the state to set the the maximum vertical size of the container to be equal (not including the state value).
  * @param value The state value.
  * @param v EINA_TRUE to make the text force it's forces container's maximum vertical size, EINA_FALSE otherwise.
+ *
+ * @return EINA_TRUE if successful, EINA_FALSE - otherwise.
  */
-EAPI void edje_edit_state_text_max_y_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v);
+EAPI Eina_Bool edje_edit_state_text_max_y_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v);
 
 /** Get the list of all the fonts in the given edje.
  *
index dc62e55..6cc37b2 100644 (file)
@@ -3930,25 +3930,22 @@ edje_edit_state_text_get(Evas_Object *obj, const char *part, const char *state,
      return NULL;
 
    txt = (Edje_Part_Description_Text *) pd;
-   //printf("GET TEXT of state: %s\n", state);
 
    return eina_stringshare_add(edje_string_get(&txt->text.text));
 }
 
-EAPI void
+EAPI Eina_Bool
 edje_edit_state_text_set(Evas_Object *obj, const char *part, const char *state, double value, const char *text)
 {
    Edje_Part_Description_Text *txt;
 
-   GET_PD_OR_RETURN();
-
-   //printf("SET TEXT of state: %s\n", state);
-
-   if (!text) return;
+   if ((!obj) || (!part) || (!state) || (!text))
+     return EINA_FALSE;
+   GET_PD_OR_RETURN(EINA_FALSE);
 
    if ((rp->part->type != EDJE_PART_TYPE_TEXT) &&
        (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
-     return;
+     return EINA_FALSE;
 
    txt = (Edje_Part_Description_Text *) pd;
 
@@ -3957,6 +3954,7 @@ edje_edit_state_text_set(Evas_Object *obj, const char *part, const char *state,
    txt->text.text.id = 0;
 
    edje_object_calc_force(obj);
+   return EINA_TRUE;
 }
 
 EAPI int
@@ -3971,33 +3969,33 @@ edje_edit_state_text_size_get(Evas_Object *obj, const char *part, const char *st
      return -1;
 
    txt = (Edje_Part_Description_Text *) pd;
-   //printf("GET TEXT_SIZE of state: %s [%d]\n", state, pd->text.size);
+
    return txt->text.size;
 }
 
-EAPI void
+EAPI Eina_Bool
 edje_edit_state_text_size_set(Evas_Object *obj, const char *part, const char *state, double value, int size)
 {
    Edje_Part_Description_Text *txt;
 
-   GET_PD_OR_RETURN();
-
-   //printf("SET TEXT_SIZE of state: %s [%d]\n", state, size);
-
-   if (size < 0) return;
+   if ((!obj) || (!part) || (!state))
+     return EINA_FALSE;
+   if (size < 0) return EINA_FALSE;
+   GET_PD_OR_RETURN(EINA_FALSE);
 
    if ((rp->part->type != EDJE_PART_TYPE_TEXT) &&
        (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))
-     return;
+     return EINA_FALSE;
 
    txt = (Edje_Part_Description_Text *) pd;
 
    txt->text.size = size;
 
    edje_object_calc_force(obj);
+   return EINA_TRUE;
 }
 
-#define FUNC_TEXT_DOUBLE(Name, Value)                                  \
+#define FUNC_TEXT_DOUBLE(Name, Value, Min)                             \
   EAPI double                                                          \
   edje_edit_state_text_##Name##_get(Evas_Object *obj, const char *part, const char *state, double value) \
   {                                                                    \
@@ -4012,25 +4010,30 @@ edje_edit_state_text_size_set(Evas_Object *obj, const char *part, const char *st
      txt = (Edje_Part_Description_Text *) pd;                          \
      return TO_DOUBLE(txt->text.Value);                                        \
   }                                                                    \
-  EAPI void                                                            \
+  EAPI Eina_Bool                                                        \
   edje_edit_state_text_##Name##_set(Evas_Object *obj, const char *part, const char *state, double value, double v) \
   {                                                                    \
      Edje_Part_Description_Text *txt;                                  \
+     if ((!obj) || (!part) || (!state))                                 \
+       return EINA_FALSE;                                               \
+     if ((v < Min) || (v > 1.0))                                        \
+       return EINA_FALSE;                                               \
                                                                        \
-     GET_PD_OR_RETURN();                                               \
+     GET_PD_OR_RETURN(EINA_FALSE);                                     \
                                                                        \
      if ((rp->part->type != EDJE_PART_TYPE_TEXT) &&                     \
          (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))                  \
-       return;                                                          \
+       return EINA_FALSE;                                               \
                                                                         \
      txt = (Edje_Part_Description_Text *) pd;                          \
      txt->text.Value = FROM_DOUBLE(v);                                 \
      edje_object_calc_force(obj);                                      \
-  }                                                                    \
+     return EINA_TRUE;                                                  \
+  }
 
-FUNC_TEXT_DOUBLE(align_x, align.x);
-FUNC_TEXT_DOUBLE(align_y, align.y);
-FUNC_TEXT_DOUBLE(elipsis, elipsis);
+FUNC_TEXT_DOUBLE(align_x, align.x, -1.0);
+FUNC_TEXT_DOUBLE(align_y, align.y, 0.0);
+FUNC_TEXT_DOUBLE(elipsis, elipsis, -1.0);
 
 #define FUNC_TEXT_BOOL(Name, Type)                                     \
   EAPI Eina_Bool                                                        \
@@ -4047,20 +4050,22 @@ FUNC_TEXT_DOUBLE(elipsis, elipsis);
      txt = (Edje_Part_Description_Text *) pd;                          \
      return txt->text.Name##_##Type;                                   \
   }                                                                    \
-  EAPI void                                                            \
+  EAPI Eina_Bool \
   edje_edit_state_text_##Name##_##Type##_set(Evas_Object *obj, const char *part, const char *state, double value, Eina_Bool v) \
   {                                                                    \
      Edje_Part_Description_Text *txt;                                  \
-                                                                       \
-     GET_PD_OR_RETURN();                                               \
+     if ((!obj) || (!part) || (!state))                                 \
+       return EINA_FALSE;                                               \
+     GET_PD_OR_RETURN(EINA_FALSE);                                     \
                                                                        \
      if ((rp->part->type != EDJE_PART_TYPE_TEXT) &&                     \
          (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK))                  \
-       return;                                                          \
+       return EINA_FALSE;                                               \
                                                                         \
      txt = (Edje_Part_Description_Text *) pd;                          \
      txt->text.Name##_##Type = v ? 1 : 0;                              \
      edje_object_calc_force(obj);                                      \
+     return EINA_TRUE;                                                  \
   }
 
 FUNC_TEXT_BOOL(fit, x);