test_entry.c: add test code related to elm_entry_input_panel_enabled_set
[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, 1);
304    elm_object_disabled_set(en, 1);
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, 1);
315    elm_entry_single_line_set(en, 1);
316    elm_object_text_set(en, "Access denied, give up!");
317    elm_object_disabled_set(en, 1);
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, 1);
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, 1);
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, 1);
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, 1);
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_text_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, 1);
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_text_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, 1);
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_text_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, 1);
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_text_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, 1);
424    elm_entry_password_set(en_p, 1);
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, 1);
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, 1);
744    elm_box_pack_end(bx, en);
745    evas_object_show(en);
746    elm_entry_input_panel_enabled_set(en, EINA_FALSE);
747
748    bx2 = elm_box_add(win);
749    elm_box_horizontal_set(bx2, EINA_TRUE);
750    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
751    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
752
753    bt = elm_button_add(win);
754    elm_object_text_set(bt, "Clr");
755    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);
756    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
757    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
758    elm_box_pack_end(bx2, bt);
759    evas_object_propagate_events_set(bt, 0);
760    elm_object_focus_allow_set(bt, 0);
761    evas_object_show(bt);
762
763    bt = elm_button_add(win);
764    elm_object_text_set(bt, "Pri");
765    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);
766    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
767    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
768    elm_box_pack_end(bx2, bt);
769    evas_object_propagate_events_set(bt, 0);
770    elm_object_focus_allow_set(bt, 0);
771    evas_object_show(bt);
772
773    bt = elm_button_add(win);
774    elm_object_text_set(bt, "Sel");
775    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);
776    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
777    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
778    elm_box_pack_end(bx2, bt);
779    evas_object_propagate_events_set(bt, 0);
780    elm_object_focus_allow_set(bt, 0);
781    evas_object_show(bt);
782
783    bt = elm_button_add(win);
784    elm_object_text_set(bt, "All");
785    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);
786    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
787    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
788    elm_box_pack_end(bx2, bt);
789    evas_object_propagate_events_set(bt, 0);
790    elm_object_focus_allow_set(bt, 0);
791    evas_object_show(bt);
792
793    bt = elm_button_add(win);
794    elm_object_text_set(bt, "Non");
795    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);
796    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
797    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
798    elm_box_pack_end(bx2, bt);
799    evas_object_propagate_events_set(bt, 0);
800    elm_object_focus_allow_set(bt, 0);
801    evas_object_show(bt);
802
803    bt = elm_button_add(win);
804    elm_object_text_set(bt, "Ins");
805    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);
806    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
807    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
808    elm_box_pack_end(bx2, bt);
809    evas_object_propagate_events_set(bt, 0);
810    elm_object_focus_allow_set(bt, 0);
811    evas_object_show(bt);
812
813    elm_box_pack_end(bx, bx2);
814    evas_object_show(bx2);
815
816    bx2 = elm_box_add(win);
817    elm_box_horizontal_set(bx2, EINA_TRUE);
818    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
819    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
820
821    bt = elm_button_add(win);
822    elm_object_text_set(bt, "Lef");
823    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);
824    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
825    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
826    elm_box_pack_end(bx2, bt);
827    evas_object_propagate_events_set(bt, 0);
828    elm_object_focus_allow_set(bt, 0);
829    evas_object_show(bt);
830
831    bt = elm_button_add(win);
832    elm_object_text_set(bt, "Rig");
833    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);
834    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
835    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
836    elm_box_pack_end(bx2, bt);
837    evas_object_propagate_events_set(bt, 0);
838    elm_object_focus_allow_set(bt, 0);
839    evas_object_show(bt);
840
841    bt = elm_button_add(win);
842    elm_object_text_set(bt, "Up ");
843    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);
844    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
845    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
846    elm_box_pack_end(bx2, bt);
847    evas_object_propagate_events_set(bt, 0);
848    elm_object_focus_allow_set(bt, 0);
849    evas_object_show(bt);
850
851    bt = elm_button_add(win);
852    elm_object_text_set(bt, "Dow");
853    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);
854    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
855    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
856    elm_box_pack_end(bx2, bt);
857    evas_object_propagate_events_set(bt, 0);
858    elm_object_focus_allow_set(bt, 0);
859    evas_object_show(bt);
860
861    bt = elm_button_add(win);
862    elm_object_text_set(bt, "Beg");
863    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);
864    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
865    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
866    elm_box_pack_end(bx2, bt);
867    evas_object_propagate_events_set(bt, 0);
868    elm_object_focus_allow_set(bt, 0);
869    evas_object_show(bt);
870
871    bt = elm_button_add(win);
872    elm_object_text_set(bt, "End");
873    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en);
874    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
875    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
876    elm_box_pack_end(bx2, bt);
877    evas_object_propagate_events_set(bt, 0);
878    elm_object_focus_allow_set(bt, 0);
879    evas_object_show(bt);
880
881    elm_box_pack_end(bx, bx2);
882    evas_object_show(bx2);
883
884    bx2 = elm_box_add(win);
885    elm_box_horizontal_set(bx2, EINA_TRUE);
886    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
887    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
888
889    bt = elm_button_add(win);
890    elm_object_text_set(bt, "LBe");
891    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en);
892    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
893    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
894    elm_box_pack_end(bx2, bt);
895    evas_object_propagate_events_set(bt, 0);
896    elm_object_focus_allow_set(bt, 0);
897    evas_object_show(bt);
898
899    bt = elm_button_add(win);
900    elm_object_text_set(bt, "LEn");
901    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);
902    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
903    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
904    elm_box_pack_end(bx2, bt);
905    evas_object_propagate_events_set(bt, 0);
906    elm_object_focus_allow_set(bt, 0);
907    evas_object_show(bt);
908
909    bt = elm_button_add(win);
910    elm_object_text_set(bt, "SBe");
911    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);
912    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
913    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
914    elm_box_pack_end(bx2, bt);
915    evas_object_propagate_events_set(bt, 0);
916    elm_object_focus_allow_set(bt, 0);
917    evas_object_show(bt);
918
919    bt = elm_button_add(win);
920    elm_object_text_set(bt, "SEn");
921    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);
922    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
923    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
924    elm_box_pack_end(bx2, bt);
925    evas_object_propagate_events_set(bt, 0);
926    elm_object_focus_allow_set(bt, 0);
927    evas_object_show(bt);
928
929    bt = elm_button_add(win);
930    elm_object_text_set(bt, "Fmt");
931    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);
932    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
933    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
934    elm_box_pack_end(bx2, bt);
935    evas_object_propagate_events_set(bt, 0);
936    elm_object_focus_allow_set(bt, 0);
937    evas_object_show(bt);
938
939    bt = elm_button_add(win);
940    elm_object_text_set(bt, "VFm");
941    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);
942    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
943    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
944    elm_box_pack_end(bx2, bt);
945    evas_object_propagate_events_set(bt, 0);
946    elm_object_focus_allow_set(bt, 0);
947    evas_object_show(bt);
948
949    elm_box_pack_end(bx, bx2);
950    evas_object_show(bx2);
951
952    bx2 = elm_box_add(win);
953    elm_box_horizontal_set(bx2, EINA_TRUE);
954    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
955    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
956
957    bt = elm_button_add(win);
958    elm_object_text_set(bt, "Chr");
959    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);
960    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
961    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
962    elm_box_pack_end(bx2, bt);
963    evas_object_propagate_events_set(bt, 0);
964    elm_object_focus_allow_set(bt, 0);
965    evas_object_show(bt);
966
967    bt = elm_button_add(win);
968    elm_object_text_set(bt, "Cut");
969    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);
970    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
971    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
972    elm_box_pack_end(bx2, bt);
973    evas_object_propagate_events_set(bt, 0);
974    elm_object_focus_allow_set(bt, 0);
975    evas_object_show(bt);
976
977    bt = elm_button_add(win);
978    elm_object_text_set(bt, "Cop");
979    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);
980    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
981    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
982    elm_box_pack_end(bx2, bt);
983    evas_object_propagate_events_set(bt, 0);
984    elm_object_focus_allow_set(bt, 0);
985    evas_object_show(bt);
986
987    bt = elm_button_add(win);
988    elm_object_text_set(bt, "Pas");
989    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);
990    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
991    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
992    elm_box_pack_end(bx2, bt);
993    evas_object_propagate_events_set(bt, 0);
994    elm_object_focus_allow_set(bt, 0);
995    evas_object_show(bt);
996
997    elm_box_pack_end(bx, bx2);
998    evas_object_show(bx2);
999
1000    /* markup scrolled entry */
1001    en = elm_entry_add(win);
1002    elm_entry_scrollable_set(en, EINA_TRUE);
1003    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1004    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1005    elm_object_text_set(en,
1006                                 "This is an entry widget in this window that<br/>"
1007                                 "uses markup <b>like this</> for styling and<br/>"
1008                                 "formatting <em>like this</>, as well as<br/>"
1009                                 "<a href=X><link>links in the text</></a>, so enter text<br/>"
1010                                 "in here to edit it. By them way, links are<br/>"
1011                                 "called <a href=anc-02>Anchors</a> so you will need<br/>"
1012                                 "to refer to them this way. At the end here is a really long "
1013                                 "line to test line wrapping to see if it works. But just in "
1014                                 "case this line is not long enough I will add more here to "
1015                                 "really test it out, as Elementary really needs some "
1016                                 "good testing to see if entry widgets work as advertised."
1017                                 );
1018    evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);
1019    elm_box_pack_end(bx, en);
1020    evas_object_show(en);
1021
1022    bx2 = elm_box_add(win);
1023    elm_box_horizontal_set(bx2, EINA_TRUE);
1024    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1025    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1026
1027    bt = elm_button_add(win);
1028    elm_object_text_set(bt, "Clr");
1029    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);
1030    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1031    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1032    elm_box_pack_end(bx2, bt);
1033    evas_object_propagate_events_set(bt, 0);
1034    elm_object_focus_allow_set(bt, 0);
1035    evas_object_show(bt);
1036
1037    bt = elm_button_add(win);
1038    elm_object_text_set(bt, "Pri");
1039    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);
1040    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1041    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1042    elm_box_pack_end(bx2, bt);
1043    evas_object_propagate_events_set(bt, 0);
1044    elm_object_focus_allow_set(bt, 0);
1045    evas_object_show(bt);
1046
1047    bt = elm_button_add(win);
1048    elm_object_text_set(bt, "Sel");
1049    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);
1050    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1051    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1052    elm_box_pack_end(bx2, bt);
1053    evas_object_propagate_events_set(bt, 0);
1054    elm_object_focus_allow_set(bt, 0);
1055    evas_object_show(bt);
1056
1057    bt = elm_button_add(win);
1058    elm_object_text_set(bt, "All");
1059    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);
1060    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1061    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1062    elm_box_pack_end(bx2, bt);
1063    evas_object_propagate_events_set(bt, 0);
1064    elm_object_focus_allow_set(bt, 0);
1065    evas_object_show(bt);
1066
1067    bt = elm_button_add(win);
1068    elm_object_text_set(bt, "Non");
1069    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);
1070    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1071    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1072    elm_box_pack_end(bx2, bt);
1073    evas_object_propagate_events_set(bt, 0);
1074    elm_object_focus_allow_set(bt, 0);
1075    evas_object_show(bt);
1076
1077    bt = elm_button_add(win);
1078    elm_object_text_set(bt, "Ins");
1079    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);
1080    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1081    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1082    elm_box_pack_end(bx2, bt);
1083    evas_object_propagate_events_set(bt, 0);
1084    elm_object_focus_allow_set(bt, 0);
1085    evas_object_show(bt);
1086
1087    elm_box_pack_end(bx, bx2);
1088    evas_object_show(bx2);
1089
1090    bx2 = elm_box_add(win);
1091    elm_box_horizontal_set(bx2, EINA_TRUE);
1092    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1093    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1094
1095    bt = elm_button_add(win);
1096    elm_object_text_set(bt, "Lef");
1097    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);
1098    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1099    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1100    elm_box_pack_end(bx2, bt);
1101    evas_object_propagate_events_set(bt, 0);
1102    elm_object_focus_allow_set(bt, 0);
1103    evas_object_show(bt);
1104
1105    bt = elm_button_add(win);
1106    elm_object_text_set(bt, "Rig");
1107    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);
1108    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1109    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1110    elm_box_pack_end(bx2, bt);
1111    evas_object_propagate_events_set(bt, 0);
1112    elm_object_focus_allow_set(bt, 0);
1113    evas_object_show(bt);
1114
1115    bt = elm_button_add(win);
1116    elm_object_text_set(bt, "Up ");
1117    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);
1118    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1119    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1120    elm_box_pack_end(bx2, bt);
1121    evas_object_propagate_events_set(bt, 0);
1122    elm_object_focus_allow_set(bt, 0);
1123    evas_object_show(bt);
1124
1125    bt = elm_button_add(win);
1126    elm_object_text_set(bt, "Dow");
1127    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);
1128    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1129    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1130    elm_box_pack_end(bx2, bt);
1131    evas_object_propagate_events_set(bt, 0);
1132    elm_object_focus_allow_set(bt, 0);
1133    evas_object_show(bt);
1134
1135    bt = elm_button_add(win);
1136    elm_object_text_set(bt, "Beg");
1137    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);
1138    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1139    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1140    elm_box_pack_end(bx2, bt);
1141    evas_object_propagate_events_set(bt, 0);
1142    elm_object_focus_allow_set(bt, 0);
1143    evas_object_show(bt);
1144
1145    bt = elm_button_add(win);
1146    elm_object_text_set(bt, "End");
1147    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en);
1148    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1149    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1150    elm_box_pack_end(bx2, bt);
1151    evas_object_propagate_events_set(bt, 0);
1152    elm_object_focus_allow_set(bt, 0);
1153    evas_object_show(bt);
1154
1155    elm_box_pack_end(bx, bx2);
1156    evas_object_show(bx2);
1157
1158    bx2 = elm_box_add(win);
1159    elm_box_horizontal_set(bx2, EINA_TRUE);
1160    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1161    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1162
1163    bt = elm_button_add(win);
1164    elm_object_text_set(bt, "LBe");
1165    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en);
1166    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1167    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1168    elm_box_pack_end(bx2, bt);
1169    evas_object_propagate_events_set(bt, 0);
1170    elm_object_focus_allow_set(bt, 0);
1171    evas_object_show(bt);
1172
1173    bt = elm_button_add(win);
1174    elm_object_text_set(bt, "LEn");
1175    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);
1176    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1177    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1178    elm_box_pack_end(bx2, bt);
1179    evas_object_propagate_events_set(bt, 0);
1180    elm_object_focus_allow_set(bt, 0);
1181    evas_object_show(bt);
1182
1183    bt = elm_button_add(win);
1184    elm_object_text_set(bt, "SBe");
1185    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);
1186    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1187    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1188    elm_box_pack_end(bx2, bt);
1189    evas_object_propagate_events_set(bt, 0);
1190    elm_object_focus_allow_set(bt, 0);
1191    evas_object_show(bt);
1192
1193    bt = elm_button_add(win);
1194    elm_object_text_set(bt, "SEn");
1195    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);
1196    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1197    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1198    elm_box_pack_end(bx2, bt);
1199    evas_object_propagate_events_set(bt, 0);
1200    elm_object_focus_allow_set(bt, 0);
1201    evas_object_show(bt);
1202
1203    bt = elm_button_add(win);
1204    elm_object_text_set(bt, "Fmt");
1205    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);
1206    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1207    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1208    elm_box_pack_end(bx2, bt);
1209    evas_object_propagate_events_set(bt, 0);
1210    elm_object_focus_allow_set(bt, 0);
1211    evas_object_show(bt);
1212
1213    bt = elm_button_add(win);
1214    elm_object_text_set(bt, "VFm");
1215    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);
1216    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1217    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1218    elm_box_pack_end(bx2, bt);
1219    evas_object_propagate_events_set(bt, 0);
1220    elm_object_focus_allow_set(bt, 0);
1221    evas_object_show(bt);
1222
1223    elm_box_pack_end(bx, bx2);
1224    evas_object_show(bx2);
1225
1226    bx2 = elm_box_add(win);
1227    elm_box_horizontal_set(bx2, EINA_TRUE);
1228    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1229    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1230
1231    bt = elm_button_add(win);
1232    elm_object_text_set(bt, "Chr");
1233    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);
1234    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1235    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1236    elm_box_pack_end(bx2, bt);
1237    evas_object_propagate_events_set(bt, 0);
1238    elm_object_focus_allow_set(bt, 0);
1239    evas_object_show(bt);
1240
1241    bt = elm_button_add(win);
1242    elm_object_text_set(bt, "Cut");
1243    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);
1244    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1245    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1246    elm_box_pack_end(bx2, bt);
1247    evas_object_propagate_events_set(bt, 0);
1248    elm_object_focus_allow_set(bt, 0);
1249    evas_object_show(bt);
1250
1251    bt = elm_button_add(win);
1252    elm_object_text_set(bt, "Cop");
1253    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);
1254    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1255    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1256    elm_box_pack_end(bx2, bt);
1257    evas_object_propagate_events_set(bt, 0);
1258    elm_object_focus_allow_set(bt, 0);
1259    evas_object_show(bt);
1260
1261    bt = elm_button_add(win);
1262    elm_object_text_set(bt, "Pas");
1263    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);
1264    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1265    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1266    elm_box_pack_end(bx2, bt);
1267    evas_object_propagate_events_set(bt, 0);
1268    elm_object_focus_allow_set(bt, 0);
1269    evas_object_show(bt);
1270
1271    elm_box_pack_end(bx, bx2);
1272    evas_object_show(bx2);
1273
1274    evas_object_resize(win, 320, 480);
1275
1276    elm_object_focus_set(win, EINA_TRUE);
1277    evas_object_show(win);
1278 }
1279
1280 void
1281 test_entry4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1282 {
1283    Evas_Object *win, *bg, *ly, *en;
1284    char buf[PATH_MAX];
1285
1286    win = elm_win_add(NULL, "entry4", ELM_WIN_BASIC);
1287    elm_win_title_set(win, "Entry 4");
1288    elm_win_autodel_set(win, EINA_TRUE);
1289
1290    bg = elm_bg_add(win);
1291    elm_win_resize_object_add(win, bg);
1292    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1293    evas_object_show(bg);
1294
1295    ly = elm_layout_add(win);
1296    snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
1297    elm_layout_file_set(ly, buf, "layout");
1298    evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1299    elm_win_resize_object_add(win, ly);
1300    evas_object_show(ly);
1301
1302    en = elm_entry_add(win);
1303    elm_entry_scrollable_set(en, EINA_TRUE);
1304    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
1305    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
1306    elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
1307    elm_object_text_set(en, "This is a single line");
1308    elm_entry_single_line_set(en, 1);
1309    elm_object_part_content_set(ly, "element1", en);
1310    evas_object_show(en);
1311
1312    en = elm_entry_add(win);
1313    elm_entry_line_wrap_set(en, ELM_WRAP_NONE);
1314    elm_object_text_set(en,
1315                        "This is an entry widget<br/>"
1316                        "that uses markup<br/>"
1317                        "<b>like this</> and has<br/>"
1318                        "no scroller, so you can<br/>"
1319                        "use it more flexibly.");
1320    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1321    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1322    elm_object_part_content_set(ly, "element2", en);
1323    evas_object_show(en);
1324
1325    en = elm_entry_add(win);
1326    elm_entry_scrollable_set(en, EINA_TRUE);
1327    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1328    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1329    elm_object_text_set(en,
1330                                 "This is an entry widget in this window that<br/>"
1331                                 "uses markup <b>like this</> for styling and<br/>"
1332                                 "formatting <em>like this</>, as well as<br/>"
1333                                 "<a href=X><link>links in the text</></a>, so enter text<br/>"
1334                                 "in here to edit it. By them way, links are<br/>"
1335                                 "called <a href=anc-02>Anchors</a> so you will need<br/>"
1336                                 "to refer to them this way. At the end here is a really long "
1337                                 "line to test line wrapping to see if it works. But just in "
1338                                 "case this line is not long enough I will add more here to "
1339                                 "really test it out, as Elementary really needs some "
1340                                 "good testing to see if entry widgets work as advertised."
1341                                 );
1342    evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);
1343    elm_object_part_content_set(ly, "element3", en);
1344    evas_object_show(en);
1345
1346    evas_object_show(win);
1347 }
1348
1349 void
1350 test_entry5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1351 {
1352    Evas_Object *win, *bg, *bx, *bx2, *bt, *en;
1353
1354    win = elm_win_add(NULL, "entry5", ELM_WIN_BASIC);
1355    elm_win_title_set(win, "Entry 5");
1356    elm_win_autodel_set(win, EINA_TRUE);
1357
1358    bg = elm_bg_add(win);
1359    elm_win_resize_object_add(win, bg);
1360    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1361    evas_object_show(bg);
1362
1363    bx = elm_box_add(win);
1364    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1365    elm_win_resize_object_add(win, bx);
1366    evas_object_show(bx);
1367
1368    en = elm_entry_add(win);
1369    elm_entry_scrollable_set(en, EINA_TRUE);
1370    elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
1371    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1372    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1373    elm_object_text_set(en,
1374                                 "This is an entry widget in this window that "
1375                                 "uses markup like this for styling and "
1376                                 "formatting like this, as well as "
1377                                 "to refer to them this way. At the end here is a really long "
1378                                 "line to test line wrapping to see if it works. But just in "
1379                                 "case this line is not long enough I will add more here to "
1380                                 "really test it out, as Elementary really needs some "
1381                                 "good testing to see if entry widgets work as advertised."
1382                                 );
1383    evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);
1384    elm_box_pack_end(bx, en);
1385    evas_object_show(en);
1386
1387    bx2 = elm_box_add(win);
1388    elm_box_horizontal_set(bx2, EINA_TRUE);
1389    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1390    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1391
1392    bt = elm_button_add(win);
1393    elm_object_text_set(bt, "Clr");
1394    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);
1395    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1396    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1397    elm_box_pack_end(bx2, bt);
1398    evas_object_propagate_events_set(bt, 0);
1399    elm_object_focus_allow_set(bt, 0);
1400    evas_object_show(bt);
1401
1402    bt = elm_button_add(win);
1403    elm_object_text_set(bt, "Pri");
1404    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);
1405    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1406    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1407    elm_box_pack_end(bx2, bt);
1408    evas_object_propagate_events_set(bt, 0);
1409    elm_object_focus_allow_set(bt, 0);
1410    evas_object_show(bt);
1411
1412    bt = elm_button_add(win);
1413    elm_object_text_set(bt, "Sel");
1414    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);
1415    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1416    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1417    elm_box_pack_end(bx2, bt);
1418    evas_object_propagate_events_set(bt, 0);
1419    elm_object_focus_allow_set(bt, 0);
1420    evas_object_show(bt);
1421
1422    bt = elm_button_add(win);
1423    elm_object_text_set(bt, "All");
1424    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);
1425    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1426    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1427    elm_box_pack_end(bx2, bt);
1428    evas_object_propagate_events_set(bt, 0);
1429    elm_object_focus_allow_set(bt, 0);
1430    evas_object_show(bt);
1431
1432    bt = elm_button_add(win);
1433    elm_object_text_set(bt, "Non");
1434    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);
1435    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1436    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1437    elm_box_pack_end(bx2, bt);
1438    evas_object_propagate_events_set(bt, 0);
1439    elm_object_focus_allow_set(bt, 0);
1440    evas_object_show(bt);
1441
1442    bt = elm_button_add(win);
1443    elm_object_text_set(bt, "Ins");
1444    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);
1445    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1446    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1447    elm_box_pack_end(bx2, bt);
1448    evas_object_propagate_events_set(bt, 0);
1449    elm_object_focus_allow_set(bt, 0);
1450    evas_object_show(bt);
1451
1452    elm_box_pack_end(bx, bx2);
1453    evas_object_show(bx2);
1454
1455    bx2 = elm_box_add(win);
1456    elm_box_horizontal_set(bx2, EINA_TRUE);
1457    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1458    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1459
1460    bt = elm_button_add(win);
1461    elm_object_text_set(bt, "Lef");
1462    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);
1463    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1464    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1465    elm_box_pack_end(bx2, bt);
1466    evas_object_propagate_events_set(bt, 0);
1467    elm_object_focus_allow_set(bt, 0);
1468    evas_object_show(bt);
1469
1470    bt = elm_button_add(win);
1471    elm_object_text_set(bt, "Rig");
1472    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);
1473    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1474    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1475    elm_box_pack_end(bx2, bt);
1476    evas_object_propagate_events_set(bt, 0);
1477    elm_object_focus_allow_set(bt, 0);
1478    evas_object_show(bt);
1479
1480    bt = elm_button_add(win);
1481    elm_object_text_set(bt, "Up ");
1482    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);
1483    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1484    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1485    elm_box_pack_end(bx2, bt);
1486    evas_object_propagate_events_set(bt, 0);
1487    elm_object_focus_allow_set(bt, 0);
1488    evas_object_show(bt);
1489
1490    bt = elm_button_add(win);
1491    elm_object_text_set(bt, "Dow");
1492    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);
1493    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1494    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1495    elm_box_pack_end(bx2, bt);
1496    evas_object_propagate_events_set(bt, 0);
1497    elm_object_focus_allow_set(bt, 0);
1498    evas_object_show(bt);
1499
1500    bt = elm_button_add(win);
1501    elm_object_text_set(bt, "Beg");
1502    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);
1503    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1504    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1505    elm_box_pack_end(bx2, bt);
1506    evas_object_propagate_events_set(bt, 0);
1507    elm_object_focus_allow_set(bt, 0);
1508    evas_object_show(bt);
1509
1510    bt = elm_button_add(win);
1511    elm_object_text_set(bt, "End");
1512    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en);
1513    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1514    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1515    elm_box_pack_end(bx2, bt);
1516    evas_object_propagate_events_set(bt, 0);
1517    elm_object_focus_allow_set(bt, 0);
1518    evas_object_show(bt);
1519
1520    elm_box_pack_end(bx, bx2);
1521    evas_object_show(bx2);
1522
1523    bx2 = elm_box_add(win);
1524    elm_box_horizontal_set(bx2, EINA_TRUE);
1525    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1526    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1527
1528    bt = elm_button_add(win);
1529    elm_object_text_set(bt, "LBe");
1530    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en);
1531    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1532    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1533    elm_box_pack_end(bx2, bt);
1534    evas_object_propagate_events_set(bt, 0);
1535    elm_object_focus_allow_set(bt, 0);
1536    evas_object_show(bt);
1537
1538    bt = elm_button_add(win);
1539    elm_object_text_set(bt, "LEn");
1540    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);
1541    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1542    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1543    elm_box_pack_end(bx2, bt);
1544    evas_object_propagate_events_set(bt, 0);
1545    elm_object_focus_allow_set(bt, 0);
1546    evas_object_show(bt);
1547
1548    bt = elm_button_add(win);
1549    elm_object_text_set(bt, "SBe");
1550    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);
1551    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1552    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1553    elm_box_pack_end(bx2, bt);
1554    evas_object_propagate_events_set(bt, 0);
1555    elm_object_focus_allow_set(bt, 0);
1556    evas_object_show(bt);
1557
1558    bt = elm_button_add(win);
1559    elm_object_text_set(bt, "SEn");
1560    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);
1561    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1562    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1563    elm_box_pack_end(bx2, bt);
1564    evas_object_propagate_events_set(bt, 0);
1565    elm_object_focus_allow_set(bt, 0);
1566    evas_object_show(bt);
1567
1568    bt = elm_button_add(win);
1569    elm_object_text_set(bt, "Fmt");
1570    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);
1571    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1572    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1573    elm_box_pack_end(bx2, bt);
1574    evas_object_propagate_events_set(bt, 0);
1575    elm_object_focus_allow_set(bt, 0);
1576    evas_object_show(bt);
1577
1578    bt = elm_button_add(win);
1579    elm_object_text_set(bt, "VFm");
1580    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);
1581    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1582    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1583    elm_box_pack_end(bx2, bt);
1584    evas_object_propagate_events_set(bt, 0);
1585    elm_object_focus_allow_set(bt, 0);
1586    evas_object_show(bt);
1587
1588    elm_box_pack_end(bx, bx2);
1589    evas_object_show(bx2);
1590
1591    bx2 = elm_box_add(win);
1592    elm_box_horizontal_set(bx2, EINA_TRUE);
1593    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1594    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1595
1596    bt = elm_button_add(win);
1597    elm_object_text_set(bt, "Chr");
1598    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);
1599    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1600    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1601    elm_box_pack_end(bx2, bt);
1602    evas_object_propagate_events_set(bt, 0);
1603    elm_object_focus_allow_set(bt, 0);
1604    evas_object_show(bt);
1605
1606    bt = elm_button_add(win);
1607    elm_object_text_set(bt, "Cut");
1608    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);
1609    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1610    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1611    elm_box_pack_end(bx2, bt);
1612    evas_object_propagate_events_set(bt, 0);
1613    elm_object_focus_allow_set(bt, 0);
1614    evas_object_show(bt);
1615
1616    bt = elm_button_add(win);
1617    elm_object_text_set(bt, "Cop");
1618    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);
1619    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1620    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1621    elm_box_pack_end(bx2, bt);
1622    evas_object_propagate_events_set(bt, 0);
1623    elm_object_focus_allow_set(bt, 0);
1624    evas_object_show(bt);
1625
1626    bt = elm_button_add(win);
1627    elm_object_text_set(bt, "Pas");
1628    evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);
1629    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1630    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1631    elm_box_pack_end(bx2, bt);
1632    evas_object_propagate_events_set(bt, 0);
1633    elm_object_focus_allow_set(bt, 0);
1634    evas_object_show(bt);
1635
1636    elm_box_pack_end(bx, bx2);
1637    evas_object_show(bx2);
1638
1639    evas_object_resize(win, 320, 480);
1640
1641    elm_object_focus_set(win, EINA_TRUE);
1642    evas_object_show(win);
1643 }
1644
1645 void
1646 test_entry6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1647 {
1648    Evas_Object *win, *bg, *bx, *en;
1649
1650    win = elm_win_add(NULL, "entry6", ELM_WIN_BASIC);
1651    elm_win_title_set(win, "Entry 6");
1652    elm_win_autodel_set(win, EINA_TRUE);
1653
1654    bg = elm_bg_add(win);
1655    elm_win_resize_object_add(win, bg);
1656    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1657    evas_object_show(bg);
1658
1659    bx = elm_box_add(win);
1660    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1661    elm_win_resize_object_add(win, bx);
1662    evas_object_show(bx);
1663
1664    en = elm_entry_add(win);
1665    elm_entry_scrollable_set(en, EINA_TRUE);
1666    elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
1667    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1668    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1669    elm_object_text_set(en,
1670                                 "input_panel_enabled: TRUE.<br>"
1671                 "When this entry gets a focus, virtual keyboard will be shown "
1672                                 "in illume environment.");
1673    elm_box_pack_end(bx, en);
1674    evas_object_show(en);
1675
1676    en = elm_entry_add(win);
1677    elm_entry_scrollable_set(en, EINA_TRUE);
1678    elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);
1679    evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1680    evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
1681    elm_object_text_set(en,
1682                                 "input_panel_enabled: FALSE.<br>"
1683                 "This entry doesn't allow to show virtual keyboard automatically.<br>"
1684                 "it is used in case that wants its own keypad such as calculator.");
1685    elm_entry_input_panel_enabled_set(en, EINA_FALSE);
1686    elm_box_pack_end(bx, en);
1687    evas_object_show(en);
1688
1689    evas_object_resize(win, 320, 300);
1690
1691    elm_object_focus_set(win, EINA_TRUE);
1692    evas_object_show(win);
1693 }
1694
1695 static void
1696 _scrolled_entry_clear(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1697 {
1698    Evas_Object *en = data;
1699    elm_object_text_set(en, "");
1700 }
1701
1702 void
1703 test_entry_notepad(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
1704 {
1705    Evas_Object *win, *bg, *bx, *bx2, *bt, *np;
1706
1707    win = elm_win_add(NULL, "entry-notepad", ELM_WIN_BASIC);
1708    elm_win_title_set(win, "Entry Notepad");
1709    elm_win_autodel_set(win, EINA_TRUE);
1710
1711    bg = elm_bg_add(win);
1712    elm_win_resize_object_add(win, bg);
1713    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1714    evas_object_show(bg);
1715
1716    bx = elm_box_add(win);
1717    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1718    elm_win_resize_object_add(win, bx);
1719    evas_object_show(bx);
1720
1721    np = elm_entry_add(win);
1722    elm_entry_scrollable_set(np, EINA_TRUE);
1723    elm_entry_file_set(np, "note.txt", ELM_TEXT_FORMAT_PLAIN_UTF8);
1724    evas_object_size_hint_weight_set(np, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1725    evas_object_size_hint_align_set(np, EVAS_HINT_FILL, EVAS_HINT_FILL);
1726    elm_box_pack_end(bx, np);
1727    evas_object_show(np);
1728
1729    bx2 = elm_box_add(win);
1730    elm_box_horizontal_set(bx2, EINA_TRUE);
1731    elm_box_homogeneous_set(bx2, EINA_TRUE);
1732    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
1733    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
1734
1735    bt = elm_button_add(win);
1736    elm_object_text_set(bt, "Clear");
1737    evas_object_smart_callback_add(bt, "clicked", _scrolled_entry_clear, np);
1738    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
1739    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
1740    elm_box_pack_end(bx2, bt);
1741    evas_object_show(bt);
1742
1743    elm_box_pack_end(bx, bx2);
1744    evas_object_show(bx2);
1745
1746    evas_object_resize(win, 320, 300);
1747
1748    elm_object_focus_set(win, EINA_TRUE);
1749    evas_object_show(win);
1750 }
1751 #endif