From 836496c265355a44c2c539c87ad6609d4554e09e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Briano?= Date: Wed, 9 Dec 2009 06:51:13 +0000 Subject: [PATCH] Add type bool to external parameters Patch by glima SVN revision: 44308 --- legacy/edje/src/lib/Edje.h | 22 ++++++++++++++++++---- legacy/edje/src/lib/edje_external.c | 17 +++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h index 34c7d508d9..b42cbaeec9 100644 --- a/legacy/edje/src/lib/Edje.h +++ b/legacy/edje/src/lib/Edje.h @@ -32,7 +32,7 @@ # endif #endif -/** +/** * @file Edje.h * @brief Edje Graphical Design Library * @@ -244,6 +244,7 @@ enum _Edje_External_Param_Type EDJE_EXTERNAL_PARAM_TYPE_INT, EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, EDJE_EXTERNAL_PARAM_TYPE_STRING, + EDJE_EXTERNAL_PARAM_TYPE_BOOL, EDJE_EXTERNAL_PARAM_TYPE_MAX }; typedef enum _Edje_External_Param_Type Edje_External_Param_Type; @@ -287,6 +288,12 @@ struct _Edje_External_Param_Info const char *accept_fmt; const char *deny_fmt; } s; + struct + { + int def; + const char *false_str; + const char *true_str; + } b; } info; }; typedef struct _Edje_External_Param_Info Edje_External_Param_Info; @@ -297,6 +304,8 @@ typedef struct _Edje_External_Param_Info Edje_External_Param_Info; {name, EDJE_EXTERNAL_PARAM_TYPE_DOUBLE, {.d = {def, min, max, step}}} #define EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, accept, deny) \ {name, EDJE_EXTERNAL_PARAM_TYPE_STRING, {.s = {def, accept, deny}}} +#define EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, false_str, true_str) \ + {name, EDJE_EXTERNAL_PARAM_TYPE_BOOL, {.b = {def, false_str, true_str}}} #define EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, def) \ EDJE_EXTERNAL_PARAM_INFO_INT_FULL(name, def, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET, EDJE_EXTERNAL_INT_UNSET) @@ -304,6 +313,8 @@ typedef struct _Edje_External_Param_Info Edje_External_Param_Info; EDJE_EXTERNAL_PARAM_INFO_DOUBLE_FULL(name, def, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET, EDJE_EXTERNAL_DOUBLE_UNSET) #define EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, def) \ EDJE_EXTERNAL_PARAM_INFO_STRING_FULL(name, def, NULL, NULL) +#define EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, def) \ + EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL(name, def, "false", "true") #define EDJE_EXTERNAL_PARAM_INFO_INT(name) \ EDJE_EXTERNAL_PARAM_INFO_INT_DEFAULT(name, 0) @@ -311,6 +322,8 @@ typedef struct _Edje_External_Param_Info Edje_External_Param_Info; EDJE_EXTERNAL_PARAM_INFO_DOUBLE_DEFAULT(name, 0.0) #define EDJE_EXTERNAL_PARAM_INFO_STRING(name) \ EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT(name, NULL) +#define EDJE_EXTERNAL_PARAM_INFO_BOOL(name) \ + EDJE_EXTERNAL_PARAM_INFO_BOOL_DEFAULT(name, 0) #define EDJE_EXTERNAL_PARAM_INFO_SENTINEL {NULL, 0, {.s = {NULL, NULL, NULL}}} @@ -375,7 +388,7 @@ extern "C" { EAPI double edje_scale_get (void); EAPI void edje_object_scale_set (Evas_Object *obj, double scale); EAPI double edje_object_scale_get (const Evas_Object *obj); - + /* edje_load.c */ EAPI Eina_List *edje_file_collection_list (const char *file); EAPI void edje_file_collection_list_free (Eina_List *lst); @@ -456,7 +469,7 @@ extern "C" { EAPI void edje_object_part_text_cursor_geometry_get (const Evas_Object *obj, const char *part, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); EAPI void edje_object_part_text_select_allow_set (const Evas_Object *obj, const char *part, Eina_Bool allow); EAPI void edje_object_part_text_select_abort (const Evas_Object *obj, const char *part); - + EAPI Eina_Bool edje_object_part_text_cursor_next(const Evas_Object *obj, const char *part, Edje_Cursor cur); EAPI Eina_Bool edje_object_part_text_cursor_prev(const Evas_Object *obj, const char *part, Edje_Cursor cur); EAPI Eina_Bool edje_object_part_text_cursor_up(const Evas_Object *obj, const char *part, Edje_Cursor cur); @@ -469,7 +482,7 @@ extern "C" { EAPI Eina_Bool edje_object_part_text_cursor_is_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur); EAPI Eina_Bool edje_object_part_text_cursor_is_visible_format_get(const Evas_Object *obj, const char *part, Edje_Cursor cur); EAPI const char *edje_object_part_text_cursor_content_get(const Evas_Object *obj, const char *part, Edje_Cursor cur); - + EAPI void edje_object_part_swallow (Evas_Object *obj, const char *part, Evas_Object *obj_swallow); EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow); EAPI Evas_Object *edje_object_part_swallow_get (const Evas_Object *obj, const char *part); @@ -519,6 +532,7 @@ extern "C" { EAPI Eina_Bool edje_external_param_int_get(const Eina_List *params, const char *key, int *ret); EAPI Eina_Bool edje_external_param_double_get(const Eina_List *params, const char *key, double *ret); EAPI Eina_Bool edje_external_param_string_get(const Eina_List *params, const char *key, const char **ret); + EAPI Eina_Bool edje_external_param_bool_get(const Eina_List *params, const char *key, const char **ret); EAPI const Edje_External_Param_Info *edje_external_param_info_get(const char *type_name); /* edje_module.c */ diff --git a/legacy/edje/src/lib/edje_external.c b/legacy/edje/src/lib/edje_external.c index 0fc1a9c642..47d49dd653 100644 --- a/legacy/edje/src/lib/edje_external.c +++ b/legacy/edje/src/lib/edje_external.c @@ -221,6 +221,23 @@ edje_external_param_string_get(const Eina_List *params, const char *key, const c return EINA_FALSE; } +EAPI Eina_Bool +edje_external_param_bool_get(const Eina_List *params, const char *key, const char **ret) +{ + Edje_External_Param *param; + + if (!params) return EINA_FALSE; + param = edje_external_param_find(params, key); + + if (param && param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL && ret) + { + *ret = param->i; + return EINA_TRUE; + } + + return EINA_FALSE; +} + EAPI const Edje_External_Param_Info * edje_external_param_info_get(const char *type_name) {