3 typedef struct _Elm_Params_Searchbar
6 Eina_Bool cancel_button_exists:1;
7 Eina_Bool cancel_button_visible:1;
8 Eina_Bool cancel_button_animation:1;
9 Eina_Bool cancel_button_animation_exists:1;
10 Eina_Bool boundary_rect_exists:1;
11 Eina_Bool boundary_rect:1;
13 } Elm_Params_Searchbar;
16 external_searchbar_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
18 const Elm_Params_Searchbar *p;
20 if (to_params) p = to_params;
21 else if (from_params) p = from_params;
24 if (p->cancel_button_exists)
25 elm_searchbar_cancel_button_set(obj, p->cancel_button_visible);
26 if (p->cancel_button_animation_exists)
27 elm_searchbar_cancel_button_animation_set(obj, p->cancel_button_animation);
28 if (p->boundary_rect_exists)
29 elm_searchbar_boundary_rect_set(obj, p->boundary_rect);
31 elm_object_text_set(obj, p->text);
35 external_searchbar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
37 if (!strcmp(param->name, "cancel_button_visible"))
39 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
41 elm_searchbar_cancel_button_set(obj, param->i);
45 else if (!strcmp(param->name, "cancel_button_animation"))
47 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
49 elm_searchbar_cancel_button_animation_set(obj, param->i);
53 else if (!strcmp(param->name, "boundary_rect"))
55 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
57 elm_searchbar_boundary_rect_set(obj, param->i);
61 else if (!strcmp(param->name, "text"))
63 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
65 elm_object_text_set(obj, param->s);
70 ERR("unknown parameter '%s' of type '%s'",
71 param->name, edje_external_param_type_str(param->type));
77 external_searchbar_param_get(void *data __UNUSED__, const Evas_Object *obj __UNUSED__, Edje_External_Param *param)
79 if (!strcmp(param->name, "cancel_button_visible"))
81 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
86 else if (!strcmp(param->name, "cancel_button_animation"))
88 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
93 else if (!strcmp(param->name, "boundary_rect"))
95 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
100 else if (!strcmp(param->name, "text"))
102 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
104 param->s = elm_object_text_get(obj);
109 ERR("unknown parameter '%s' of type '%s'",
110 param->name, edje_external_param_type_str(param->type));
116 external_searchbar_params_parse(void *data __UNUSED__,
117 Evas_Object *obj __UNUSED__,
118 const Eina_List *params)
120 Elm_Params_Searchbar *mem = NULL;
121 Edje_External_Param *param;
124 mem = calloc(1, sizeof(Elm_Params_Searchbar));
128 EINA_LIST_FOREACH(params, l, param)
130 if (!strcmp(param->name, "cancel_button_visible"))
132 mem->cancel_button_visible = !!param->i;
133 mem->cancel_button_exists = EINA_TRUE;
135 if (!strcmp(param->name, "cancel_button_animation"))
137 mem->cancel_button_animation = !!param->i;
138 mem->cancel_button_animation_exists = EINA_TRUE;
140 if (!strcmp(param->name, "boundary_rect"))
142 mem->boundary_rect = !!param->i;
143 mem->boundary_rect_exists = EINA_TRUE;
145 else if (!strcmp(param->name, "text"))
147 mem->text = eina_stringshare_add(param->s);
154 static Evas_Object *external_searchbar_content_get(void *data __UNUSED__,
155 const Evas_Object *obj __UNUSED__,
156 const char *content __UNUSED__)
163 external_searchbar_params_free(void *params)
165 Elm_Params_Searchbar *mem = params;
167 eina_stringshare_del(mem->text);
171 static Edje_External_Param_Info external_searchbar_params[] = {
172 DEFINE_EXTERNAL_COMMON_PARAMS,
173 EDJE_EXTERNAL_PARAM_INFO_BOOL("cancel_button_visible"),
174 EDJE_EXTERNAL_PARAM_INFO_BOOL("cancel_button_animation"),
175 EDJE_EXTERNAL_PARAM_INFO_BOOL("boundary_rect"),
176 EDJE_EXTERNAL_PARAM_INFO_STRING("text"),
177 EDJE_EXTERNAL_PARAM_INFO_SENTINEL
180 DEFINE_EXTERNAL_ICON_ADD(searchbar, "searchbar");
181 DEFINE_EXTERNAL_TYPE_SIMPLE(searchbar, "Searchbar");