Merge "[genlist] Removed unnecessary variable. Upstream merge r60747."
[framework/uifw/elementary.git] / src / edje_externals / elm_searchbar.c
1 #include "private.h"
2
3 typedef struct _Elm_Params_Searchbar
4 {
5    Elm_Params base;
6    Eina_Bool cancel_button_animation:1;
7    Eina_Bool cancel_button_animation_exists:1;
8 } Elm_Params_Searchbar;
9
10 static void
11 external_searchbar_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
12 {
13    const Elm_Params_Searchbar *p;
14
15    if (to_params) p = to_params;
16    else if (from_params) p = from_params;
17    else return;
18
19    //if (p->base.label)
20    //  elm_searchbar_text_set(obj, p->base.label);
21    if (p->cancel_button_animation_exists)
22       elm_searchbar_cancel_button_animation_set(obj, p->cancel_button_animation);
23 }
24
25 static Eina_Bool
26 external_searchbar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
27 {
28    if (!strcmp(param->name, "label"))
29      {
30         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
31           {
32              elm_searchbar_text_set(obj, param->s);
33              return EINA_TRUE;
34           }
35      }
36    else if (!strcmp(param->name, "cancel_button_animation"))
37      {
38          if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
39            {
40               elm_searchbar_cancel_button_animation_set(obj, param->i);
41             return EINA_TRUE;
42          }
43      }
44
45    ERR("unknown parameter '%s' of type '%s'",
46        param->name, edje_external_param_type_str(param->type));
47
48    return EINA_FALSE;
49 }
50
51 static Eina_Bool
52 external_searchbar_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
53 {
54    if (!strcmp(param->name, "label"))
55      {
56         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
57           {
58              param->s = elm_searchbar_text_get((Evas_Object *)obj);
59              return EINA_TRUE;
60           }
61      }
62    else if (!strcmp(param->name, "cancel_button_animation"))
63      {
64         if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
65           {
66              return param->i;
67           }
68      }
69
70    ERR("unknown parameter '%s' of type '%s'",
71        param->name, edje_external_param_type_str(param->type));
72
73    return EINA_FALSE;
74 }
75
76 static void *
77 external_searchbar_params_parse(void *data __UNUSED__,
78                                 Evas_Object *obj __UNUSED__,
79                                 const Eina_List *params)
80 {
81    Elm_Params_Searchbar *mem = NULL;
82    Edje_External_Param *param;
83    const Eina_List *l;
84
85    //mem = external_common_params_parse(Elm_Params_Searchbar, data, obj, params);
86    if (!mem)
87       return NULL;
88
89    EINA_LIST_FOREACH(params, l, param)
90      {
91         if (!strcmp(param->name, "cancel_button_animation"))
92           {
93              mem->cancel_button_animation = param->i;
94              mem->cancel_button_animation_exists = EINA_TRUE;
95           }
96      }
97
98    return mem;
99 }
100
101 static Evas_Object *external_searchbar_content_get(void *data __UNUSED__,
102                 const Evas_Object *obj __UNUSED__,
103                 const char *content __UNUSED__)
104 {
105         ERR("so content");
106         return NULL;
107 }
108
109 static void
110 external_searchbar_params_free(void *params)
111 {
112    external_common_params_free(params);
113 }
114
115 static Edje_External_Param_Info external_searchbar_params[] = {
116    DEFINE_EXTERNAL_COMMON_PARAMS,
117    EDJE_EXTERNAL_PARAM_INFO_BOOL("cancel_button_animation"),
118    EDJE_EXTERNAL_PARAM_INFO_SENTINEL
119 };
120
121 DEFINE_EXTERNAL_ICON_ADD(searchbar, "searchbar");
122 DEFINE_EXTERNAL_TYPE_SIMPLE(searchbar, "Searchbar");