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