3 typedef struct _Elm_Params_Check
9 Eina_Bool state_exists:1;
13 external_check_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
15 const Elm_Params_Check *p;
17 if (to_params) p = to_params;
18 else if (from_params) p = from_params;
22 elm_object_text_set(obj, p->label);
24 elm_check_icon_set(obj, p->icon);
26 elm_check_state_set(obj, p->state);
30 external_check_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
32 if (!strcmp(param->name, "label"))
34 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
36 elm_object_text_set(obj, param->s);
40 else if (!strcmp(param->name, "icon"))
42 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
44 Evas_Object *icon = external_common_param_icon_get(obj, param);
45 if ((strcmp(param->s, "")) && (!icon)) return EINA_FALSE;
46 elm_check_icon_set(obj, icon);
50 else if (!strcmp(param->name, "state"))
52 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
54 elm_check_state_set(obj, param->i);
59 ERR("unknown parameter '%s' of type '%s'",
60 param->name, edje_external_param_type_str(param->type));
66 external_check_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
68 if (!strcmp(param->name, "label"))
70 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
72 param->s = elm_object_text_get(obj);
76 else if (!strcmp(param->name, "icon"))
78 /* not easy to get icon name back from live object */
81 else if (!strcmp(param->name, "state"))
83 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
85 param->i = elm_check_state_get(obj);
90 ERR("unknown parameter '%s' of type '%s'",
91 param->name, edje_external_param_type_str(param->type));
97 external_check_params_parse(void *data __UNUSED__, Evas_Object *obj, const Eina_List *params)
99 Elm_Params_Check *mem;
100 Edje_External_Param *param;
103 mem = calloc(1, sizeof(Elm_Params_Check));
107 external_common_icon_param_parse(&mem->icon, obj, params);
109 EINA_LIST_FOREACH(params, l, param)
111 if (!strcmp(param->name, "state"))
113 mem->state = !!param->i;
114 mem->state_exists = EINA_TRUE;
116 else if (!strcmp(param->name, "label"))
117 mem->label = eina_stringshare_add(param->s);
123 static Evas_Object *external_check_content_get(void *data __UNUSED__,
124 const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
131 external_check_params_free(void *params)
133 Elm_Params_Check *mem = params;
135 eina_stringshare_del(mem->label);
139 static Edje_External_Param_Info external_check_params[] = {
140 DEFINE_EXTERNAL_COMMON_PARAMS,
141 EDJE_EXTERNAL_PARAM_INFO_STRING("label"),
142 EDJE_EXTERNAL_PARAM_INFO_STRING("icon"),
143 EDJE_EXTERNAL_PARAM_INFO_BOOL_FULL("state", 0, "unchecked", "checked"),
144 EDJE_EXTERNAL_PARAM_INFO_SENTINEL
147 DEFINE_EXTERNAL_ICON_ADD(check, "check")
148 DEFINE_EXTERNAL_TYPE_SIMPLE(check, "Check")