Initialize Tizen 2.3
[framework/uifw/elementary.git] / wearable / src / bin / test_entry.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5 #ifndef ELM_LIB_QUICKLAUNCH
6 static void
7 my_entry_bt_1(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
8 {
9    Evas_Object *en = data;
10    elm_object_text_set(en, "");
11 }
12
13 static void
14 my_entry_bt_2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
15 {
16    Evas_Object *en = data;
17    const char *s = elm_object_text_get(en);
18    printf("ENTRY:\n");
19    if (s) printf("%s\n", s);
20    printf("ENTRY PLAIN UTF8:\n");
21    if (s)
22      {
23         s = elm_entry_markup_to_utf8(s);
24         if (s)
25           {
26              printf("%s\n", s);
27              free((char *)s);
28           }
29      }
30 }
31
32 static void
33 my_entry_bt_3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
34 {
35    Evas_Object *en = data;
36    const char *s = elm_entry_selection_get(en);
37    printf("SELECTION:\n");
38    if (s) printf("%s\n", s);
39    printf("SELECTION PLAIN UTF8:\n");
40    if (s)
41      {
42         s = elm_entry_markup_to_utf8(s);
43         if (s)
44           {
45              printf("%s\n", s);
46              free((char *)s);
47           }
48      }
49 }
50
51 static void
52 my_entry_bt_4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
53 {
54    Evas_Object *en = data;
55    elm_entry_entry_insert(en, "Insert some <b>BOLD</> text");
56 }
57
58 static void
59 my_entry_bt_5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
60 {
61    Evas_Object *en = data;
62    elm_entry_scrollable_set(en, !elm_entry_scrollable_get(en));
63 }
64
65 static void
66 my_entry_bt_6(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
67 {
68    Evas_Object *en = data;
69    static Elm_Wrap_Type wr = ELM_WRAP_NONE;
70
71    wr++;
72    if (wr == ELM_WRAP_LAST) wr = ELM_WRAP_NONE;
73    printf("wr: %i\n", wr);
74    elm_entry_line_wrap_set(en, wr);
75 }
76
77 void
78 test_entry(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
79 {
80    Evas_Object *win, *bx, *bx2, *bt, *en;
81    char buf[4096];
82
83    win = elm_win_util_standard_add("entry", "Entry");
84    elm_win_autodel_set(win, EINA_TRUE);
85
86    bx = elm_box_add(win);
87    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
88    elm_win_resize_object_add(win, bx);
89    evas_object_show(bx);
90
91    en = elm_entry_add(win);
92    elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
93    snprintf(buf, sizeof(buf),
94             "This is an entry widget in this window that<br/>"
95             "uses markup <b>like this</> for styling and<br/>"
96             "formatting <em>like this</>, as well as<br/>"
97             "<a href=X><link>links in the text</></a>, so enter text<br/>"
98             "in here to edit it. By the way, links are<br/>"
99             "called <a href=anc-02>Anchors</a> so you will need<br/>"
100             "to refer to them this way.<br/>"
101             "<br/>"
102
103             "Also you can stick in items with (relsize + ascent): "
104             "<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>"
105             " (full) "
106             "<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>"
107             " (to the left)<br/>"
108
109             "Also (size + ascent): "
110             "<item size=16x16 vsize=ascent href=emoticon/haha></item>"
111             " (full) "
112             "<item size=16x16 vsize=full href=emoticon/happy-panting></item>"
113             " (before this)<br/>"
114
115             "And as well (absize + ascent): "
116             "<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>"
117             " (full) "
118             "<item absize=64x64 vsize=full href=emoticon/not-impressed></item>"
119             " or even paths to image files on disk too like: "
120             "<item absize=96x128 vsize=full href=file://%s/images/sky_01.jpg></item>"
121             " ... end."
122             , elm_app_data_dir_get()
123             );
124    elm_object_text_set(en, buf);
125    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
126    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
127    elm_box_pack_end(bx, en);
128    evas_object_show(en);
129
130    bx2 = elm_box_add(win);
131    elm_box_horizontal_set(bx2, EINA_TRUE);
132    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
133    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
134
135    bt = elm_button_add(win);
136    elm_object_text_set(bt, "Clr");
137    evas_object_smart_callback_add(bt, "clicked", my_entry_bt_1, en);
138    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
139    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
140    elm_box_pack_end(bx2, bt);
141    evas_object_propagate_events_set(bt, 0);
142    elm_object_focus_allow_set(bt, 0);
143    evas_object_show(bt);
144
145    bt = elm_button_add(win);
146    elm_object_text_set(bt, "Prnt");
147    evas_object_smart_callback_add(bt, "clicked", my_entry_bt_2, en);
148    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
149    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
150    elm_box_pack_end(bx2, bt);
151    evas_object_propagate_events_set(bt, 0);
152    elm_object_focus_allow_set(bt, 0);
153    evas_object_show(bt);
154
155    bt = elm_button_add(win);
156    elm_object_text_set(bt, "Sel");
157    evas_object_smart_callback_add(bt, "clicked", my_entry_bt_3, en);
158    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
159    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
160    elm_box_pack_end(bx2, bt);
161    evas_object_propagate_events_set(bt, 0);
162    elm_object_focus_allow_set(bt, 0);
163    evas_object_show(bt);
164
165    bt = elm_button_add(win);
166    elm_object_text_set(bt, "Ins");
167    evas_object_smart_callback_add(bt, "clicked", my_entry_bt_4, en);
168    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
169    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
170    elm_box_pack_end(bx2, bt);
171    evas_object_propagate_events_set(bt, 0);
172    elm_object_focus_allow_set(bt, 0);
173    evas_object_show(bt);
174
175    bt = elm_button_add(win);
176    elm_object_text_set(bt, "Scrl");
177    evas_object_smart_callback_add(bt, "clicked", my_entry_bt_5, en);
178    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
179    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
180    elm_box_pack_end(bx2, bt);
181    evas_object_propagate_events_set(bt, 0);
182    elm_object_focus_allow_set(bt, 0);
183    evas_object_show(bt);
184
185    bt = elm_button_add(win);
186    elm_object_text_set(bt, "Wr");
187    evas_object_smart_callback_add(bt, "clicked", my_entry_bt_6, en);
188    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
189    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
190    elm_box_pack_end(bx2, bt);
191    evas_object_propagate_events_set(bt, 0);
192    elm_object_focus_allow_set(bt, 0);
193    evas_object_show(bt);
194
195    elm_box_pack_end(bx, bx2);
196    evas_object_show(bx2);
197
198    elm_object_focus_set(en, EINA_TRUE);
199    evas_object_show(win);
200 }
201
202 static void
203 my_scrolled_entry_bt_1(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
204 {
205    Evas_Object *en = data;
206    elm_object_text_set(en, "");
207 }
208
209 static void
210 my_scrolled_entry_bt_2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
211 {
212    Evas_Object *en = data;
213    const char *s = elm_object_text_get(en);
214    printf("ENTRY:\n");
215    if (s) printf("%s\n", s);
216    printf("ENTRY PLAIN UTF8:\n");
217    if (s)
218      {
219         s = elm_entry_markup_to_utf8(s);
220         if (s)
221           {
222              printf("%s\n", s);
223              free((char *)s);
224           }
225      }
226 }
227
228 static void
229 my_scrolled_entry_bt_3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
230 {
231    Evas_Object *en = data;
232    const char *s = elm_entry_selection_get(en);
233    printf("SELECTION:\n");
234    if (s) printf("%s\n", s);
235    printf("SELECTION PLAIN UTF8:\n");
236    if (s)
237      {
238         s = elm_entry_markup_to_utf8(s);
239         if (s)
240           {
241              printf("%s\n", s);
242              free((char *)s);
243           }
244      }
245 }
246
247 static void
248 my_scrolled_entry_bt_4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
249 {
250    Evas_Object *en = data;
251    elm_entry_entry_insert(en, "Insert some <b>BOLD</> text");
252 }
253
254 static void
255 my_scrolled_entry_bt_5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
256 {
257    Evas_Object *en = data;
258    const char *s = elm_object_text_get(en);
259    printf("PASSWORD: '%s'\n", s ? s : "");
260 }
261
262 static void
263 scrolled_anchor_test(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
264 {
265    Evas_Object *en = data;
266    elm_entry_entry_insert(en, "ANCHOR CLICKED");
267 }
268
269 void
270 test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
271 {
272    Evas_Object *win, *bx, *bx2, *bt, *en, *en_p, *sp;
273    static Elm_Entry_Filter_Accept_Set digits_filter_data, digits_filter_data2;
274    static Elm_Entry_Filter_Limit_Size limit_filter_data, limit_filter_data2;
275
276    win = elm_win_util_standard_add("entry-scrolled", "Entry Scrolled");
277    elm_win_autodel_set(win, EINA_TRUE);
278
279    bx = elm_box_add(win);
280    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
281    elm_win_resize_object_add(win, bx);
282    evas_object_show(bx);
283
284    /* disabled entry */
285    en = elm_entry_add(win);
286    elm_entry_scrollable_set(en, EINA_TRUE);
287    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
288    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
289    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
290    elm_object_text_set(en, "Disabled entry");
291    elm_entry_single_line_set(en, EINA_TRUE);
292    elm_object_disabled_set(en, EINA_TRUE);
293    evas_object_show(en);
294    elm_box_pack_end(bx, en);
295
296    /* password entry */
297    en = elm_entry_add(win);
298    elm_entry_scrollable_set(en, EINA_TRUE);
299    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
300    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
301    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
302    elm_entry_password_set(en, EINA_TRUE);
303    elm_entry_single_line_set(en, EINA_TRUE);
304    elm_object_text_set(en, "Access denied, give up!");
305    elm_object_disabled_set(en, EINA_TRUE);
306    evas_object_show(en);
307    elm_box_pack_end(bx, en);
308
309    /* multi-line disable entry */
310    en = elm_entry_add(win);
311    elm_entry_scrollable_set(en, EINA_TRUE);
312    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
313    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
314    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
315    elm_object_disabled_set(en, EINA_TRUE);
316    elm_entry_context_menu_item_add(en, "Hello", NULL, ELM_ICON_NONE, NULL, NULL);
317    elm_entry_context_menu_item_add(en, "World", NULL, ELM_ICON_NONE, NULL, NULL);
318    elm_object_text_set(en,
319                        "Multi-line disabled entry widget :)<br/>"
320                        "We can use markup <b>like this</> for styling and<br/>"
321                        "formatting <em>like this</>, as well as<br/>"
322                        "<a href=X><link>links in the text</></a>,"
323                        "but it won't be editable or clickable.");
324    evas_object_show(en);
325    elm_box_pack_end(bx, en);
326
327    sp = elm_separator_add(win);
328    elm_separator_horizontal_set(sp, EINA_TRUE);
329    elm_box_pack_end(bx, sp);
330    evas_object_show(sp);
331
332    /* Single line selected entry */
333    en = elm_entry_add(win);
334    elm_entry_scrollable_set(en, EINA_TRUE);
335    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
336    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
337    elm_object_text_set(en, "This is a single line");
338    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
339    elm_entry_single_line_set(en, EINA_TRUE);
340    elm_entry_select_all(en);
341    evas_object_show(en);
342    elm_box_pack_end(bx, en);
343
344    /* Only digits entry */
345    en = elm_entry_add(win);
346    elm_entry_scrollable_set(en, EINA_TRUE);
347    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
348    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
349    elm_object_text_set(en, "01234");
350    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
351    elm_entry_single_line_set(en, EINA_TRUE);
352    evas_object_show(en);
353    elm_box_pack_end(bx, en);
354
355    digits_filter_data.accepted = "0123456789";
356    digits_filter_data.rejected = NULL;
357    elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data);
358
359    /* No digits entry */
360    en = elm_entry_add(win);
361    elm_entry_scrollable_set(en, EINA_TRUE);
362    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
363    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
364    elm_object_text_set(en, "No numbers here");
365    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
366    elm_entry_single_line_set(en, EINA_TRUE);
367    evas_object_show(en);
368    elm_box_pack_end(bx, en);
369
370    digits_filter_data2.accepted = NULL;
371    digits_filter_data2.rejected = "0123456789";
372    elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data2);
373
374    /* Size limited entry */
375    en = elm_entry_add(win);
376    elm_entry_scrollable_set(en, EINA_TRUE);
377    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
378    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
379    elm_object_text_set(en, "Just 20 chars");
380    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
381    elm_entry_single_line_set(en, EINA_TRUE);
382    evas_object_show(en);
383    elm_box_pack_end(bx, en);
384
385    limit_filter_data.max_char_count = 20;
386    limit_filter_data.max_byte_count = 0;
387    elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data);
388
389    /* Byte size limited entry */
390    en = elm_entry_add(win);
391    elm_entry_scrollable_set(en, EINA_TRUE);
392    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
393    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
394    elm_object_text_set(en, "And now only 30 bytes");
395    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
396    elm_entry_single_line_set(en, EINA_TRUE);
397    evas_object_show(en);
398    elm_box_pack_end(bx, en);
399
400    limit_filter_data2.max_char_count = 0;
401    limit_filter_data2.max_byte_count = 30;
402    elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data2);
403
404    /* Single line password entry */
405    en_p = elm_entry_add(win);
406    elm_entry_scrollable_set(en_p, EINA_TRUE);
407    evas_object_size_hint_weight_set(en_p, EVAS_HINT_EXPAND, 0.0);
408    evas_object_size_hint_align_set(en_p, EVAS_HINT_FILL, 0.5);
409    elm_scroller_policy_set(en_p, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
410    elm_object_text_set(en_p, "Password here");
411    elm_entry_single_line_set(en_p, EINA_TRUE);
412    elm_entry_password_set(en_p, EINA_TRUE);
413    evas_object_show(en_p);
414    elm_box_pack_end(bx, en_p);
415
416    /* entry with icon/end widgets*/
417    en = elm_entry_add(win);
418    elm_entry_scrollable_set(en, EINA_TRUE);
419    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
420    elm_entry_single_line_set(en, EINA_TRUE);
421    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
422    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
423    bt = elm_icon_add(win);
424    elm_icon_standard_set(bt, "home");
425    evas_object_size_hint_min_set(bt, 48, 48);
426    evas_object_color_set(bt, 128, 0, 0, 128);
427    evas_object_show(bt);
428    elm_object_part_content_set(en, "icon", bt);
429    bt = elm_icon_add(win);
430    elm_icon_standard_set(bt, "delete");
431    evas_object_color_set(bt, 128, 0, 0, 128);
432    evas_object_size_hint_min_set(bt, 48, 48);
433    evas_object_show(bt);
434    elm_object_part_content_set(en, "end", bt);
435    elm_object_text_set(en, "entry with icon and end objects");
436    evas_object_show(en);
437    elm_box_pack_end(bx, en);
438
439    /* markup entry */
440    en = elm_entry_add(win);
441    elm_entry_scrollable_set(en, EINA_TRUE);
442    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
443    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
444    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
445    elm_object_text_set(en,
446                        "This is an entry widget in this window that<br/>"
447                        "uses markup <b>like this</> for styling and<br/>"
448                        "formatting <em>like this</>, as well as<br/>"
449                        "<a href=X><link>links in the text</></a>, so enter text<br/>"
450                        "in here to edit it. By them way, links are<br/>"
451                        "called <a href=anc-02>Anchors</a> so you will need<br/>"
452                        "to refer to them this way. At the end here is a really long "
453                        "line to test line wrapping to see if it works. But just in "
454                        "case this line is not long enough I will add more here to "
455                        "really test it out, as Elementary really needs some "
456                        "good testing to see if entry widgets work as advertised.");
457    evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);
458    evas_object_show(en);
459    elm_box_pack_end(bx, en);
460
461    bx2 = elm_box_add(win);
462    elm_box_horizontal_set(bx2, EINA_TRUE);
463    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
464    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
465
466    bt = elm_button_add(win);
467    elm_object_text_set(bt, "Clear");
468    evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_1, en);
469    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
470    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
471    elm_box_pack_end(bx2, bt);
472    evas_object_propagate_events_set(bt, 0);
473    elm_object_focus_allow_set(bt, 0);
474    evas_object_show(bt);
475
476    bt = elm_button_add(win);
477    elm_object_text_set(bt, "Print");
478    evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_2, en);
479    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
480    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
481    elm_box_pack_end(bx2, bt);
482    evas_object_propagate_events_set(bt, 0);
483    elm_object_focus_allow_set(bt, 0);
484    evas_object_show(bt);
485
486    bt = elm_button_add(win);
487    elm_object_text_set(bt, "Print pwd");
488    evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_5, en_p);
489    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
490    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
491    elm_box_pack_end(bx2, bt);
492    evas_object_propagate_events_set(bt, 0);
493    elm_object_focus_allow_set(bt, 0);
494    evas_object_show(bt);
495
496    bt = elm_button_add(win);
497    elm_object_text_set(bt, "Selection");
498    evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_3, en);
499    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
500    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
501    elm_box_pack_end(bx2, bt);
502    evas_object_propagate_events_set(bt, 0);
503    elm_object_focus_allow_set(bt, 0);
504    evas_object_show(bt);
505
506    bt = elm_button_add(win);
507    elm_object_text_set(bt, "Insert");
508    evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_4, en);
509    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
510    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
511    elm_box_pack_end(bx2, bt);
512    evas_object_propagate_events_set(bt, 0);
513    elm_object_focus_allow_set(bt, 0);
514    evas_object_show(bt);
515
516    elm_box_pack_end(bx, bx2);
517    evas_object_show(bx2);
518
519    evas_object_resize(win, 320, 300);
520
521    elm_object_focus_set(win, EINA_TRUE);
522    evas_object_show(win);
523 }
524
525 static void
526 my_ent_bt_clr(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
527 {
528    Evas_Object *en = data;
529    elm_object_text_set(en, "");
530 }
531
532 static void
533 my_ent_bt_pri(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
534 {
535    Evas_Object *en = data;
536    const char *s = elm_object_text_get(en);
537    printf("ENTRY:\n");
538    if (s) printf("%s\n", s);
539    printf("ENTRY PLAIN UTF8:\n");
540    if (s)
541      {
542         s = elm_entry_markup_to_utf8(s);
543         if (s)
544           {
545              printf("%s\n", s);
546              free((char *)s);
547           }
548      }
549 }
550
551 static void
552 my_ent_bt_sel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
553 {
554    Evas_Object *en = data;
555    const char *s = elm_entry_selection_get(en);
556    printf("SELECTION:\n");
557    if (s) printf("%s\n", s);
558    printf("SELECTION PLAIN UTF8:\n");
559    if (s)
560      {
561         s = elm_entry_markup_to_utf8(s);
562         if (s)
563           {
564              printf("%s\n", s);
565              free((char *)s);
566           }
567      }
568 }
569
570 static void
571 my_ent_bt_all(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
572 {
573    Evas_Object *en = data;
574    elm_entry_select_all(en);
575 }
576
577 static void
578 my_ent_bt_non(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
579 {
580    Evas_Object *en = data;
581    elm_entry_select_none(en);
582 }
583
584 static void
585 my_ent_bt_ins(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
586 {
587    Evas_Object *en = data;
588    elm_entry_entry_insert(en, "Insert text");
589 }
590
591 static void
592 my_ent_bt_lef(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
593 {
594    Evas_Object *en = data;
595    elm_entry_cursor_prev(en);
596 }
597
598 static void
599 my_ent_bt_rig(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
600 {
601    Evas_Object *en = data;
602    elm_entry_cursor_next(en);
603 }
604
605 static void
606 my_ent_bt_up_(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
607 {
608    Evas_Object *en = data;
609    elm_entry_cursor_up(en);
610 }
611
612 static void
613 my_ent_bt_dow(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
614 {
615    Evas_Object *en = data;
616    elm_entry_cursor_down(en);
617 }
618
619 static void
620 my_ent_bt_beg(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
621 {
622    Evas_Object *en = data;
623    elm_entry_cursor_begin_set(en);
624 }
625
626 static void
627 my_ent_bt_end(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
628 {
629    Evas_Object *en = data;
630    elm_entry_cursor_end_set(en);
631 }
632
633 static void
634 my_ent_bt_lbe(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
635 {
636    Evas_Object *en = data;
637    elm_entry_cursor_line_begin_set(en);
638 }
639
640 static void
641 my_ent_bt_len(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
642 {
643    Evas_Object *en = data;
644    elm_entry_cursor_line_end_set(en);
645 }
646
647 static void
648 my_ent_bt_sbe(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
649 {
650    Evas_Object *en = data;
651    elm_entry_cursor_selection_begin(en);
652 }
653
654 static void
655 my_ent_bt_sen(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
656 {
657    Evas_Object *en = data;
658    elm_entry_cursor_selection_end(en);
659 }
660
661 static void
662 my_ent_bt_fmt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
663 {
664    Evas_Object *en = data;
665    printf("IS FORMAT: %i\n",
666           (int)elm_entry_cursor_is_format_get(en));
667 }
668
669 static void
670 my_ent_bt_vfm(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
671 {
672    Evas_Object *en = data;
673    printf("IS VISIBLE FORMAT %i\n",
674           (int)elm_entry_cursor_is_visible_format_get(en));
675 }
676
677 static void
678 my_ent_bt_chr(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
679 {
680    Evas_Object *en = data;
681    printf("CHAR '%s'\n", elm_entry_cursor_content_get(en));
682 }
683
684 static void
685 my_ent_bt_cut(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
686 {
687    Evas_Object *en = data;
688    elm_entry_selection_cut(en);
689 }
690
691 static void
692 my_ent_bt_cop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
693 {
694    Evas_Object *en = data;
695    elm_entry_selection_copy(en);
696 }
697
698 static void
699 my_ent_bt_pas(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
700 {
701    Evas_Object *en = data;
702    elm_entry_selection_paste(en);
703 }
704
705 static void
706 ent_bt_style_user_peek(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
707 {
708    Evas_Object *en = data;
709    const char* cur_style = elm_entry_text_style_user_peek(en);
710    if (cur_style)
711      printf("Current style user: %s\n", cur_style);
712    else
713      printf("Style user stack is empty.\n");
714 }
715
716 static void
717 ent_bt_style_user_pop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
718 {
719    Evas_Object *en = data;
720    elm_entry_text_style_user_pop(en);
721    printf("Style user popped\n");
722 }
723
724 void
725 test_entry_style_user(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
726 {
727    Evas_Object *win, *bx, *en, *bt, *bt2;
728
729    win = elm_win_util_standard_add("entry-style", "Entry Style");
730    elm_win_autodel_set(win, EINA_TRUE);
731    evas_object_resize(win, 300, 300);
732
733    bx = elm_box_add(win);
734    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
735    elm_win_resize_object_add(win, bx);
736    evas_object_show(bx);
737
738
739    en = elm_entry_add(win);
740    elm_entry_line_wrap_set(en, ELM_WRAP_MIXED);
741
742    elm_entry_text_style_user_push(en, "DEFAULT='font_size=40 color=#FF0000'");
743    elm_object_text_set(en, "Testing Text");
744
745    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
746    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
747    elm_box_pack_end(bx, en);
748    evas_object_resize(en, 200, 200);
749    evas_object_show(en);
750
751    bt = elm_button_add(win);
752    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
753    elm_object_text_set(bt, "Peek");
754    evas_object_smart_callback_add(bt, "clicked", ent_bt_style_user_peek, en);
755    evas_object_size_hint_weight_set(bt, 0.0, 0.0);
756    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, 0.5);
757    elm_box_pack_end(bx, bt);
758    evas_object_propagate_events_set(bt, 0);
759    elm_object_focus_allow_set(bt, 0);
760    evas_object_show(bt);
761
762    bt2 = elm_button_add(win);
763    evas_object_size_hint_weight_set(bt2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
764    elm_object_text_set(bt2, "Pop");
765    evas_object_smart_callback_add(bt2, "clicked", ent_bt_style_user_pop, en);
766    evas_object_size_hint_weight_set(bt2, 0.0, 0.0);
767    evas_object_size_hint_align_set(bt2, EVAS_HINT_FILL, 0.5);
768    elm_box_pack_end(bx, bt2);
769    evas_object_propagate_events_set(bt2, 0);
770    elm_object_focus_allow_set(bt2, 0);
771    evas_object_show(bt2);
772
773    elm_object_focus_set(en, EINA_TRUE);
774    evas_object_show(win);
775 }
776
777 void
778 test_entry3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
779 {
780    Evas_Object *win, *bx, *bx2, *bt, *en;
781
782    win = elm_win_util_standard_add("entry3", "Entry 3");
783    elm_win_autodel_set(win, EINA_TRUE);
784
785    bx = elm_box_add(win);
786    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
787    elm_win_resize_object_add(win, bx);
788    evas_object_show(bx);
789
790    /* Single line selected entry */
791    en = elm_entry_add(win);
792    elm_entry_scrollable_set(en, EINA_TRUE);
793    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
794    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
795    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
796    elm_object_text_set(en, "This is a single line");
797    elm_entry_single_line_set(en, EINA_TRUE);
798    elm_box_pack_end(bx, en);
799    evas_object_show(en);
800
801    bx2 = elm_box_add(win);
802    elm_box_horizontal_set(bx2, EINA_TRUE);
803    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
804    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
805
806    bt = elm_button_add(win);
807    elm_object_text_set(bt, "Clr");
808    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);
809    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
810    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
811    elm_box_pack_end(bx2, bt);
812    evas_object_propagate_events_set(bt, 0);
813    elm_object_focus_allow_set(bt, 0);
814    evas_object_show(bt);
815
816    bt = elm_button_add(win);
817    elm_object_text_set(bt, "Pri");
818    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);
819    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
820    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
821    elm_box_pack_end(bx2, bt);
822    evas_object_propagate_events_set(bt, 0);
823    elm_object_focus_allow_set(bt, 0);
824    evas_object_show(bt);
825
826    bt = elm_button_add(win);
827    elm_object_text_set(bt, "Sel");
828    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);
829    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
830    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
831    elm_box_pack_end(bx2, bt);
832    evas_object_propagate_events_set(bt, 0);
833    elm_object_focus_allow_set(bt, 0);
834    evas_object_show(bt);
835
836    bt = elm_button_add(win);
837    elm_object_text_set(bt, "All");
838    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);
839    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
840    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
841    elm_box_pack_end(bx2, bt);
842    evas_object_propagate_events_set(bt, 0);
843    elm_object_focus_allow_set(bt, 0);
844    evas_object_show(bt);
845
846    bt = elm_button_add(win);
847    elm_object_text_set(bt, "Non");
848    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);
849    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
850    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
851    elm_box_pack_end(bx2, bt);
852    evas_object_propagate_events_set(bt, 0);
853    elm_object_focus_allow_set(bt, 0);
854    evas_object_show(bt);
855
856    bt = elm_button_add(win);
857    elm_object_text_set(bt, "Ins");
858    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);
859    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
860    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
861    elm_box_pack_end(bx2, bt);
862    evas_object_propagate_events_set(bt, 0);
863    elm_object_focus_allow_set(bt, 0);
864    evas_object_show(bt);
865
866    elm_box_pack_end(bx, bx2);
867    evas_object_show(bx2);
868
869    bx2 = elm_box_add(win);
870    elm_box_horizontal_set(bx2, EINA_TRUE);
871    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
872    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
873
874    bt = elm_button_add(win);
875    elm_object_text_set(bt, "Lef");
876    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);
877    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
878    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
879    elm_box_pack_end(bx2, bt);
880    evas_object_propagate_events_set(bt, 0);
881    elm_object_focus_allow_set(bt, 0);
882    evas_object_show(bt);
883
884    bt = elm_button_add(win);
885    elm_object_text_set(bt, "Rig");
886    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);
887    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
888    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
889    elm_box_pack_end(bx2, bt);
890    evas_object_propagate_events_set(bt, 0);
891    elm_object_focus_allow_set(bt, 0);
892    evas_object_show(bt);
893
894    bt = elm_button_add(win);
895    elm_object_text_set(bt, "Up ");
896    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);
897    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
898    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
899    elm_box_pack_end(bx2, bt);
900    evas_object_propagate_events_set(bt, 0);
901    elm_object_focus_allow_set(bt, 0);
902    evas_object_show(bt);
903
904    bt = elm_button_add(win);
905    elm_object_text_set(bt, "Dow");
906    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);
907    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
908    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
909    elm_box_pack_end(bx2, bt);
910    evas_object_propagate_events_set(bt, 0);
911    elm_object_focus_allow_set(bt, 0);
912    evas_object_show(bt);
913
914    bt = elm_button_add(win);
915    elm_object_text_set(bt, "Beg");
916    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);
917    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
918    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
919    elm_box_pack_end(bx2, bt);
920    evas_object_propagate_events_set(bt, 0);
921    elm_object_focus_allow_set(bt, 0);
922    evas_object_show(bt);
923
924    bt = elm_button_add(win);
925    elm_object_text_set(bt, "End");
926    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en);
927    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
928    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
929    elm_box_pack_end(bx2, bt);
930    evas_object_propagate_events_set(bt, 0);
931    elm_object_focus_allow_set(bt, 0);
932    evas_object_show(bt);
933
934    elm_box_pack_end(bx, bx2);
935    evas_object_show(bx2);
936
937    bx2 = elm_box_add(win);
938    elm_box_horizontal_set(bx2, EINA_TRUE);
939    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
940    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
941
942    bt = elm_button_add(win);
943    elm_object_text_set(bt, "LBe");
944    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en);
945    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
946    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
947    elm_box_pack_end(bx2, bt);
948    evas_object_propagate_events_set(bt, 0);
949    elm_object_focus_allow_set(bt, 0);
950    evas_object_show(bt);
951
952    bt = elm_button_add(win);
953    elm_object_text_set(bt, "LEn");
954    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);
955    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
956    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
957    elm_box_pack_end(bx2, bt);
958    evas_object_propagate_events_set(bt, 0);
959    elm_object_focus_allow_set(bt, 0);
960    evas_object_show(bt);
961
962    bt = elm_button_add(win);
963    elm_object_text_set(bt, "SBe");
964    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);
965    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
966    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
967    elm_box_pack_end(bx2, bt);
968    evas_object_propagate_events_set(bt, 0);
969    elm_object_focus_allow_set(bt, 0);
970    evas_object_show(bt);
971
972    bt = elm_button_add(win);
973    elm_object_text_set(bt, "SEn");
974    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);
975    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
976    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
977    elm_box_pack_end(bx2, bt);
978    evas_object_propagate_events_set(bt, 0);
979    elm_object_focus_allow_set(bt, 0);
980    evas_object_show(bt);
981
982    bt = elm_button_add(win);
983    elm_object_text_set(bt, "Fmt");
984    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);
985    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
986    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
987    elm_box_pack_end(bx2, bt);
988    evas_object_propagate_events_set(bt, 0);
989    elm_object_focus_allow_set(bt, 0);
990    evas_object_show(bt);
991
992    bt = elm_button_add(win);
993    elm_object_text_set(bt, "VFm");
994    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);
995    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
996    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
997    elm_box_pack_end(bx2, bt);
998    evas_object_propagate_events_set(bt, 0);
999    elm_object_focus_allow_set(bt, 0);
1000    evas_object_show(bt);
1001
1002    elm_box_pack_end(bx, bx2);
1003    evas_object_show(bx2);
1004
1005    bx2 = elm_box_add(win);
1006    elm_box_horizontal_set(bx2, EINA_TRUE);
1007    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1008    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1009
1010    bt = elm_button_add(win);
1011    elm_object_text_set(bt, "Chr");
1012    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);
1013    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1014    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1015    elm_box_pack_end(bx2, bt);
1016    evas_object_propagate_events_set(bt, 0);
1017    elm_object_focus_allow_set(bt, 0);
1018    evas_object_show(bt);
1019
1020    bt = elm_button_add(win);
1021    elm_object_text_set(bt, "Cut");
1022    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);
1023    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1024    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1025    elm_box_pack_end(bx2, bt);
1026    evas_object_propagate_events_set(bt, 0);
1027    elm_object_focus_allow_set(bt, 0);
1028    evas_object_show(bt);
1029
1030    bt = elm_button_add(win);
1031    elm_object_text_set(bt, "Cop");
1032    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);
1033    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1034    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1035    elm_box_pack_end(bx2, bt);
1036    evas_object_propagate_events_set(bt, 0);
1037    elm_object_focus_allow_set(bt, 0);
1038    evas_object_show(bt);
1039
1040    bt = elm_button_add(win);
1041    elm_object_text_set(bt, "Pas");
1042    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);
1043    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1044    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1045    elm_box_pack_end(bx2, bt);
1046    evas_object_propagate_events_set(bt, 0);
1047    elm_object_focus_allow_set(bt, 0);
1048    evas_object_show(bt);
1049
1050    elm_box_pack_end(bx, bx2);
1051    evas_object_show(bx2);
1052
1053    /* markup entry */
1054    en = elm_entry_add(win);
1055    elm_entry_scrollable_set(en, EINA_TRUE);
1056    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1057    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1058    elm_object_text_set(en,
1059                        "This is an entry widget in this window that<br/>"
1060                        "uses markup <b>like this</> for styling and<br/>"
1061                        "formatting <em>like this</>, as well as<br/>"
1062                        "<a href=X><link>links in the text</></a>, so enter text<br/>"
1063                        "in here to edit it. By them way, links are<br/>"
1064                        "called <a href=anc-02>Anchors</a> so you will need<br/>"
1065                        "to refer to them this way. At the end here is a really long "
1066                        "line to test line wrapping to see if it works. But just in "
1067                        "case this line is not long enough I will add more here to "
1068                        "really test it out, as Elementary really needs some "
1069                        "good testing to see if entry widgets work as advertised."
1070                       );
1071    evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);
1072    elm_box_pack_end(bx, en);
1073    evas_object_show(en);
1074
1075    bx2 = elm_box_add(win);
1076    elm_box_horizontal_set(bx2, EINA_TRUE);
1077    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1078    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1079
1080    bt = elm_button_add(win);
1081    elm_object_text_set(bt, "Clr");
1082    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);
1083    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1084    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1085    elm_box_pack_end(bx2, bt);
1086    evas_object_propagate_events_set(bt, 0);
1087    elm_object_focus_allow_set(bt, 0);
1088    evas_object_show(bt);
1089
1090    bt = elm_button_add(win);
1091    elm_object_text_set(bt, "Pri");
1092    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);
1093    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1094    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1095    elm_box_pack_end(bx2, bt);
1096    evas_object_propagate_events_set(bt, 0);
1097    elm_object_focus_allow_set(bt, 0);
1098    evas_object_show(bt);
1099
1100    bt = elm_button_add(win);
1101    elm_object_text_set(bt, "Sel");
1102    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);
1103    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1104    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1105    elm_box_pack_end(bx2, bt);
1106    evas_object_propagate_events_set(bt, 0);
1107    elm_object_focus_allow_set(bt, 0);
1108    evas_object_show(bt);
1109
1110    bt = elm_button_add(win);
1111    elm_object_text_set(bt, "All");
1112    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);
1113    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1114    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1115    elm_box_pack_end(bx2, bt);
1116    evas_object_propagate_events_set(bt, 0);
1117    elm_object_focus_allow_set(bt, 0);
1118    evas_object_show(bt);
1119
1120    bt = elm_button_add(win);
1121    elm_object_text_set(bt, "Non");
1122    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);
1123    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1124    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1125    elm_box_pack_end(bx2, bt);
1126    evas_object_propagate_events_set(bt, 0);
1127    elm_object_focus_allow_set(bt, 0);
1128    evas_object_show(bt);
1129
1130    bt = elm_button_add(win);
1131    elm_object_text_set(bt, "Ins");
1132    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);
1133    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1134    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1135    elm_box_pack_end(bx2, bt);
1136    evas_object_propagate_events_set(bt, 0);
1137    elm_object_focus_allow_set(bt, 0);
1138    evas_object_show(bt);
1139
1140    elm_box_pack_end(bx, bx2);
1141    evas_object_show(bx2);
1142
1143    bx2 = elm_box_add(win);
1144    elm_box_horizontal_set(bx2, EINA_TRUE);
1145    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1146    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1147
1148    bt = elm_button_add(win);
1149    elm_object_text_set(bt, "Lef");
1150    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);
1151    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1152    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1153    elm_box_pack_end(bx2, bt);
1154    evas_object_propagate_events_set(bt, 0);
1155    elm_object_focus_allow_set(bt, 0);
1156    evas_object_show(bt);
1157
1158    bt = elm_button_add(win);
1159    elm_object_text_set(bt, "Rig");
1160    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);
1161    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1162    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1163    elm_box_pack_end(bx2, bt);
1164    evas_object_propagate_events_set(bt, 0);
1165    elm_object_focus_allow_set(bt, 0);
1166    evas_object_show(bt);
1167
1168    bt = elm_button_add(win);
1169    elm_object_text_set(bt, "Up ");
1170    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);
1171    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1172    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1173    elm_box_pack_end(bx2, bt);
1174    evas_object_propagate_events_set(bt, 0);
1175    elm_object_focus_allow_set(bt, 0);
1176    evas_object_show(bt);
1177
1178    bt = elm_button_add(win);
1179    elm_object_text_set(bt, "Dow");
1180    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);
1181    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1182    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1183    elm_box_pack_end(bx2, bt);
1184    evas_object_propagate_events_set(bt, 0);
1185    elm_object_focus_allow_set(bt, 0);
1186    evas_object_show(bt);
1187
1188    bt = elm_button_add(win);
1189    elm_object_text_set(bt, "Beg");
1190    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);
1191    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1192    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1193    elm_box_pack_end(bx2, bt);
1194    evas_object_propagate_events_set(bt, 0);
1195    elm_object_focus_allow_set(bt, 0);
1196    evas_object_show(bt);
1197
1198    bt = elm_button_add(win);
1199    elm_object_text_set(bt, "End");
1200    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en);
1201    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1202    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1203    elm_box_pack_end(bx2, bt);
1204    evas_object_propagate_events_set(bt, 0);
1205    elm_object_focus_allow_set(bt, 0);
1206    evas_object_show(bt);
1207
1208    elm_box_pack_end(bx, bx2);
1209    evas_object_show(bx2);
1210
1211    bx2 = elm_box_add(win);
1212    elm_box_horizontal_set(bx2, EINA_TRUE);
1213    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1214    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1215
1216    bt = elm_button_add(win);
1217    elm_object_text_set(bt, "LBe");
1218    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en);
1219    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1220    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1221    elm_box_pack_end(bx2, bt);
1222    evas_object_propagate_events_set(bt, 0);
1223    elm_object_focus_allow_set(bt, 0);
1224    evas_object_show(bt);
1225
1226    bt = elm_button_add(win);
1227    elm_object_text_set(bt, "LEn");
1228    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);
1229    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1230    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1231    elm_box_pack_end(bx2, bt);
1232    evas_object_propagate_events_set(bt, 0);
1233    elm_object_focus_allow_set(bt, 0);
1234    evas_object_show(bt);
1235
1236    bt = elm_button_add(win);
1237    elm_object_text_set(bt, "SBe");
1238    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);
1239    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1240    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1241    elm_box_pack_end(bx2, bt);
1242    evas_object_propagate_events_set(bt, 0);
1243    elm_object_focus_allow_set(bt, 0);
1244    evas_object_show(bt);
1245
1246    bt = elm_button_add(win);
1247    elm_object_text_set(bt, "SEn");
1248    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);
1249    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1250    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1251    elm_box_pack_end(bx2, bt);
1252    evas_object_propagate_events_set(bt, 0);
1253    elm_object_focus_allow_set(bt, 0);
1254    evas_object_show(bt);
1255
1256    bt = elm_button_add(win);
1257    elm_object_text_set(bt, "Fmt");
1258    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);
1259    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1260    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1261    elm_box_pack_end(bx2, bt);
1262    evas_object_propagate_events_set(bt, 0);
1263    elm_object_focus_allow_set(bt, 0);
1264    evas_object_show(bt);
1265
1266    bt = elm_button_add(win);
1267    elm_object_text_set(bt, "VFm");
1268    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);
1269    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1270    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1271    elm_box_pack_end(bx2, bt);
1272    evas_object_propagate_events_set(bt, 0);
1273    elm_object_focus_allow_set(bt, 0);
1274    evas_object_show(bt);
1275
1276    elm_box_pack_end(bx, bx2);
1277    evas_object_show(bx2);
1278
1279    bx2 = elm_box_add(win);
1280    elm_box_horizontal_set(bx2, EINA_TRUE);
1281    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1282    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1283
1284    bt = elm_button_add(win);
1285    elm_object_text_set(bt, "Chr");
1286    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);
1287    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1288    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1289    elm_box_pack_end(bx2, bt);
1290    evas_object_propagate_events_set(bt, 0);
1291    elm_object_focus_allow_set(bt, 0);
1292    evas_object_show(bt);
1293
1294    bt = elm_button_add(win);
1295    elm_object_text_set(bt, "Cut");
1296    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);
1297    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1298    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1299    elm_box_pack_end(bx2, bt);
1300    evas_object_propagate_events_set(bt, 0);
1301    elm_object_focus_allow_set(bt, 0);
1302    evas_object_show(bt);
1303
1304    bt = elm_button_add(win);
1305    elm_object_text_set(bt, "Cop");
1306    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);
1307    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1308    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1309    elm_box_pack_end(bx2, bt);
1310    evas_object_propagate_events_set(bt, 0);
1311    elm_object_focus_allow_set(bt, 0);
1312    evas_object_show(bt);
1313
1314    bt = elm_button_add(win);
1315    elm_object_text_set(bt, "Pas");
1316    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);
1317    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1318    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1319    elm_box_pack_end(bx2, bt);
1320    evas_object_propagate_events_set(bt, 0);
1321    elm_object_focus_allow_set(bt, 0);
1322    evas_object_show(bt);
1323
1324    elm_box_pack_end(bx, bx2);
1325    evas_object_show(bx2);
1326
1327    evas_object_resize(win, 320, 480);
1328
1329    elm_object_focus_set(win, EINA_TRUE);
1330    evas_object_show(win);
1331 }
1332
1333 void
1334 test_entry4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1335 {
1336    Evas_Object *win, *ly, *en;
1337    char buf[PATH_MAX];
1338
1339    win = elm_win_util_standard_add("entry4", "Entry 4");
1340    elm_win_autodel_set(win, EINA_TRUE);
1341
1342    ly = elm_layout_add(win);
1343    snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
1344    elm_layout_file_set(ly, buf, "layout");
1345    evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1346    elm_win_resize_object_add(win, ly);
1347    evas_object_show(ly);
1348
1349    en = elm_entry_add(win);
1350    elm_entry_scrollable_set(en, EINA_TRUE);
1351    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
1352    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
1353    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
1354    elm_object_text_set(en, "This is a single line");
1355    elm_entry_single_line_set(en, EINA_TRUE);
1356    elm_object_part_content_set(ly, "element1", en);
1357    evas_object_show(en);
1358
1359    en = elm_entry_add(win);
1360    elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
1361    elm_object_text_set(en,
1362                        "This is an entry widget<br/>"
1363                        "that uses markup<br/>"
1364                        "<b>like this</> and has<br/>"
1365                        "no scroller, so you can<br/>"
1366                        "use it more flexibly.");
1367    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1368    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1369    elm_object_part_content_set(ly, "element2", en);
1370    evas_object_show(en);
1371
1372    en = elm_entry_add(win);
1373    elm_entry_scrollable_set(en, EINA_TRUE);
1374    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1375    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1376    elm_object_text_set(en,
1377                        "This is an entry widget in this window that<br/>"
1378                        "uses markup <b>like this</> for styling and<br/>"
1379                        "formatting <em>like this</>, as well as<br/>"
1380                        "<a href=X><link>links in the text</></a>, so enter text<br/>"
1381                        "in here to edit it. By them way, links are<br/>"
1382                        "called <a href=anc-02>Anchors</a> so you will need<br/>"
1383                        "to refer to them this way. At the end here is a really long "
1384                        "line to test line wrapping to see if it works. But just in "
1385                        "case this line is not long enough I will add more here to "
1386                        "really test it out, as Elementary really needs some "
1387                        "good testing to see if entry widgets work as advertised."
1388                       );
1389    evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);
1390    elm_object_part_content_set(ly, "element3", en);
1391    evas_object_show(en);
1392
1393    evas_object_show(win);
1394 }
1395
1396 void
1397 test_entry5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1398 {
1399    Evas_Object *win, *bx, *bx2, *bt, *en;
1400
1401    win = elm_win_util_standard_add("entry5", "Entry 5");
1402    elm_win_autodel_set(win, EINA_TRUE);
1403
1404    bx = elm_box_add(win);
1405    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1406    elm_win_resize_object_add(win, bx);
1407    evas_object_show(bx);
1408
1409    en = elm_entry_add(win);
1410    elm_entry_scrollable_set(en, EINA_TRUE);
1411    elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
1412    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1413    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1414    elm_object_text_set(en,
1415                        "This is an entry widget in this window that "
1416                        "uses markup like this for styling and "
1417                        "formatting like this, as well as "
1418                        "to refer to them this way. At the end here is a really long "
1419                        "line to test line wrapping to see if it works. But just in "
1420                        "case this line is not long enough I will add more here to "
1421                        "really test it out, as Elementary really needs some "
1422                        "good testing to see if entry widgets work as advertised."
1423                       );
1424    evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);
1425    elm_box_pack_end(bx, en);
1426    evas_object_show(en);
1427
1428    bx2 = elm_box_add(win);
1429    elm_box_horizontal_set(bx2, EINA_TRUE);
1430    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1431    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1432
1433    bt = elm_button_add(win);
1434    elm_object_text_set(bt, "Clr");
1435    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);
1436    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1437    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1438    elm_box_pack_end(bx2, bt);
1439    evas_object_propagate_events_set(bt, 0);
1440    elm_object_focus_allow_set(bt, 0);
1441    evas_object_show(bt);
1442
1443    bt = elm_button_add(win);
1444    elm_object_text_set(bt, "Pri");
1445    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);
1446    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1447    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1448    elm_box_pack_end(bx2, bt);
1449    evas_object_propagate_events_set(bt, 0);
1450    elm_object_focus_allow_set(bt, 0);
1451    evas_object_show(bt);
1452
1453    bt = elm_button_add(win);
1454    elm_object_text_set(bt, "Sel");
1455    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);
1456    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1457    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1458    elm_box_pack_end(bx2, bt);
1459    evas_object_propagate_events_set(bt, 0);
1460    elm_object_focus_allow_set(bt, 0);
1461    evas_object_show(bt);
1462
1463    bt = elm_button_add(win);
1464    elm_object_text_set(bt, "All");
1465    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);
1466    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1467    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1468    elm_box_pack_end(bx2, bt);
1469    evas_object_propagate_events_set(bt, 0);
1470    elm_object_focus_allow_set(bt, 0);
1471    evas_object_show(bt);
1472
1473    bt = elm_button_add(win);
1474    elm_object_text_set(bt, "Non");
1475    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);
1476    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1477    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1478    elm_box_pack_end(bx2, bt);
1479    evas_object_propagate_events_set(bt, 0);
1480    elm_object_focus_allow_set(bt, 0);
1481    evas_object_show(bt);
1482
1483    bt = elm_button_add(win);
1484    elm_object_text_set(bt, "Ins");
1485    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);
1486    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1487    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1488    elm_box_pack_end(bx2, bt);
1489    evas_object_propagate_events_set(bt, 0);
1490    elm_object_focus_allow_set(bt, 0);
1491    evas_object_show(bt);
1492
1493    elm_box_pack_end(bx, bx2);
1494    evas_object_show(bx2);
1495
1496    bx2 = elm_box_add(win);
1497    elm_box_horizontal_set(bx2, EINA_TRUE);
1498    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1499    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1500
1501    bt = elm_button_add(win);
1502    elm_object_text_set(bt, "Lef");
1503    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);
1504    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1505    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1506    elm_box_pack_end(bx2, bt);
1507    evas_object_propagate_events_set(bt, 0);
1508    elm_object_focus_allow_set(bt, 0);
1509    evas_object_show(bt);
1510
1511    bt = elm_button_add(win);
1512    elm_object_text_set(bt, "Rig");
1513    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);
1514    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1515    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1516    elm_box_pack_end(bx2, bt);
1517    evas_object_propagate_events_set(bt, 0);
1518    elm_object_focus_allow_set(bt, 0);
1519    evas_object_show(bt);
1520
1521    bt = elm_button_add(win);
1522    elm_object_text_set(bt, "Up ");
1523    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);
1524    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1525    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1526    elm_box_pack_end(bx2, bt);
1527    evas_object_propagate_events_set(bt, 0);
1528    elm_object_focus_allow_set(bt, 0);
1529    evas_object_show(bt);
1530
1531    bt = elm_button_add(win);
1532    elm_object_text_set(bt, "Dow");
1533    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);
1534    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1535    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1536    elm_box_pack_end(bx2, bt);
1537    evas_object_propagate_events_set(bt, 0);
1538    elm_object_focus_allow_set(bt, 0);
1539    evas_object_show(bt);
1540
1541    bt = elm_button_add(win);
1542    elm_object_text_set(bt, "Beg");
1543    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);
1544    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1545    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1546    elm_box_pack_end(bx2, bt);
1547    evas_object_propagate_events_set(bt, 0);
1548    elm_object_focus_allow_set(bt, 0);
1549    evas_object_show(bt);
1550
1551    bt = elm_button_add(win);
1552    elm_object_text_set(bt, "End");
1553    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en);
1554    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1555    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1556    elm_box_pack_end(bx2, bt);
1557    evas_object_propagate_events_set(bt, 0);
1558    elm_object_focus_allow_set(bt, 0);
1559    evas_object_show(bt);
1560
1561    elm_box_pack_end(bx, bx2);
1562    evas_object_show(bx2);
1563
1564    bx2 = elm_box_add(win);
1565    elm_box_horizontal_set(bx2, EINA_TRUE);
1566    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1567    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1568
1569    bt = elm_button_add(win);
1570    elm_object_text_set(bt, "LBe");
1571    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en);
1572    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1573    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1574    elm_box_pack_end(bx2, bt);
1575    evas_object_propagate_events_set(bt, 0);
1576    elm_object_focus_allow_set(bt, 0);
1577    evas_object_show(bt);
1578
1579    bt = elm_button_add(win);
1580    elm_object_text_set(bt, "LEn");
1581    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);
1582    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1583    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1584    elm_box_pack_end(bx2, bt);
1585    evas_object_propagate_events_set(bt, 0);
1586    elm_object_focus_allow_set(bt, 0);
1587    evas_object_show(bt);
1588
1589    bt = elm_button_add(win);
1590    elm_object_text_set(bt, "SBe");
1591    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);
1592    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1593    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1594    elm_box_pack_end(bx2, bt);
1595    evas_object_propagate_events_set(bt, 0);
1596    elm_object_focus_allow_set(bt, 0);
1597    evas_object_show(bt);
1598
1599    bt = elm_button_add(win);
1600    elm_object_text_set(bt, "SEn");
1601    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);
1602    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1603    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1604    elm_box_pack_end(bx2, bt);
1605    evas_object_propagate_events_set(bt, 0);
1606    elm_object_focus_allow_set(bt, 0);
1607    evas_object_show(bt);
1608
1609    bt = elm_button_add(win);
1610    elm_object_text_set(bt, "Fmt");
1611    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);
1612    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1613    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1614    elm_box_pack_end(bx2, bt);
1615    evas_object_propagate_events_set(bt, 0);
1616    elm_object_focus_allow_set(bt, 0);
1617    evas_object_show(bt);
1618
1619    bt = elm_button_add(win);
1620    elm_object_text_set(bt, "VFm");
1621    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);
1622    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1623    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1624    elm_box_pack_end(bx2, bt);
1625    evas_object_propagate_events_set(bt, 0);
1626    elm_object_focus_allow_set(bt, 0);
1627    evas_object_show(bt);
1628
1629    elm_box_pack_end(bx, bx2);
1630    evas_object_show(bx2);
1631
1632    bx2 = elm_box_add(win);
1633    elm_box_horizontal_set(bx2, EINA_TRUE);
1634    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1635    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1636
1637    bt = elm_button_add(win);
1638    elm_object_text_set(bt, "Chr");
1639    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);
1640    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1641    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1642    elm_box_pack_end(bx2, bt);
1643    evas_object_propagate_events_set(bt, 0);
1644    elm_object_focus_allow_set(bt, 0);
1645    evas_object_show(bt);
1646
1647    bt = elm_button_add(win);
1648    elm_object_text_set(bt, "Cut");
1649    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);
1650    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1651    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1652    elm_box_pack_end(bx2, bt);
1653    evas_object_propagate_events_set(bt, 0);
1654    elm_object_focus_allow_set(bt, 0);
1655    evas_object_show(bt);
1656
1657    bt = elm_button_add(win);
1658    elm_object_text_set(bt, "Cop");
1659    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);
1660    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1661    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1662    elm_box_pack_end(bx2, bt);
1663    evas_object_propagate_events_set(bt, 0);
1664    elm_object_focus_allow_set(bt, 0);
1665    evas_object_show(bt);
1666
1667    bt = elm_button_add(win);
1668    elm_object_text_set(bt, "Pas");
1669    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);
1670    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1671    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1672    elm_box_pack_end(bx2, bt);
1673    evas_object_propagate_events_set(bt, 0);
1674    elm_object_focus_allow_set(bt, 0);
1675    evas_object_show(bt);
1676
1677    elm_box_pack_end(bx, bx2);
1678    evas_object_show(bx2);
1679
1680    evas_object_resize(win, 320, 480);
1681
1682    elm_object_focus_set(win, EINA_TRUE);
1683    evas_object_show(win);
1684 }
1685
1686 void
1687 test_entry6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1688 {
1689    Evas_Object *win, *bx, *en;
1690
1691    win = elm_win_util_standard_add("entry6", "Entry 6");
1692    elm_win_autodel_set(win, EINA_TRUE);
1693
1694    bx = elm_box_add(win);
1695    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1696    elm_win_resize_object_add(win, bx);
1697    evas_object_show(bx);
1698
1699    en = elm_entry_add(win);
1700    elm_entry_scrollable_set(en, EINA_TRUE);
1701    elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
1702    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1703    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1704    elm_object_text_set(en,
1705                        "input_panel_enabled: TRUE.<br>"
1706                        "When this entry gets a focus, virtual keyboard will be shown "
1707                        "in illume environment.");
1708    elm_box_pack_end(bx, en);
1709    evas_object_show(en);
1710
1711    en = elm_entry_add(win);
1712    elm_entry_scrollable_set(en, EINA_TRUE);
1713    elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
1714    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1715    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1716    elm_object_text_set(en,
1717                        "input_panel_enabled: FALSE.<br>"
1718                        "This entry doesn't allow to show virtual keyboard automatically.<br>"
1719                        "it is used in case that wants its own keypad such as calculator.");
1720    elm_entry_input_panel_enabled_set(en, EINA_FALSE);
1721    elm_box_pack_end(bx, en);
1722    evas_object_show(en);
1723
1724    evas_object_resize(win, 320, 300);
1725
1726    elm_object_focus_set(win, EINA_TRUE);
1727    evas_object_show(win);
1728 }
1729
1730 static void
1731 changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1732 {
1733    Evas_Object *en;
1734    en = (Evas_Object*)data;
1735
1736    elm_entry_editable_set(en, elm_check_state_get(obj));
1737 }
1738
1739 static void
1740 en_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1741 {
1742    Evas_Object *sp, *en;
1743    sp = (Evas_Object *)data;
1744    en = (Evas_Object *)obj;
1745    elm_spinner_min_max_set(sp, 0, strlen(elm_object_text_get(en)));
1746 }
1747
1748 static void
1749 sp_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1750 {
1751    Evas_Object *en, *sp;
1752    en = (Evas_Object *)data;
1753    sp = (Evas_Object *)obj;
1754    elm_entry_cursor_pos_set(en, elm_spinner_value_get(sp));
1755    elm_object_focus_set(en, EINA_TRUE);
1756 }
1757
1758 static void
1759 add_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1760 {
1761    Evas_Object *en;
1762    en = (Evas_Object *)data;
1763
1764    elm_entry_context_menu_item_add(en, "item", NULL, ELM_ICON_NONE, NULL, NULL);
1765 }
1766
1767 static void
1768 clear_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1769 {
1770    Evas_Object *en;
1771    en = (Evas_Object *)data;
1772
1773    elm_entry_context_menu_clear(en);
1774 }
1775
1776 static Evas_Object *
1777 item_provider(void *images __UNUSED__, Evas_Object *en, const char *item)
1778 {
1779    Evas_Object *o = NULL;;
1780    char buf[1024];
1781
1782    if (!strcmp(item, "itemprovider"))
1783      {
1784         snprintf(buf, sizeof(buf), "%s/images/icon_00.png",
1785                  elm_app_data_dir_get());
1786         o = evas_object_image_filled_add(evas_object_evas_get(en));
1787         evas_object_image_file_set(o, buf, NULL);
1788      }
1789
1790    return o;
1791 }
1792
1793 static Evas_Object *
1794 prepend_item_provider(void *images __UNUSED__, Evas_Object *en, const char *item)
1795 {
1796    Evas_Object *o = NULL;;
1797    char buf[1024];
1798
1799    if (!strcmp(item, "itemprovider"))
1800      {
1801         snprintf(buf, sizeof(buf), "%s/images/icon_10.png",
1802                  elm_app_data_dir_get());
1803         o = evas_object_image_filled_add(evas_object_evas_get(en));
1804         evas_object_image_file_set(o, buf, NULL);
1805      }
1806
1807    return o;
1808 }
1809
1810 static void
1811 prepend_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1812 {
1813    Evas_Object *en;
1814    en = (Evas_Object *)data;
1815
1816    elm_entry_item_provider_prepend(en, prepend_item_provider, NULL);
1817    elm_object_text_set(en,
1818                        "Item Provider"
1819                        "<item size=50x50 vsize=full href=itemprovider></item>"
1820                       );
1821 }
1822
1823 static void
1824 remove_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1825 {
1826    Evas_Object *en;
1827    en = (Evas_Object *)data;
1828
1829    elm_entry_item_provider_remove(en, item_provider, NULL);
1830    elm_entry_item_provider_remove(en, prepend_item_provider, NULL);
1831    elm_object_text_set(en,
1832                        "Item Provider"
1833                        "<item size=50x50 vsize=full href=itemprovider></item>"
1834                       );
1835 }
1836
1837 static void
1838 enable_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1839 {
1840    Evas_Object *en;
1841    en = (Evas_Object*)data;
1842
1843    elm_entry_context_menu_disabled_set(en, elm_check_state_get(obj));
1844 }
1845
1846 void
1847 test_entry7(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1848 {
1849    Evas_Object *win, *gd, *bg, *en, *tg, *lb, *sp;
1850    Evas_Object *bt, *en2;
1851
1852    win = elm_win_util_standard_add("entry7", "Entry 7");
1853    elm_win_autodel_set(win, EINA_TRUE);
1854
1855    gd = elm_grid_add(win);
1856    elm_grid_size_set(gd, 100, 100);
1857    evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1858    elm_win_resize_object_add(win, gd);
1859    evas_object_show(gd);
1860
1861    /* upper entry group */
1862    bg = elm_bg_add(win);
1863    elm_bg_color_set(bg, 255, 0, 0);
1864    elm_grid_pack(gd, bg, 10, 10, 60, 30);
1865    evas_object_show(bg);
1866
1867    en = elm_entry_add(win);
1868    elm_entry_scrollable_set(en, EINA_TRUE);
1869    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1870    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1871    elm_object_text_set(en, "Editable, Cursor Positioin");
1872    evas_object_show(en);
1873    elm_grid_pack(gd, en, 10, 10, 60, 30);
1874
1875    tg = elm_check_add(win);
1876    evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1877    evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL);
1878    elm_object_text_set(tg, "Editable");
1879    elm_check_state_set(tg, EINA_TRUE);
1880    evas_object_smart_callback_add(tg, "changed", changed_cb, en);
1881    elm_grid_pack(gd, tg, 70, 10, 22, 10);
1882    evas_object_show(tg);
1883
1884    lb = elm_label_add(win);
1885    elm_object_text_set(lb, "Cursor position:");
1886    evas_object_size_hint_weight_set(lb, 0.0, 0.0);
1887    evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
1888    elm_grid_pack(gd, lb, 70, 25, 25, 5);
1889    evas_object_show(lb);
1890
1891    sp = elm_spinner_add(win);
1892    elm_spinner_label_format_set(sp, "%1.0f");
1893    elm_spinner_step_set(sp, 1);
1894    elm_spinner_wrap_set(sp, ELM_WRAP_CHAR);
1895    elm_spinner_min_max_set(sp, 0, strlen(elm_object_text_get(en)));
1896    evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, EVAS_HINT_FILL);
1897    evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1898    elm_grid_pack(gd, sp, 70, 30, 25, 10);
1899    evas_object_smart_callback_add(en, "changed", en_changed_cb, sp);
1900    evas_object_smart_callback_add(sp, "delay,changed", sp_changed_cb, en);
1901    evas_object_show(sp);
1902
1903    /* bottom entry group */
1904    bg = elm_bg_add(win);
1905    elm_bg_color_set(bg, 0, 255, 0);
1906    elm_grid_pack(gd, bg, 10, 50, 45, 30);
1907    evas_object_show(bg);
1908
1909    en2 = elm_entry_add(win);
1910    elm_entry_scrollable_set(en2, EINA_TRUE);
1911    evas_object_size_hint_weight_set(en2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1912    evas_object_size_hint_align_set(en2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1913    elm_object_text_set(en2,
1914                        "Item Provider"
1915                        "<item size=50x50 vsize=full href=itemprovider></item>"
1916                       );
1917    elm_entry_item_provider_append(en2, item_provider, NULL);
1918    elm_entry_context_menu_disabled_set(en, EINA_TRUE);
1919    elm_grid_pack(gd, en2, 10, 50, 45, 30);
1920    evas_object_show(en2);
1921
1922    tg = elm_check_add(win);
1923    evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1924    evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL);
1925    elm_object_text_set(tg, "Disable Context Menu");
1926    elm_check_state_set(tg, EINA_TRUE);
1927    evas_object_smart_callback_add(tg, "changed", enable_changed_cb, en2);
1928    elm_grid_pack(gd, tg, 55, 50, 40, 10);
1929    evas_object_show(tg);
1930
1931    bt = elm_button_add(win);
1932    elm_object_text_set(bt, "Add Context Menu");
1933    elm_grid_pack(gd, bt, 55, 60, 40, 10);
1934    evas_object_smart_callback_add(bt, "clicked", add_bt_clicked, en2);
1935    evas_object_show(bt);
1936
1937    bt = elm_button_add(win);
1938    elm_object_text_set(bt, "Clear Context Menu");
1939    elm_grid_pack(gd, bt, 55, 70, 40, 10);
1940    evas_object_smart_callback_add(bt, "clicked", clear_bt_clicked, en2);
1941    evas_object_show(bt);
1942
1943    bt = elm_button_add(win);
1944    elm_object_text_set(bt, "Prepend Item Provider");
1945    elm_grid_pack(gd, bt, 10, 80, 45, 10);
1946    evas_object_smart_callback_add(bt, "clicked", prepend_bt_clicked, en2);
1947    evas_object_show(bt);
1948
1949    bt = elm_button_add(win);
1950    elm_object_text_set(bt, "Remove Item Provider");
1951    elm_grid_pack(gd, bt, 55, 80, 40, 10);
1952    evas_object_smart_callback_add(bt, "clicked", remove_bt_clicked, en2);
1953    evas_object_show(bt);
1954
1955    evas_object_resize(win, 320, 320);
1956    evas_object_show(win);
1957 }
1958
1959 static void
1960 filter_prepend_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1961 {
1962    Evas_Object *en, *en2;
1963    static Elm_Entry_Filter_Accept_Set digits_filter_data;
1964
1965    en = (Evas_Object *)data;
1966    en2 = evas_object_data_get(en, "filter-entry");
1967    digits_filter_data.accepted = elm_object_text_get(en2);
1968    digits_filter_data.rejected = NULL;
1969
1970    elm_entry_markup_filter_append(en, elm_entry_filter_accept_set,
1971                                   &digits_filter_data);
1972    elm_object_text_set(en, "Markup Filter Prepend Test:");
1973 }
1974
1975 static void
1976 filter_remove_bt_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1977 {
1978    Evas_Object *en;
1979    en = (Evas_Object *)data;
1980
1981    elm_entry_markup_filter_remove(en, elm_entry_filter_accept_set, NULL);
1982    elm_object_text_set(en, "Markup Filter Prepend Test:");
1983 }
1984
1985 static void
1986 icon_visible_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1987 {
1988    Evas_Object *en;
1989    en = (Evas_Object*)data;
1990
1991    elm_entry_icon_visible_set(en, elm_check_state_get(obj));
1992 }
1993
1994 static void
1995 end_visible_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
1996 {
1997    Evas_Object *en;
1998    en = (Evas_Object*)data;
1999
2000    elm_entry_end_visible_set(en, elm_check_state_get(obj));
2001 }
2002
2003 static void
2004 horizontal_bounce_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
2005 {
2006    Evas_Object *en;
2007    Eina_Bool vb;
2008    Eina_Bool bounce = elm_check_state_get(obj);
2009    en = (Evas_Object*)data;
2010
2011    elm_scroller_bounce_get(en, NULL, &vb);
2012    elm_scroller_bounce_set(en, bounce, bounce);
2013 }
2014
2015 static void
2016 vertical_bounce_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
2017 {
2018    Evas_Object *en;
2019    Eina_Bool hb;
2020    Eina_Bool bounce = elm_check_state_get(obj);
2021    en = (Evas_Object*)data;
2022
2023    elm_scroller_bounce_get(en, &hb, NULL);
2024    elm_scroller_bounce_set(en, hb, bounce);
2025 }
2026
2027 void
2028 test_entry8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2029 {
2030    Evas_Object *win, *gd, *rect, *en, *lb;
2031    Evas_Object *bt, *en2;
2032    Evas_Object *ch, *en3;
2033    Evas_Object *en4;
2034    static Elm_Entry_Filter_Limit_Size limit_filter_data;
2035
2036    win = elm_win_util_standard_add("entry8", "Entry 8");
2037    elm_win_autodel_set(win, EINA_TRUE);
2038
2039    gd = elm_grid_add(win);
2040    elm_grid_size_set(gd, 100, 100);
2041    elm_win_resize_object_add(win, gd);
2042    evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2043    evas_object_show(gd);
2044
2045    rect = evas_object_rectangle_add(evas_object_evas_get(win));
2046    elm_grid_pack(gd, rect, 5, 5, 90, 10);
2047    evas_object_color_set(rect, 125, 125, 255, 255);
2048    evas_object_show(rect);
2049
2050    en = elm_entry_add(win);
2051    elm_entry_scrollable_set(en, EINA_TRUE);
2052    elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
2053    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2054    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
2055    elm_object_text_set(en, "Markup Filter Prepend Test");
2056    elm_grid_pack(gd, en, 5, 5, 90, 10);
2057    evas_object_show(en);
2058
2059    lb = elm_label_add(win);
2060    elm_object_text_set(lb, "Markup Filter (20 Characters):");
2061    evas_object_size_hint_weight_set(lb, 0.0, 0.0);
2062    evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
2063    elm_grid_pack(gd, lb, 5, 15, 50, 10);
2064    evas_object_show(lb);
2065
2066    rect = evas_object_rectangle_add(evas_object_evas_get(win));
2067    elm_grid_pack(gd, rect, 55, 15, 40, 10);
2068    evas_object_color_set(rect, 0, 125, 255, 255);
2069    evas_object_show(rect);
2070
2071    en2 = elm_entry_add(win);
2072    elm_entry_scrollable_set(en2, EINA_TRUE);
2073    elm_scroller_policy_set(en2, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
2074    evas_object_size_hint_weight_set(en2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2075    evas_object_size_hint_align_set(en2, EVAS_HINT_FILL, EVAS_HINT_FILL);
2076    limit_filter_data.max_char_count = 20;
2077    limit_filter_data.max_byte_count = 0;
2078    elm_entry_markup_filter_append(en2, elm_entry_filter_limit_size, &limit_filter_data);
2079    evas_object_data_set(en, "filter-entry", en2);
2080    evas_object_show(en2);
2081    elm_grid_pack(gd, en2, 55, 15, 40, 10);
2082
2083    bt = elm_button_add(win);
2084    elm_object_text_set(bt, "Markup Filter Prepend");
2085    elm_grid_pack(gd, bt, 5, 25, 45, 10);
2086    evas_object_smart_callback_add(bt, "clicked", filter_prepend_bt_clicked, en);
2087    evas_object_show(bt);
2088
2089    bt = elm_button_add(win);
2090    elm_object_text_set(bt, "Markup Filter Remove");
2091    elm_grid_pack(gd, bt, 50, 25, 45, 10);
2092    evas_object_smart_callback_add(bt, "clicked", filter_remove_bt_clicked, en);
2093    evas_object_show(bt);
2094
2095    en3 = elm_entry_add(win);
2096    elm_entry_scrollable_set(en3, EINA_TRUE);
2097    elm_scroller_policy_set(en3, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
2098    elm_entry_single_line_set(en3, EINA_TRUE);
2099    evas_object_size_hint_weight_set(en3, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2100    evas_object_size_hint_align_set(en3, EVAS_HINT_FILL, EVAS_HINT_FILL);
2101    evas_object_show(en3);
2102    elm_grid_pack(gd, en3, 5, 35, 90, 20);
2103
2104    bt = elm_icon_add(win);
2105    elm_icon_standard_set(bt, "home");
2106    evas_object_size_hint_min_set(bt, 48, 48);
2107    evas_object_color_set(bt, 128, 0, 0, 128);
2108    evas_object_show(bt);
2109    elm_object_part_content_set(en3, "icon", bt);
2110
2111    bt = elm_icon_add(win);
2112    elm_icon_standard_set(bt, "delete");
2113    evas_object_color_set(bt, 128, 0, 0, 128);
2114    evas_object_size_hint_min_set(bt, 48, 48);
2115    evas_object_show(bt);
2116    elm_object_part_content_set(en3, "end", bt);
2117
2118    ch = elm_check_add(win);
2119    evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2120    evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);
2121    elm_object_text_set(ch, "Icon Visible");
2122    elm_check_state_set(ch, EINA_TRUE);
2123    evas_object_smart_callback_add(ch, "changed", icon_visible_changed_cb, en3);
2124    elm_grid_pack(gd, ch, 5, 55, 30, 10);
2125    evas_object_show(ch);
2126
2127    ch = elm_check_add(win);
2128    evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2129    evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);
2130    elm_object_text_set(ch, "End Visible");
2131    elm_check_state_set(ch, EINA_TRUE);
2132    evas_object_smart_callback_add(ch, "changed", end_visible_changed_cb, en3);
2133    elm_grid_pack(gd, ch, 70, 55, 25, 10);
2134    evas_object_show(ch);
2135
2136    rect = evas_object_rectangle_add(evas_object_evas_get(win));
2137    elm_grid_pack(gd, rect, 5, 65, 90, 20);
2138    evas_object_color_set(rect, 255, 125, 125, 255);
2139    evas_object_show(rect);
2140
2141    en4 = elm_entry_add(win);
2142    elm_object_part_text_set(en4, "guide", "Type in here");
2143    elm_entry_scrollable_set(en4, EINA_TRUE);
2144    elm_scroller_bounce_set(en4, EINA_TRUE, EINA_TRUE);
2145    elm_entry_autocapital_type_set(en4, EINA_TRUE);
2146    evas_object_size_hint_weight_set(en4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2147    evas_object_size_hint_align_set(en4, EVAS_HINT_FILL, EVAS_HINT_FILL);
2148    elm_grid_pack(gd, en4, 5, 65, 90, 20);
2149    evas_object_show(en4);
2150
2151    ch = elm_check_add(win);
2152    evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2153    evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);
2154    elm_object_text_set(ch, "Horizontal Bounce Set");
2155    elm_check_state_set(ch, EINA_TRUE);
2156    evas_object_smart_callback_add(ch, "changed", horizontal_bounce_changed_cb, en4);
2157    elm_grid_pack(gd, ch, 5, 85, 45, 10);
2158    evas_object_show(ch);
2159
2160    ch = elm_check_add(win);
2161    evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2162    evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);
2163    elm_object_text_set(ch, "Vertical Bounce Set");
2164    elm_check_state_set(ch, EINA_TRUE);
2165    evas_object_smart_callback_add(ch, "changed", vertical_bounce_changed_cb, en4);
2166    elm_grid_pack(gd, ch, 50, 85, 45, 10);
2167    evas_object_show(ch);
2168
2169    evas_object_resize(win, 320, 320);
2170    evas_object_show(win);
2171 }
2172
2173 static void
2174 _scrolled_entry_clear(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2175 {
2176    Evas_Object *en = data;
2177    elm_object_text_set(en, "");
2178 }
2179
2180 static void
2181 _scrolled_entry_save(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2182 {
2183    Evas_Object *en = data;
2184    elm_entry_file_save(en);
2185 }
2186
2187 static void
2188 auto_save_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
2189 {
2190    Evas_Object *en;
2191    en = (Evas_Object*)data;
2192
2193    elm_entry_autosave_set(en, elm_check_state_get(obj));
2194 }
2195
2196 void
2197 test_entry_notepad(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
2198 {
2199    Evas_Object *win, *bx, *bx2, *bt, *np, *ch;
2200
2201    win = elm_win_util_standard_add("entry-notepad", "Entry Notepad");
2202    elm_win_autodel_set(win, EINA_TRUE);
2203
2204    bx = elm_box_add(win);
2205    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2206    elm_win_resize_object_add(win, bx);
2207    evas_object_show(bx);
2208
2209    np = elm_entry_add(win);
2210    elm_entry_scrollable_set(np, EINA_TRUE);
2211    elm_entry_file_set(np, "note.txt", ELM_TEXT_FORMAT_PLAIN_UTF8);
2212    evas_object_size_hint_weight_set(np, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2213    evas_object_size_hint_align_set(np, EVAS_HINT_FILL, EVAS_HINT_FILL);
2214    elm_box_pack_end(bx, np);
2215    evas_object_show(np);
2216
2217    bx2 = elm_box_add(win);
2218    elm_box_horizontal_set(bx2, EINA_TRUE);
2219    elm_box_homogeneous_set(bx2, EINA_TRUE);
2220    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
2221    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
2222
2223    bt = elm_button_add(win);
2224    elm_object_text_set(bt, "Clear");
2225    evas_object_smart_callback_add(bt, "clicked", _scrolled_entry_clear, np);
2226    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
2227    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
2228    elm_box_pack_end(bx2, bt);
2229    evas_object_show(bt);
2230
2231    bt = elm_button_add(win);
2232    elm_object_text_set(bt, "Save");
2233    evas_object_smart_callback_add(bt, "clicked", _scrolled_entry_save, np);
2234    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
2235    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
2236    elm_box_pack_end(bx2, bt);
2237    evas_object_show(bt);
2238
2239    ch = elm_check_add(win);
2240    evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2241    evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);
2242    elm_object_text_set(ch, "Auto Save");
2243    elm_check_state_set(ch, EINA_FALSE);
2244    evas_object_smart_callback_add(ch, "changed", auto_save_changed_cb, np);
2245    elm_box_pack_end(bx2, ch);
2246    evas_object_show(ch);
2247
2248    elm_box_pack_end(bx, bx2);
2249    evas_object_show(bx2);
2250
2251    evas_object_resize(win, 320, 300);
2252
2253    elm_object_focus_set(win, EINA_TRUE);
2254    evas_object_show(win);
2255 }
2256 #endif