3 typedef struct _Elm_Params_Entry
8 Eina_Bool editable_exists:1;
10 Eina_Bool single_exists:1;
12 Eina_Bool wrap_exists:1;
13 Eina_Bool char_wrap:1;
14 Eina_Bool char_wrap_exists:1;
16 Eina_Bool password_exists:1;
17 Eina_Bool context_menu_disabled:1;
18 Eina_Bool context_menu_disabled_exists:1;
20 Eina_Bool bounce_exists;
22 Eina_Bool h_bounce_exists:1;
24 Eina_Bool v_bounce_exists:1;
25 Eina_Bool autocapitalization:1;
26 Eina_Bool autocapitalization_exists:1;
27 Eina_Bool autoperiod:1;
28 Eina_Bool autoperiod_exists:1;
33 external_scrolled_entry_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
35 const Elm_Params_Entry *p;
37 if (to_params) p = to_params;
38 else if (from_params) p = from_params;
41 if ((!p->text_set) && (p->text))
43 elm_scrolled_entry_entry_set(obj, p->text);
44 ((Elm_Params_Entry *)p)->text_set = EINA_TRUE;
46 if (p->editable_exists)
47 elm_scrolled_entry_editable_set(obj, p->editable);
49 elm_scrolled_entry_single_line_set(obj, p->single);
51 elm_scrolled_entry_line_wrap_set(obj, p->wrap);
52 if (p->char_wrap_exists)
53 elm_scrolled_entry_line_char_wrap_set(obj, p->char_wrap);
54 if (p->password_exists)
55 elm_scrolled_entry_password_set(obj, p->password);
56 if (p->context_menu_disabled_exists)
57 elm_scrolled_entry_context_menu_disabled_set(obj, p->context_menu_disabled);
58 if ((p->h_bounce_exists) && (p->v_bounce_exists))
59 elm_scrolled_entry_bounce_set(obj, p->h_bounce, p->v_bounce);
60 else if ((p->h_bounce_exists) || (p->v_bounce_exists))
62 Eina_Bool h_bounce, v_bounce;
64 elm_smart_scroller_bounce_allow_get(obj, &h_bounce, &v_bounce);
65 if (p->h_bounce_exists)
66 elm_scrolled_entry_bounce_set(obj, p->h_bounce, v_bounce);
68 elm_scrolled_entry_bounce_set(obj, h_bounce, p->v_bounce);
70 if (p->autocapitalization_exists)
71 elm_scrolled_entry_autocapitalization_set(obj, p->autocapitalization);
72 if (p->autoperiod_exists)
73 elm_scrolled_entry_autoperiod_set(obj, p->autoperiod);
77 external_scrolled_entry_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
79 if (!strcmp(param->name, "text"))
81 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
83 elm_scrolled_entry_entry_set(obj, param->s);
87 else if (!strcmp(param->name, "editable"))
89 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
91 elm_scrolled_entry_editable_set(obj, param->i);
95 else if (!strcmp(param->name, "single line"))
97 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
99 elm_scrolled_entry_single_line_set(obj, param->i);
103 else if (!strcmp(param->name, "line wrap"))
105 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
107 elm_scrolled_entry_line_wrap_set(obj, param->i);
111 else if (!strcmp(param->name, "character line wrap"))
113 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
115 elm_scrolled_entry_line_char_wrap_set(obj, param->i);
119 else if (!strcmp(param->name, "password"))
121 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
123 elm_scrolled_entry_password_set(obj, param->i);
127 else if (!strcmp(param->name, "context menu disabled"))
129 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
131 elm_scrolled_entry_context_menu_disabled_set(obj, param->i);
135 else if (!strcmp(param->name, "height bounce"))
137 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
139 Eina_Bool h_bounce, v_bounce;
140 elm_smart_scroller_bounce_allow_get(obj, &h_bounce, &v_bounce);
141 elm_scrolled_entry_bounce_set(obj, param->i, v_bounce);
145 else if (!strcmp(param->name, "width bounce"))
147 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
149 Eina_Bool h_bounce, v_bounce;
150 elm_smart_scroller_bounce_allow_get(obj, &h_bounce, &v_bounce);
151 elm_scrolled_entry_bounce_set(obj, h_bounce, param->i);
155 else if (!strcmp(param->name, "autocapitalization"))
157 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
159 elm_scrolled_entry_autocapitalization_set(obj, param->i);
163 else if (!strcmp(param->name, "autoperiod"))
165 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
167 elm_scrolled_entry_autoperiod_set(obj, param->i);
172 ERR("unknown parameter '%s' of type '%s'",
173 param->name, edje_external_param_type_str(param->type));
179 external_scrolled_entry_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
181 if (!strcmp(param->name, "text"))
183 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
185 param->s = elm_scrolled_entry_entry_get(obj);
189 else if (!strcmp(param->name, "editable"))
191 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
193 param->i = elm_scrolled_entry_editable_get(obj);
197 else if (!strcmp(param->name, "single line"))
199 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
201 param->i = elm_scrolled_entry_single_line_get(obj);
205 else if (!strcmp(param->name, "password"))
207 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
209 param->i = elm_scrolled_entry_password_get(obj);
213 else if (!strcmp(param->name, "context menu disabled"))
215 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
217 param->i = elm_scrolled_entry_context_menu_disabled_get(obj);
221 else if (!strcmp(param->name, "height bounce"))
223 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
225 Eina_Bool h_bounce, v_bounce;
226 elm_smart_scroller_bounce_allow_get(obj, &h_bounce, &v_bounce);
231 else if (!strcmp(param->name, "width bounce"))
233 if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
235 Eina_Bool h_bounce, v_bounce;
236 elm_smart_scroller_bounce_allow_get(obj, &h_bounce, &v_bounce);
242 ERR("unknown parameter '%s' of type '%s'",
243 param->name, edje_external_param_type_str(param->type));
249 external_scrolled_entry_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
251 Elm_Params_Entry *mem;
252 Edje_External_Param *param;
255 mem = calloc(1, sizeof(Elm_Params_Entry));
259 EINA_LIST_FOREACH(params, l, param)
261 if (!strcmp(param->name, "text"))
262 mem->text = eina_stringshare_add(param->s);
263 else if (!strcmp(param->name, "single line"))
265 mem->single = !!param->i;
266 mem->single_exists = EINA_TRUE;
268 else if (!strcmp(param->name, "line wrap"))
270 mem->wrap = !!param->i;
271 mem->wrap_exists = EINA_TRUE;
273 else if (!strcmp(param->name, "character line wrap"))
275 mem->char_wrap = !!param->i;
276 mem->char_wrap_exists = EINA_TRUE;
278 else if (!strcmp(param->name, "password"))
280 mem->password = !!param->i;
281 mem->password_exists = EINA_TRUE;
283 else if (!strcmp(param->name, "editable"))
285 mem->editable = param->i;
286 mem->editable_exists = EINA_TRUE;
288 else if (!strcmp(param->name, "context menu disabled"))
290 mem->context_menu_disabled = param->i;
291 mem->context_menu_disabled_exists = EINA_TRUE;
293 else if (!strcmp(param->name, "height bounce"))
295 mem->h_bounce = !!param->i;
296 mem->h_bounce_exists = EINA_TRUE;
298 else if (!strcmp(param->name, "width bounce"))
300 mem->v_bounce = !!param->i;
301 mem->v_bounce_exists = EINA_TRUE;
303 else if (!strcmp(param->name, "autocapitalization"))
305 mem->autocapitalization = !!param->i;
306 mem->autocapitalization_exists = EINA_TRUE;
308 else if (!strcmp(param->name, "autoperiod"))
310 mem->autoperiod = !!param->i;
311 mem->autoperiod_exists = EINA_TRUE;
318 static Evas_Object *external_scrolled_entry_content_get(void *data __UNUSED__,
319 const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
326 external_scrolled_entry_params_free(void *params)
328 Elm_Params_Entry *mem = params;
331 eina_stringshare_del(mem->text);
335 static Edje_External_Param_Info external_scrolled_entry_params[] = {
336 DEFINE_EXTERNAL_COMMON_PARAMS,
337 EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("text", "some text"),
338 EDJE_EXTERNAL_PARAM_INFO_BOOL("editable"),
339 EDJE_EXTERNAL_PARAM_INFO_BOOL("single line"),
340 EDJE_EXTERNAL_PARAM_INFO_BOOL("line wrap"),
341 EDJE_EXTERNAL_PARAM_INFO_BOOL("character line wrap"),
342 EDJE_EXTERNAL_PARAM_INFO_BOOL("password"),
343 EDJE_EXTERNAL_PARAM_INFO_BOOL("context menu disabled"),
344 EDJE_EXTERNAL_PARAM_INFO_BOOL("height bounce"),
345 EDJE_EXTERNAL_PARAM_INFO_BOOL("width bounce"),
346 EDJE_EXTERNAL_PARAM_INFO_BOOL("autocapitalization"),
347 EDJE_EXTERNAL_PARAM_INFO_BOOL("autoperiod"),
348 EDJE_EXTERNAL_PARAM_INFO_SENTINEL
351 DEFINE_EXTERNAL_ICON_ADD(scrolled_entry, "scrolled_entry")
352 DEFINE_EXTERNAL_TYPE_SIMPLE(scrolled_entry, "Entry");