efl
3022 строки · 110.2 Кб
1#ifdef HAVE_CONFIG_H2# include "elementary_config.h"3#endif4
5#include <Elementary.h>6
7// FIXME: elm_entry is not part of EO API, the below test cases may be useless
8#include "elm_entry_eo.h"9#include "elm_popup_eo.h"10
11static void12my_entry_bt_1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)13{
14Evas_Object *en = data;15elm_object_text_set(en, "");16}
17
18static void19my_entry_bt_2(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)20{
21Evas_Object *en = data;22const char *s = elm_object_text_get(en);23printf("ENTRY:\n");24if (s) printf("%s\n", s);25printf("ENTRY PLAIN UTF8:\n");26if (s)27{28s = elm_entry_markup_to_utf8(s);29if (s)30{31printf("%s\n", s);32free((char *)s);33}34}35}
36
37static void38my_entry_bt_3(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)39{
40Evas_Object *en = data;41const char *s = elm_entry_selection_get(en);42int start = 0, end = 0;43elm_entry_select_region_get(en, &start, &end);44printf("SELECTION REGION: %d - %d\n", start, end);45printf("SELECTION:\n");46if (s) printf("%s\n", s);47printf("SELECTION PLAIN UTF8:\n");48if (s)49{50s = elm_entry_markup_to_utf8(s);51if (s)52{53printf("%s\n", s);54free((char *)s);55}56}57}
58
59static void60my_entry_bt_4(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)61{
62Evas_Object *en = data;63elm_entry_entry_insert(en, "Insert some <b>BOLD</> text");64}
65
66static void67my_entry_bt_5(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)68{
69Evas_Object *en = data;70elm_entry_scrollable_set(en, !elm_entry_scrollable_get(en));71}
72
73static void74my_entry_bt_6(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)75{
76Evas_Object *en = data;77static Elm_Wrap_Type wr = ELM_WRAP_NONE;78
79wr++;80if (wr == ELM_WRAP_LAST) wr = ELM_WRAP_NONE;81printf("wr: %i\n", wr);82elm_entry_line_wrap_set(en, wr);83}
84
85static void86my_entry_bt_7(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)87{
88Evas_Object *en = data;89elm_entry_editable_set(en, !elm_entry_editable_get(en));90}
91
92static void93my_entry_bt_8(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)94{
95Evas_Object *en = data;96elm_object_focus_set(en, EINA_TRUE);97}
98
99static void100my_entry_bt_9(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)101{
102Evas_Object *en = data;103elm_object_focus_set(en, EINA_FALSE);104}
105
106static void107changed_cb1(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)108{
109Evas_Object *ck = data;110printf("ck %p to %i\n", obj, elm_check_state_get(obj));111elm_config_context_menu_disabled_set(elm_check_state_get(obj));112printf("ck2 %p is now %i\n", ck, elm_check_state_get(ck));113}
114
115static void116select_allow_check_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)117{
118Evas_Object *en = data;119elm_entry_select_allow_set(en, elm_check_state_get(obj));120
121if (elm_check_state_get(obj))122printf("Entry %p is now selectable.\n", en);123else124printf("Entry %p is now unselectable.\n", en);125}
126
127static void128entry_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)129{
130const char *event = data;131printf("Entry '%s' callback called\n", event);132
133}
134
135static void136entry_focused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)137{
138printf("Entry 'focused' callback called\n");139}
140
141static void142entry_unfocused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)143{
144printf("Entry 'unfocused' callback called\n");145}
146
147void
148test_entry(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)149{
150Evas_Object *win, *bx, *bx2, *bx3, *bt, *en, *ck;151char buf[4096];152
153win = elm_win_util_standard_add("entry", "Entry");154elm_win_autodel_set(win, EINA_TRUE);155
156bx = elm_box_add(win);157evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);158elm_win_resize_object_add(win, bx);159evas_object_show(bx);160
161en = elm_entry_add(win);162elm_entry_line_wrap_set(en, ELM_WRAP_NONE);163snprintf(buf, sizeof(buf),164"This is an entry widget in this window that<br/>"165"uses markup <b>like this</> for styling and<br/>"166"formatting <em>like this</>, as well as<br/>"167"<a href=X><link>links in the text</></a>, so enter text<br/>"168"in here to edit it. By the way, links are<br/>"169"called <a href=anc-02>Anchors</a> so you will need<br/>"170"to refer to them this way.<br/>"171"<br/>"172
173"Also you can stick in items with (relsize + ascent): "174"<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>"175" (full) "176"<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>"177" (to the left)<br/>"178
179"Also (size + ascent): "180"<item size=16x16 vsize=ascent href=emoticon/haha></item>"181" (full) "182"<item size=16x16 vsize=full href=emoticon/happy-panting></item>"183" (before this)<br/>"184
185"And as well (absize + ascent): "186"<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>"187" (full) "188"<item absize=64x64 vsize=full href=emoticon/not-impressed></item>"189" or even paths to image files on disk too like: "190"<item absize=96x128 vsize=full href=file://%s/images/sky_01.jpg></item>"191" ... end."192, elm_app_data_dir_get()193);194elm_object_text_set(en, buf);195evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);196evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);197evas_object_smart_callback_add(en, "changed", entry_changed_cb, "changed");198evas_object_smart_callback_add(en, "changed,user", entry_changed_cb, "changed,user");199evas_object_smart_callback_add(en, "focused", entry_focused_cb, NULL);200evas_object_smart_callback_add(en, "unfocused", entry_unfocused_cb, NULL);201elm_box_pack_end(bx, en);202evas_object_show(en);203elm_object_focus_set(en, EINA_TRUE);204
205bx2 = elm_box_add(win);206elm_box_horizontal_set(bx2, EINA_TRUE);207evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);208evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);209
210bt = elm_button_add(win);211elm_object_text_set(bt, "Clr");212evas_object_smart_callback_add(bt, "clicked", my_entry_bt_1, en);213evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);214evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);215elm_box_pack_end(bx2, bt);216elm_object_focus_allow_set(bt, EINA_FALSE);217evas_object_show(bt);218
219bt = elm_button_add(win);220elm_object_text_set(bt, "Prnt");221evas_object_smart_callback_add(bt, "clicked", my_entry_bt_2, en);222evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);223evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);224elm_box_pack_end(bx2, bt);225elm_object_focus_allow_set(bt, EINA_FALSE);226evas_object_show(bt);227
228bt = elm_button_add(win);229elm_object_text_set(bt, "Sel");230evas_object_smart_callback_add(bt, "clicked", my_entry_bt_3, en);231evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);232evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);233elm_box_pack_end(bx2, bt);234elm_object_focus_allow_set(bt, EINA_FALSE);235evas_object_show(bt);236
237bt = elm_button_add(win);238elm_object_text_set(bt, "Ins");239evas_object_smart_callback_add(bt, "clicked", my_entry_bt_4, en);240evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);241evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);242elm_box_pack_end(bx2, bt);243elm_object_focus_allow_set(bt, EINA_FALSE);244evas_object_show(bt);245
246bt = elm_button_add(win);247elm_object_text_set(bt, "Scrl");248evas_object_smart_callback_add(bt, "clicked", my_entry_bt_5, en);249evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);250evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);251elm_box_pack_end(bx2, bt);252elm_object_focus_allow_set(bt, EINA_FALSE);253evas_object_show(bt);254
255bt = elm_button_add(win);256elm_object_text_set(bt, "Wr");257evas_object_smart_callback_add(bt, "clicked", my_entry_bt_6, en);258evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);259evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);260elm_box_pack_end(bx2, bt);261elm_object_focus_allow_set(bt, EINA_FALSE);262evas_object_show(bt);263
264bt = elm_button_add(win);265elm_object_text_set(bt, "Edit");266evas_object_smart_callback_add(bt, "clicked", my_entry_bt_7, en);267evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);268evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);269elm_box_pack_end(bx2, bt);270elm_object_focus_allow_set(bt, EINA_FALSE);271evas_object_show(bt);272
273bt = elm_button_add(win);274elm_object_text_set(bt, "Focus");275evas_object_smart_callback_add(bt, "clicked", my_entry_bt_8, en);276evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);277evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);278elm_box_pack_end(bx2, bt);279elm_object_focus_allow_set(bt, EINA_FALSE);280evas_object_show(bt);281
282bt = elm_button_add(win);283elm_object_text_set(bt, "Unfocus");284evas_object_smart_callback_add(bt, "clicked", my_entry_bt_9, en);285evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);286evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);287elm_box_pack_end(bx2, bt);288elm_object_focus_allow_set(bt, EINA_FALSE);289evas_object_show(bt);290
291bx3 = elm_box_add(win);292elm_box_horizontal_set(bx3, EINA_TRUE);293evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);294evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);295
296ck = elm_check_add(win);297elm_object_text_set(ck, "Context Menu Disable");298evas_object_smart_callback_add(ck, "changed", changed_cb1, ck);299elm_box_pack_end(bx3, ck);300evas_object_show(ck);301
302ck = elm_check_add(win);303elm_object_text_set(ck, "Select Allow");304elm_check_state_set(ck, elm_entry_select_allow_get(en));305evas_object_smart_callback_add(ck, "changed", select_allow_check_changed_cb, en);306elm_box_pack_end(bx3, ck);307evas_object_show(ck);308
309elm_box_pack_end(bx, bx3);310elm_box_pack_end(bx, bx2);311evas_object_show(bx3);312evas_object_show(bx2);313
314evas_object_show(win);315}
316
317static void318my_scrolled_entry_bt_1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)319{
320Evas_Object *en = data;321elm_object_text_set(en, "");322}
323
324static void325my_scrolled_entry_bt_2(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)326{
327Evas_Object *en = data;328const char *s = elm_object_text_get(en);329printf("ENTRY:\n");330if (s) printf("%s\n", s);331printf("ENTRY PLAIN UTF8:\n");332if (s)333{334s = elm_entry_markup_to_utf8(s);335if (s)336{337printf("%s\n", s);338free((char *)s);339}340}341}
342
343static void344my_scrolled_entry_bt_3(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)345{
346Evas_Object *en = data;347const char *s = elm_entry_selection_get(en);348int start = 0, end = 0;349elm_entry_select_region_get(en, &start, &end);350printf("SELECTION REGION: %d - %d\n", start, end);351printf("SELECTION:\n");352if (s) printf("%s\n", s);353printf("SELECTION PLAIN UTF8:\n");354if (s)355{356s = elm_entry_markup_to_utf8(s);357if (s)358{359printf("%s\n", s);360free((char *)s);361}362}363}
364
365static void366my_scrolled_entry_bt_4(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)367{
368Evas_Object *en = data;369elm_entry_entry_insert(en, "Insert some <b>BOLD</> text");370}
371
372static void373my_scrolled_entry_bt_5(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)374{
375Evas_Object *en = data;376const char *s = elm_object_text_get(en);377printf("PASSWORD: '%s'\n", s ? s : "");378}
379
380static void381scrolled_anchor_test(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)382{
383Evas_Object *en = data;384elm_entry_entry_insert(en, "ANCHOR CLICKED");385}
386
387static void388_item_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)389{
390Elm_Entry_Context_Menu_Item *item = (Elm_Entry_Context_Menu_Item *)event_info;391printf("\ncurrent selected text = %s\n", elm_entry_context_menu_item_label_get(item));392}
393
394static void395_entry_rejected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)396{
397Elm_Entry_Filter_Accept_Set *accept_set = data;398
399if (!accept_set) return;400
401if (accept_set->accepted)402printf("REJECTED: This entry only accepts the following character set: [%s]\n", accept_set->accepted);403else404printf("REJECTED: This entry rejects the following character set: [%s]\n", accept_set->rejected);405}
406
407static void408_end_show_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)409{
410Evas_Object *en = data;411elm_entry_end_visible_set(en, EINA_TRUE);412}
413
414static void415_end_hide_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)416{
417Evas_Object *en = data;418elm_entry_end_visible_set(en, EINA_FALSE);419}
420
421static void422_context_menu_show_cb(void *data EINA_UNUSED, const Efl_Event *event)423{
424elm_entry_context_menu_clear(event->object);425elm_entry_context_menu_item_add(event->object, "MenuD1", NULL, ELM_ICON_NONE, _item_cb, NULL);426elm_entry_context_menu_item_add(event->object, "MenuD2", NULL, ELM_ICON_NONE, _item_cb, NULL);427}
428
429void
430test_entry_scrolled(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)431{
432Evas_Object *win, *bx, *bx2, *bx3, *bx4, *bt, *en, *en_p, *sp, *entry, *label;433static Elm_Entry_Filter_Accept_Set digits_filter_data, digits_filter_data2;434static Elm_Entry_Filter_Limit_Size limit_filter_data, limit_filter_data2;435
436win = elm_win_util_standard_add("entry-scrolled", "Entry Scrolled");437elm_win_autodel_set(win, EINA_TRUE);438
439bx = elm_box_add(win);440evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);441elm_win_resize_object_add(win, bx);442evas_object_show(bx);443
444/* disabled entry */445en = elm_entry_add(win);446elm_entry_scrollable_set(en, EINA_TRUE);447evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);448evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);449elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);450elm_object_text_set(en, "Disabled entry");451elm_entry_single_line_set(en, EINA_TRUE);452elm_object_disabled_set(en, EINA_TRUE);453evas_object_show(en);454elm_box_pack_end(bx, en);455
456/* entry with guide */457en = elm_entry_add(win);458elm_entry_scrollable_set(en, EINA_TRUE);459evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);460evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);461elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);462elm_object_part_text_set(en, "guide", "This string is guide");463elm_entry_single_line_set(en, EINA_TRUE);464evas_object_show(en);465elm_box_pack_end(bx, en);466
467/* password entry */468en = elm_entry_add(win);469elm_entry_scrollable_set(en, EINA_TRUE);470evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);471evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);472elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);473elm_entry_password_set(en, EINA_TRUE);474elm_entry_single_line_set(en, EINA_TRUE);475elm_object_text_set(en, "Access denied, give up!");476elm_object_disabled_set(en, EINA_TRUE);477evas_object_show(en);478elm_box_pack_end(bx, en);479
480/* multi-line disable entry */481en = elm_entry_add(win);482elm_entry_scrollable_set(en, EINA_TRUE);483evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);484evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);485elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);486elm_object_disabled_set(en, EINA_TRUE);487elm_entry_context_menu_item_add(en, "Hello", NULL, ELM_ICON_NONE, NULL, NULL);488elm_entry_context_menu_item_add(en, "World", NULL, ELM_ICON_NONE, NULL, NULL);489elm_object_text_set(en,490"Multi-line disabled entry widget :)<br/>"491"We can use markup <b>like this</> for styling and<br/>"492"formatting <em>like this</>, as well as<br/>"493"<a href=X><link>links in the text</></a>,"494"but it won't be editable or clickable.");495evas_object_show(en);496elm_box_pack_end(bx, en);497
498sp = elm_separator_add(win);499elm_separator_horizontal_set(sp, EINA_TRUE);500elm_box_pack_end(bx, sp);501evas_object_show(sp);502
503/* Single line selected entry */504en = elm_entry_add(win);505elm_entry_scrollable_set(en, EINA_TRUE);506evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);507evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);508elm_object_text_set(en, "This is a single line");509elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);510elm_entry_single_line_set(en, EINA_TRUE);511elm_entry_select_all(en);512elm_entry_context_menu_item_add(en, "Menu1", NULL, ELM_ICON_NONE, _item_cb, NULL);513elm_entry_context_menu_item_add(en, "Menu2", NULL, ELM_ICON_NONE, _item_cb, NULL);514evas_object_show(en);515elm_box_pack_end(bx, en);516
517/* Only digits entry */518en = elm_entry_add(win);519elm_entry_scrollable_set(en, EINA_TRUE);520evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);521evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);522elm_object_text_set(en, "01234");523elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);524elm_entry_single_line_set(en, EINA_TRUE);525evas_object_show(en);526elm_box_pack_end(bx, en);527
528digits_filter_data.accepted = "0123456789";529digits_filter_data.rejected = NULL;530elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data);531evas_object_smart_callback_add(en, "rejected", _entry_rejected_cb, &digits_filter_data);532
533/* No digits entry */534en = elm_entry_add(win);535elm_entry_scrollable_set(en, EINA_TRUE);536evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);537evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);538elm_object_text_set(en, "No numbers here");539elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);540elm_entry_single_line_set(en, EINA_TRUE);541evas_object_show(en);542elm_box_pack_end(bx, en);543
544digits_filter_data2.accepted = NULL;545digits_filter_data2.rejected = "0123456789";546elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data2);547evas_object_smart_callback_add(en, "rejected", _entry_rejected_cb, &digits_filter_data2);548
549/* Size limited entry */550en = elm_entry_add(win);551elm_entry_scrollable_set(en, EINA_TRUE);552evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);553evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);554elm_object_text_set(en, "Just 20 chars");555elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);556elm_entry_single_line_set(en, EINA_TRUE);557evas_object_show(en);558elm_box_pack_end(bx, en);559
560limit_filter_data.max_char_count = 20;561limit_filter_data.max_byte_count = 0;562elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data);563
564/* Byte size limited entry */565en = elm_entry_add(win);566elm_entry_scrollable_set(en, EINA_TRUE);567evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);568evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);569elm_object_text_set(en, "And now only 30 bytes");570elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);571elm_entry_single_line_set(en, EINA_TRUE);572evas_object_show(en);573elm_box_pack_end(bx, en);574
575limit_filter_data2.max_char_count = 0;576limit_filter_data2.max_byte_count = 30;577elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data2);578
579/* Single line password entry */580en_p = elm_entry_add(win);581elm_entry_scrollable_set(en_p, EINA_TRUE);582evas_object_size_hint_weight_set(en_p, EVAS_HINT_EXPAND, 0.0);583evas_object_size_hint_align_set(en_p, EVAS_HINT_FILL, 0.5);584elm_scroller_policy_set(en_p, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);585elm_object_text_set(en_p, "Password here");586elm_entry_single_line_set(en_p, EINA_TRUE);587elm_entry_password_set(en_p, EINA_TRUE);588evas_object_show(en_p);589elm_box_pack_end(bx, en_p);590
591/* Last password show entry */592bx4 = elm_box_add(win);593evas_object_size_hint_weight_set(bx4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);594evas_object_show(bx4);595
596label = elm_label_add(bx4);597elm_object_text_set(label, "<b>Last password show entry</b>");598evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);599elm_box_pack_end(bx4, label);600evas_object_show(label);601
602en = elm_entry_add(bx4);603elm_entry_scrollable_set(en, EINA_TRUE);604evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);605evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);606elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);607elm_entry_password_set(en, EINA_TRUE);608elm_object_text_set(en, "Last password show");609elm_entry_single_line_set(en, EINA_TRUE);610edje_password_show_last_set(EINA_TRUE);611edje_password_show_last_timeout_set(-1);612evas_object_show(en);613
614elm_box_pack_end(bx4, en);615elm_box_pack_end(bx, bx4);616
617/* entry with icon/end widgets */618entry = elm_entry_add(win);619elm_entry_scrollable_set(entry, EINA_TRUE);620elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);621elm_entry_single_line_set(entry, EINA_TRUE);622evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);623evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);624bt = elm_icon_add(win);625elm_icon_standard_set(bt, "go-home");626evas_object_size_hint_min_set(bt, 48, 48);627evas_object_color_set(bt, 128, 0, 0, 128);628evas_object_show(bt);629elm_object_part_content_set(entry, "icon", bt);630bt = elm_icon_add(win);631elm_icon_standard_set(bt, "delete");632evas_object_color_set(bt, 128, 0, 0, 128);633evas_object_size_hint_min_set(bt, 48, 48);634evas_object_show(bt);635elm_object_part_content_set(entry, "end", bt);636elm_object_text_set(entry, "entry with icon and end objects. For the test of show/hide end, text should be long long...");637evas_object_show(entry);638elm_box_pack_end(bx, entry);639
640/* markup entry */641en = elm_entry_add(win);642elm_entry_scrollable_set(en, EINA_TRUE);643evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);644evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);645elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);646elm_object_text_set(en,647"This is an entry widget in this window that<br/>"648"uses markup <b>like this</> for styling and<br/>"649"formatting <em>like this</>, as well as<br/>"650"<a href=X><link>links in the text</></a>, so enter text<br/>"651"in here to edit it. By them way, links are<br/>"652"called <a href=anc-02>Anchors</a> so you will need<br/>"653"to refer to them this way. At the end here is a really long "654"line to test line wrapping to see if it works. But just in "655"case this line is not long enough I will add more here to "656"really test it out, as Elementary really needs some "657"good testing to see if entry widgets work as advertised.");658evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);659evas_object_show(en);660elm_box_pack_end(bx, en);661efl_event_callback_add(en, ELM_ENTRY_EVENT_CONTEXT_OPEN, _context_menu_show_cb, NULL);662
663bx2 = elm_box_add(win);664elm_box_horizontal_set(bx2, EINA_TRUE);665evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);666evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);667
668bt = elm_button_add(win);669elm_object_text_set(bt, "Clear");670evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_1, en);671evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);672evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);673elm_box_pack_end(bx2, bt);674elm_object_focus_allow_set(bt, EINA_FALSE);675evas_object_show(bt);676
677bt = elm_button_add(win);678elm_object_text_set(bt, "Print");679evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_2, en);680evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);681evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);682elm_box_pack_end(bx2, bt);683elm_object_focus_allow_set(bt, EINA_FALSE);684evas_object_show(bt);685
686bt = elm_button_add(win);687elm_object_text_set(bt, "Print pwd");688evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_5, en_p);689evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);690evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);691elm_box_pack_end(bx2, bt);692elm_object_focus_allow_set(bt, EINA_FALSE);693evas_object_show(bt);694
695bt = elm_button_add(win);696elm_object_text_set(bt, "Selection");697evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_3, en);698evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);699evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);700elm_box_pack_end(bx2, bt);701elm_object_focus_allow_set(bt, EINA_FALSE);702evas_object_show(bt);703
704bt = elm_button_add(win);705elm_object_text_set(bt, "Insert");706evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_4, en);707evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);708evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);709elm_box_pack_end(bx2, bt);710elm_object_focus_allow_set(bt, EINA_FALSE);711evas_object_show(bt);712
713elm_box_pack_end(bx, bx2);714evas_object_show(bx2);715
716bx3 = elm_box_add(win);717elm_box_horizontal_set(bx3, EINA_TRUE);718evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0);719evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL);720
721bt = elm_button_add(win);722elm_object_text_set(bt, "End Show");723evas_object_smart_callback_add(bt, "clicked", _end_show_cb, entry);724evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);725evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);726elm_box_pack_end(bx3, bt);727elm_object_focus_allow_set(bt, 0);728evas_object_show(bt);729
730bt = elm_button_add(win);731elm_object_text_set(bt, "End Hide");732evas_object_smart_callback_add(bt, "clicked", _end_hide_cb, entry);733evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);734evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);735elm_box_pack_end(bx3, bt);736elm_object_focus_allow_set(bt, 0);737evas_object_show(bt);738
739elm_box_pack_end(bx, bx3);740evas_object_show(bx3);741
742elm_object_focus_set(win, EINA_TRUE);743evas_object_resize(win, 320 * elm_config_scale_get(),744500 * elm_config_scale_get());745evas_object_show(win);746}
747
748static void749my_pop_dismissed(void *data EINA_UNUSED, const Efl_Event *ev)750{
751efl_del(ev->object);752}
753
754static void755my_pop_close_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)756{
757Evas_Object *pop, *en;758pop = data;759en = efl_parent_get(pop);760elm_object_text_set(en, "This is very long text,"761" it is longer than width of this page."762" So if scroller is moved to next page,"763" that is bug when you click under button"764" and then click this entry text");765elm_entry_cursor_end_set(en);766
767efl_event_callback_add(pop, ELM_POPUP_EVENT_DISMISSED, my_pop_dismissed, NULL);768elm_popup_dismiss(pop);769}
770
771static void772my_pop_bt_clr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)773{
774Evas_Object *pop, *btn, *en = data;775elm_object_text_set(en, "");776elm_entry_cursor_end_set(en);777
778pop = elm_popup_add(efl_key_data_get(en, "win"));779efl_parent_set(pop, en);780elm_object_text_set(pop, "If you click confirm, "781"set long text to entry "782"and delete popup obj");783
784btn = elm_button_add(pop);785elm_object_text_set(btn, "Confirm");786evas_object_smart_callback_add(btn, "clicked", my_pop_close_cb, pop);787elm_object_part_content_set(pop, "button1", btn);788
789evas_object_show(btn);790evas_object_show(pop);791}
792
793static void794my_en_bt_clr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)795{
796Evas_Object *en = data;797elm_entry_cursor_end_set(en);798}
799
800void
801test_entry_on_page_scroll(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)802{
803Evas_Object *win, *sc, *bx, *ly, *rect, *en, *btn, *lb;804char buf[PATH_MAX];805
806win = elm_win_util_standard_add("entry-on-page-scroll", "Entry on Page Scroll");807elm_win_autodel_set(win, EINA_TRUE);808
809sc = elm_scroller_add(win);810evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);811elm_scroller_page_relative_set(sc, 1.0, 0.0);812elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);813elm_scroller_page_scroll_limit_set(sc, 1, 0);814elm_win_resize_object_add(win, sc);815evas_object_show(sc);816
817bx = elm_box_add(sc);818elm_box_horizontal_set(bx, EINA_TRUE);819elm_object_content_set(sc, bx);820evas_object_show(bx);821
822ly = elm_layout_add(bx);823snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());824elm_layout_file_set(ly, buf, "page_layout");825rect = evas_object_rectangle_add(evas_object_evas_get(ly));826evas_object_color_set(rect, 50, 0, 0, 50);827elm_object_part_content_set(ly, "page", rect);828
829en = elm_entry_add(ly);830elm_object_part_text_set(en, "guide", "Entry area");831elm_object_text_set(en, "This is very long text,"832" it is longer than width of this page."833" So if scroller is moved to next page,"834" that is bug when you click under button"835" and then click this entry text");836elm_object_part_content_set(ly, "element1", en);837elm_entry_scrollable_set(en, EINA_TRUE);838elm_entry_single_line_set(en, EINA_TRUE);839efl_key_data_set(en, "win", win); // no ref840evas_object_show(en);841
842btn = elm_button_add(ly);843elm_object_text_set(btn, "Click this and then click entry");844elm_object_part_content_set(ly, "element2", btn);845evas_object_smart_callback_add(btn, "clicked", my_en_bt_clr, en);846evas_object_show(btn);847elm_object_focus_set(btn, EINA_TRUE);848
849btn = elm_button_add(ly);850elm_object_text_set(btn, "Click this and close popup");851elm_object_part_content_set(ly, "element3", btn);852evas_object_smart_callback_add(btn, "clicked", my_pop_bt_clr, en);853evas_object_show(btn);854elm_object_focus_set(btn, EINA_TRUE);855
856elm_object_part_text_set(ly, "text", "Page1");857elm_box_pack_end(bx, ly);858evas_object_show(ly);859
860ly = elm_layout_add(bx);861snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());862elm_layout_file_set(ly, buf, "page_layout");863rect = evas_object_rectangle_add(evas_object_evas_get(ly));864evas_object_color_set(rect, 0, 50, 0, 50);865elm_object_part_content_set(ly, "page", rect);866elm_object_part_text_set(ly, "text", "Page2");867
868lb = elm_label_add(ly);869elm_object_text_set(lb, "It should be shown by user's scroll");870elm_object_part_content_set(ly, "element2", lb);871evas_object_show(lb);872
873elm_box_pack_end(bx, ly);874evas_object_show(ly);875
876evas_object_resize(win, 400 * elm_config_scale_get(),877550 * elm_config_scale_get());878evas_object_show(win);879
880}
881
882static void883my_ent_bt_clr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)884{
885Evas_Object *en = data;886elm_object_text_set(en, "");887}
888
889static void890my_ent_bt_pri(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)891{
892Evas_Object *en = data;893const char *s = elm_object_text_get(en);894printf("ENTRY:\n");895if (s) printf("%s\n", s);896printf("ENTRY PLAIN UTF8:\n");897if (s)898{899s = elm_entry_markup_to_utf8(s);900if (s)901{902printf("%s\n", s);903free((char *)s);904}905}906}
907
908static void909my_ent_bt_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)910{
911Evas_Object *en = data;912const char *s = elm_entry_selection_get(en);913int start = 0, end = 0;914elm_entry_select_region_get(en, &start, &end);915printf("SELECTION REGION: %d - %d\n", start, end);916printf("SELECTION:\n");917if (s) printf("%s\n", s);918printf("SELECTION PLAIN UTF8:\n");919if (s)920{921s = elm_entry_markup_to_utf8(s);922if (s)923{924printf("%s\n", s);925free((char *)s);926}927}928}
929
930static void931my_ent_bt_all(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)932{
933Evas_Object *en = data;934elm_entry_select_all(en);935}
936
937static void938my_ent_bt_non(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)939{
940Evas_Object *en = data;941elm_entry_select_none(en);942}
943
944static void945my_ent_bt_region(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)946{
947Evas_Object *en = data;948elm_entry_select_region_set(en, 10, 16);949}
950
951static void952my_ent_bt_ins(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)953{
954Evas_Object *en = data;955elm_entry_entry_insert(en, "Insert text");956}
957
958static void959my_ent_bt_lef(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)960{
961Evas_Object *en = data;962elm_entry_cursor_prev(en);963}
964
965static void966my_ent_bt_rig(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)967{
968Evas_Object *en = data;969elm_entry_cursor_next(en);970}
971
972static void973my_ent_bt_up_(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)974{
975Evas_Object *en = data;976elm_entry_cursor_up(en);977}
978
979static void980my_ent_bt_dow(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)981{
982Evas_Object *en = data;983elm_entry_cursor_down(en);984}
985
986static void987my_ent_bt_beg(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)988{
989Evas_Object *en = data;990elm_entry_cursor_begin_set(en);991}
992
993static void994my_ent_bt_end(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)995{
996Evas_Object *en = data;997elm_entry_cursor_end_set(en);998}
999
1000static void1001my_ent_bt_lbe(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1002{
1003Evas_Object *en = data;1004elm_entry_cursor_line_begin_set(en);1005}
1006
1007static void1008my_ent_bt_len(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1009{
1010Evas_Object *en = data;1011elm_entry_cursor_line_end_set(en);1012}
1013
1014static void1015my_ent_bt_sbe(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1016{
1017Evas_Object *en = data;1018elm_entry_cursor_selection_begin(en);1019}
1020
1021static void1022my_ent_bt_sen(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1023{
1024Evas_Object *en = data;1025elm_entry_cursor_selection_end(en);1026}
1027
1028static void1029my_ent_bt_fmt(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1030{
1031Evas_Object *en = data;1032printf("IS FORMAT: %i\n",1033(int)elm_entry_cursor_is_format_get(en));1034}
1035
1036static void1037my_ent_bt_vfm(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1038{
1039Evas_Object *en = data;1040printf("IS VISIBLE FORMAT %i\n",1041(int)elm_entry_cursor_is_visible_format_get(en));1042}
1043
1044static void1045my_ent_bt_chr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1046{
1047Evas_Object *en = data;1048printf("CHAR '%s'\n", elm_entry_cursor_content_get(en));1049}
1050
1051static void1052my_ent_bt_cut(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1053{
1054Evas_Object *en = data;1055elm_entry_selection_cut(en);1056}
1057
1058static void1059my_ent_bt_cop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1060{
1061Evas_Object *en = data;1062elm_entry_selection_copy(en);1063}
1064
1065static void1066my_ent_bt_pas(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1067{
1068Evas_Object *en = data;1069elm_entry_selection_paste(en);1070}
1071
1072static char *user_style =1073"DEFAULT='font_size=16 color=#F00'"1074"em='+ backing=on backing_color=#FFF'"1075"grn='+ color=#0F0'"1076"ul='+ underline=on underline_color=#AAA'";1077
1078static void1079ent_tg_singleline_mode_state_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)1080{
1081Evas_Object *en = data;1082
1083elm_entry_single_line_set(en, elm_check_state_get(obj));1084}
1085
1086static void1087ent_bt_style_user_peek(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1088{
1089Evas_Object *en = data;1090const char* cur_style = elm_entry_text_style_user_peek(en);1091if (cur_style)1092printf("Current style user: %s\n", cur_style);1093else1094printf("Style user stack is empty.\n");1095}
1096
1097static void1098ent_bt_style_user_pop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1099{
1100Evas_Object *en = data;1101elm_entry_text_style_user_pop(en);1102printf("Style user popped\n");1103}
1104
1105static void1106ent_bt_style_user_push(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1107{
1108Evas_Object *en = data;1109elm_entry_text_style_user_push(en, user_style);1110printf("Style user pushed\n");1111}
1112
1113void
1114test_entry_style_user(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1115{
1116Evas_Object *win, *bx, *hbx, *en, *bt, *bt2, *tg;1117
1118win = elm_win_util_standard_add("entry-user-style", "Entry User Style");1119elm_win_autodel_set(win, EINA_TRUE);1120
1121bx = elm_box_add(win);1122evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1123elm_win_resize_object_add(win, bx);1124evas_object_show(bx);1125
1126en = elm_entry_add(bx);1127elm_entry_line_wrap_set(en, ELM_WRAP_MIXED);1128elm_entry_text_style_user_push(en, user_style);1129elm_object_text_set(en,1130"Default style<br>"1131"<em>Change a standard tag (backing)</em><br>"1132"<grn>Create a custom tag (green)</grn><br>"1133"<ul>Create a custom tag (underline)</ul><br>"1134"<underline=double underline_color=#0F0 underline2_color=#00F>Unnamed tag (underline double)</underline><br>"1135);1136evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1137evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);1138elm_box_pack_end(bx, en);1139evas_object_show(en);1140elm_object_focus_set(en, EINA_TRUE);1141
1142tg = elm_check_add(bx);1143elm_object_style_set(tg, "toggle");1144elm_object_text_set(tg, "Singleline Mode");1145elm_object_part_text_set(tg, "on", "ON");1146elm_object_part_text_set(tg, "off", "OFF");1147evas_object_smart_callback_add(tg, "changed", ent_tg_singleline_mode_state_changed_cb, en);1148elm_box_pack_end(bx, tg);1149evas_object_show(tg);1150
1151hbx = elm_box_add(bx);1152elm_box_horizontal_set(hbx, EINA_TRUE);1153elm_box_pack_end(bx, hbx);1154evas_object_show(hbx);1155
1156bt = elm_button_add(hbx);1157elm_object_text_set(bt, "Peek");1158evas_object_smart_callback_add(bt, "clicked", ent_bt_style_user_peek, en);1159elm_box_pack_end(hbx, bt);1160elm_object_focus_allow_set(bt, EINA_FALSE);1161evas_object_show(bt);1162
1163bt2 = elm_button_add(hbx);1164elm_object_text_set(bt2, "Pop");1165evas_object_smart_callback_add(bt2, "clicked", ent_bt_style_user_pop, en);1166elm_box_pack_end(hbx, bt2);1167elm_object_focus_allow_set(bt2, EINA_FALSE);1168evas_object_show(bt2);1169
1170bt2 = elm_button_add(hbx);1171elm_object_text_set(bt2, "Push");1172evas_object_smart_callback_add(bt2, "clicked", ent_bt_style_user_push, en);1173elm_box_pack_end(hbx, bt2);1174elm_object_focus_allow_set(bt2, EINA_FALSE);1175evas_object_show(bt2);1176
1177evas_object_resize(win, 300 * elm_config_scale_get(),1178300 * elm_config_scale_get());1179evas_object_show(win);1180}
1181
1182
1183static char *default_style_text =1184"<title>Elementary typography</title><br>"1185"<ps>"1186"<subtitle>Basic tags</subtitle><br>"1187"Elm by default provide the <b>bold</b>, the <i>italic</i>, the "1188"<hilight>hilight</hilight> and the <link>link</link> tags.<br>"1189"<ps>"1190"<subtitle>Font sizes</subtitle><br>"1191"You can also use the <big>big</big> or <bigger>bigger</bigger> and "1192"the <small>small</small> or <smaller>smaller</smaller> tags.<br>"1193"<ps>"1194"<subtitle>Status indicators</subtitle><br>"1195"<info>info</info>, <success>success</success>, <warning>warning</warning> and <failure>failure</failure><br>"1196"<ps>"1197"<subtitle>Forms attributes</subtitle><br>"1198"<name>Song:</name> <val>The show must go on</val><br>"1199"<name>Artist:</name> <val>Queen</val><br>"1200"<name>Album:</name> <val>Innuendo</val><br>"1201"<ps>"1202"<subtitle>Syntax highlight</subtitle><br>"1203"<code>"1204"<preprocessor>#include</preprocessor> <string><stdlib.h></string><br>"1205"<preprocessor>#include</preprocessor> <string><Evas.h></string><br>"1206"<br>"1207"<preprocessor>#define</preprocessor> MESSAGE <string>\"Hello World\"</string><br>"1208"<br>"1209"<comment>/* Prints a message to standard output */</comment><br>"1210"<type>void</type> <function>print_message</function><brace>(</brace><type>const char</type> *msg<brace>)</brace> <brace>{</brace><br>"1211" printf<brace>(</brace><string>\"%s\\n\"</string>, msg<brace>)</brace>;<br>"1212"<brace>}</brace><br>"1213"<br>"1214"<type>int</type> <function>main</function><brace>(</brace><type>int</type> argc, <type>char</type> *argv[]<brace>)</brace> <brace>{</brace><br>"1215" <type>int</type> num_int = <number>123</number>;<br>"1216" <type>float</type> num_float = <number>0.999</number>;<br>"1217" <type>char</type> *str = <string>\"This is a string\"</string>;<br>"1218" <type>Evas_Object</type> *obj = <keyword>NULL</keyword>;<br>"1219" print_message<brace>(</brace>MESSAGE<brace>)</brace>;<br>"1220" <keyword>return</keyword> <number>0</number>;<br>"1221"<brace>}</brace><br>"1222"<ps>"1223"<line_added>+diff line added</line_added><br>"1224"<line_removed>-diff line removed</line_removed><br>"1225"<line_changed> diff line changed</line_changed><br>"1226"</code>";1227
1228static void1229ent_bt_def_style_disabled(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)1230{
1231Evas_Object *en = data;1232elm_object_disabled_set(en, elm_check_state_get(obj));1233}
1234
1235static void1236ent_bt_def_style_scrollable(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)1237{
1238Evas_Object *en = data;1239elm_entry_scrollable_set(en, elm_check_state_get(obj));1240}
1241
1242static void1243ent_bt_def_style_markup(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)1244{
1245Evas_Object *en = data;1246
1247if (elm_check_state_get(obj))1248{1249char *markup = elm_entry_utf8_to_markup(default_style_text);1250elm_object_text_set(en, markup);1251free(markup);1252}1253else1254elm_object_text_set(en, default_style_text);1255}
1256
1257static void1258ent_bt_def_style_wrap(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)1259{
1260Evas_Object *en = data;1261
1262if (elm_check_state_get(obj))1263elm_entry_line_wrap_set(en, ELM_WRAP_NONE);1264else1265elm_entry_line_wrap_set(en, ELM_WRAP_WORD);1266}
1267
1268void
1269test_entry_style_default(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1270{
1271Evas_Object *win, *bx, *vbx, *en, *o;1272
1273win = elm_win_util_standard_add("entry-style", "Entry Default Style");1274elm_win_autodel_set(win, EINA_TRUE);1275
1276bx = elm_box_add(win);1277evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1278elm_win_resize_object_add(win, bx);1279evas_object_show(bx);1280
1281en = elm_entry_add(win);1282evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1283evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);1284elm_object_text_set(en, default_style_text);1285elm_entry_editable_set(en, EINA_TRUE);1286elm_entry_line_wrap_set(en, ELM_WRAP_WORD);1287elm_box_pack_end(bx, en);1288evas_object_show(en);1289
1290o = elm_separator_add(win);1291elm_separator_horizontal_set(o, EINA_TRUE);1292elm_box_pack_end(bx, o);1293evas_object_show(o);1294
1295vbx = elm_box_add(win);1296elm_box_horizontal_set(vbx, EINA_TRUE);1297elm_box_pack_end(bx, vbx);1298evas_object_show(vbx);1299
1300o = elm_check_add(win);1301elm_object_text_set(o, "show markup");1302evas_object_smart_callback_add(o, "changed", ent_bt_def_style_markup, en);1303elm_box_pack_end(vbx, o);1304evas_object_show(o);1305
1306o = elm_check_add(win);1307elm_object_text_set(o, "disabled");1308evas_object_smart_callback_add(o, "changed", ent_bt_def_style_disabled, en);1309elm_box_pack_end(vbx, o);1310evas_object_show(o);1311
1312o = elm_check_add(win);1313elm_object_text_set(o, "scrollable");1314evas_object_smart_callback_add(o, "changed", ent_bt_def_style_scrollable, en);1315elm_box_pack_end(vbx, o);1316evas_object_show(o);1317
1318o = elm_check_add(win);1319elm_object_text_set(o, "no wrap");1320evas_object_smart_callback_add(o, "changed", ent_bt_def_style_wrap, en);1321elm_box_pack_end(vbx, o);1322evas_object_show(o);1323
1324evas_object_resize(win, 400 * elm_config_scale_get(),1325400 * elm_config_scale_get());1326evas_object_show(win);1327}
1328
1329static void1330_entry_activated_cb(void *data EINA_UNUSED, Evas_Object *obj,1331void *event_info EINA_UNUSED)1332{
1333printf("entry is activated: %s\n", elm_entry_entry_get(obj));1334}
1335
1336void
1337test_entry3(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1338{
1339Evas_Object *win, *bx, *bx2, *bt, *en;1340
1341win = elm_win_util_standard_add("entry3", "Entry 3");1342elm_win_autodel_set(win, EINA_TRUE);1343
1344bx = elm_box_add(win);1345evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1346elm_win_resize_object_add(win, bx);1347evas_object_show(bx);1348
1349/* Single line selected entry */1350en = elm_entry_add(win);1351elm_entry_scrollable_set(en, EINA_TRUE);1352evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);1353evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);1354elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);1355elm_object_text_set(en, "This is a single line");1356elm_entry_single_line_set(en, EINA_TRUE);1357evas_object_smart_callback_add(en, "activated", _entry_activated_cb, NULL);1358elm_box_pack_end(bx, en);1359evas_object_show(en);1360
1361bx2 = elm_box_add(win);1362elm_box_horizontal_set(bx2, EINA_TRUE);1363evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1364evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1365
1366bt = elm_button_add(win);1367elm_object_text_set(bt, "Clr");1368evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);1369evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1370evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1371elm_box_pack_end(bx2, bt);1372elm_object_focus_allow_set(bt, EINA_FALSE);1373evas_object_show(bt);1374
1375bt = elm_button_add(win);1376elm_object_text_set(bt, "Pri");1377evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);1378evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1379evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1380elm_box_pack_end(bx2, bt);1381elm_object_focus_allow_set(bt, EINA_FALSE);1382evas_object_show(bt);1383
1384bt = elm_button_add(win);1385elm_object_text_set(bt, "Sel");1386evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);1387evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1388evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1389elm_box_pack_end(bx2, bt);1390elm_object_focus_allow_set(bt, EINA_FALSE);1391evas_object_show(bt);1392
1393bt = elm_button_add(win);1394elm_object_text_set(bt, "All");1395evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);1396evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1397evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1398elm_box_pack_end(bx2, bt);1399elm_object_focus_allow_set(bt, EINA_FALSE);1400evas_object_show(bt);1401
1402bt = elm_button_add(win);1403elm_object_text_set(bt, "Non");1404evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);1405evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1406evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1407elm_box_pack_end(bx2, bt);1408elm_object_focus_allow_set(bt, EINA_FALSE);1409evas_object_show(bt);1410
1411bt = elm_button_add(win);1412elm_object_text_set(bt, "Region");1413evas_object_smart_callback_add(bt, "clicked", my_ent_bt_region, en);1414evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1415evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1416elm_box_pack_end(bx2, bt);1417elm_object_focus_allow_set(bt, EINA_FALSE);1418evas_object_show(bt);1419
1420bt = elm_button_add(win);1421elm_object_text_set(bt, "Ins");1422evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);1423evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1424evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1425elm_box_pack_end(bx2, bt);1426elm_object_focus_allow_set(bt, EINA_FALSE);1427evas_object_show(bt);1428
1429elm_box_pack_end(bx, bx2);1430evas_object_show(bx2);1431
1432bx2 = elm_box_add(win);1433elm_box_horizontal_set(bx2, EINA_TRUE);1434evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1435evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1436
1437bt = elm_button_add(win);1438elm_object_text_set(bt, "Lef");1439evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);1440evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1441evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1442elm_box_pack_end(bx2, bt);1443elm_object_focus_allow_set(bt, EINA_FALSE);1444evas_object_show(bt);1445
1446bt = elm_button_add(win);1447elm_object_text_set(bt, "Rig");1448evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);1449evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1450evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1451elm_box_pack_end(bx2, bt);1452elm_object_focus_allow_set(bt, EINA_FALSE);1453evas_object_show(bt);1454
1455bt = elm_button_add(win);1456elm_object_text_set(bt, "Up ");1457evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);1458evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1459evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1460elm_box_pack_end(bx2, bt);1461elm_object_focus_allow_set(bt, EINA_FALSE);1462evas_object_show(bt);1463
1464bt = elm_button_add(win);1465elm_object_text_set(bt, "Dow");1466evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);1467evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1468evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1469elm_box_pack_end(bx2, bt);1470elm_object_focus_allow_set(bt, EINA_FALSE);1471evas_object_show(bt);1472
1473bt = elm_button_add(win);1474elm_object_text_set(bt, "Beg");1475evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);1476evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1477evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1478elm_box_pack_end(bx2, bt);1479elm_object_focus_allow_set(bt, EINA_FALSE);1480evas_object_show(bt);1481
1482bt = elm_button_add(win);1483elm_object_text_set(bt, "End");1484evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en);1485evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1486evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1487elm_box_pack_end(bx2, bt);1488elm_object_focus_allow_set(bt, EINA_FALSE);1489evas_object_show(bt);1490
1491elm_box_pack_end(bx, bx2);1492evas_object_show(bx2);1493
1494bx2 = elm_box_add(win);1495elm_box_horizontal_set(bx2, EINA_TRUE);1496evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1497evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1498
1499bt = elm_button_add(win);1500elm_object_text_set(bt, "LBe");1501evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en);1502evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1503evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1504elm_box_pack_end(bx2, bt);1505elm_object_focus_allow_set(bt, EINA_FALSE);1506evas_object_show(bt);1507
1508bt = elm_button_add(win);1509elm_object_text_set(bt, "LEn");1510evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);1511evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1512evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1513elm_box_pack_end(bx2, bt);1514elm_object_focus_allow_set(bt, EINA_FALSE);1515evas_object_show(bt);1516
1517bt = elm_button_add(win);1518elm_object_text_set(bt, "SBe");1519evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);1520evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1521evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1522elm_box_pack_end(bx2, bt);1523elm_object_focus_allow_set(bt, EINA_FALSE);1524evas_object_show(bt);1525
1526bt = elm_button_add(win);1527elm_object_text_set(bt, "SEn");1528evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);1529evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1530evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1531elm_box_pack_end(bx2, bt);1532elm_object_focus_allow_set(bt, EINA_FALSE);1533evas_object_show(bt);1534
1535bt = elm_button_add(win);1536elm_object_text_set(bt, "Fmt");1537evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);1538evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1539evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1540elm_box_pack_end(bx2, bt);1541elm_object_focus_allow_set(bt, EINA_FALSE);1542evas_object_show(bt);1543
1544bt = elm_button_add(win);1545elm_object_text_set(bt, "VFm");1546evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);1547evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1548evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1549elm_box_pack_end(bx2, bt);1550elm_object_focus_allow_set(bt, EINA_FALSE);1551evas_object_show(bt);1552
1553elm_box_pack_end(bx, bx2);1554evas_object_show(bx2);1555
1556bx2 = elm_box_add(win);1557elm_box_horizontal_set(bx2, EINA_TRUE);1558evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1559evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1560
1561bt = elm_button_add(win);1562elm_object_text_set(bt, "Chr");1563evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);1564evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1565evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1566elm_box_pack_end(bx2, bt);1567elm_object_focus_allow_set(bt, EINA_FALSE);1568evas_object_show(bt);1569
1570bt = elm_button_add(win);1571elm_object_text_set(bt, "Cut");1572evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);1573evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1574evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1575elm_box_pack_end(bx2, bt);1576elm_object_focus_allow_set(bt, EINA_FALSE);1577evas_object_show(bt);1578
1579bt = elm_button_add(win);1580elm_object_text_set(bt, "Cop");1581evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);1582evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1583evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1584elm_box_pack_end(bx2, bt);1585elm_object_focus_allow_set(bt, EINA_FALSE);1586evas_object_show(bt);1587
1588bt = elm_button_add(win);1589elm_object_text_set(bt, "Pas");1590evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);1591evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1592evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1593elm_box_pack_end(bx2, bt);1594elm_object_focus_allow_set(bt, EINA_FALSE);1595evas_object_show(bt);1596
1597elm_box_pack_end(bx, bx2);1598evas_object_show(bx2);1599
1600/* markup entry */1601en = elm_entry_add(win);1602elm_entry_scrollable_set(en, EINA_TRUE);1603evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1604evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);1605elm_object_text_set(en,1606"This is an entry widget in this window that<br/>"1607"uses markup <b>like this</> for styling and<br/>"1608"formatting <em>like this</>, as well as<br/>"1609"<a href=X><link>links in the text</></a>, so enter text<br/>"1610"in here to edit it. By them way, links are<br/>"1611"called <a href=anc-02>Anchors</a> so you will need<br/>"1612"to refer to them this way. At the end here is a really long "1613"line to test line wrapping to see if it works. But just in "1614"case this line is not long enough I will add more here to "1615"really test it out, as Elementary really needs some "1616"good testing to see if entry widgets work as advertised."1617);1618evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);1619elm_box_pack_end(bx, en);1620evas_object_show(en);1621
1622bx2 = elm_box_add(win);1623elm_box_horizontal_set(bx2, EINA_TRUE);1624evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1625evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1626
1627bt = elm_button_add(win);1628elm_object_text_set(bt, "Clr");1629evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);1630evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1631evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1632elm_box_pack_end(bx2, bt);1633elm_object_focus_allow_set(bt, EINA_FALSE);1634evas_object_show(bt);1635
1636bt = elm_button_add(win);1637elm_object_text_set(bt, "Pri");1638evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);1639evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1640evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1641elm_box_pack_end(bx2, bt);1642elm_object_focus_allow_set(bt, EINA_FALSE);1643evas_object_show(bt);1644
1645bt = elm_button_add(win);1646elm_object_text_set(bt, "Sel");1647evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);1648evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1649evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1650elm_box_pack_end(bx2, bt);1651elm_object_focus_allow_set(bt, EINA_FALSE);1652evas_object_show(bt);1653
1654bt = elm_button_add(win);1655elm_object_text_set(bt, "All");1656evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);1657evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1658evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1659elm_box_pack_end(bx2, bt);1660elm_object_focus_allow_set(bt, EINA_FALSE);1661evas_object_show(bt);1662
1663bt = elm_button_add(win);1664elm_object_text_set(bt, "Non");1665evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);1666evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1667evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1668elm_box_pack_end(bx2, bt);1669elm_object_focus_allow_set(bt, EINA_FALSE);1670evas_object_show(bt);1671
1672bt = elm_button_add(win);1673elm_object_text_set(bt, "Ins");1674evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);1675evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1676evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1677elm_box_pack_end(bx2, bt);1678elm_object_focus_allow_set(bt, EINA_FALSE);1679evas_object_show(bt);1680
1681elm_box_pack_end(bx, bx2);1682evas_object_show(bx2);1683
1684bx2 = elm_box_add(win);1685elm_box_horizontal_set(bx2, EINA_TRUE);1686evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1687evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1688
1689bt = elm_button_add(win);1690elm_object_text_set(bt, "Lef");1691evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);1692evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1693evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1694elm_box_pack_end(bx2, bt);1695elm_object_focus_allow_set(bt, EINA_FALSE);1696evas_object_show(bt);1697
1698bt = elm_button_add(win);1699elm_object_text_set(bt, "Rig");1700evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);1701evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1702evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1703elm_box_pack_end(bx2, bt);1704elm_object_focus_allow_set(bt, EINA_FALSE);1705evas_object_show(bt);1706
1707bt = elm_button_add(win);1708elm_object_text_set(bt, "Up ");1709evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);1710evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1711evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1712elm_box_pack_end(bx2, bt);1713elm_object_focus_allow_set(bt, EINA_FALSE);1714evas_object_show(bt);1715
1716bt = elm_button_add(win);1717elm_object_text_set(bt, "Dow");1718evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);1719evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1720evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1721elm_box_pack_end(bx2, bt);1722elm_object_focus_allow_set(bt, EINA_FALSE);1723evas_object_show(bt);1724
1725bt = elm_button_add(win);1726elm_object_text_set(bt, "Beg");1727evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);1728evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1729evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1730elm_box_pack_end(bx2, bt);1731elm_object_focus_allow_set(bt, EINA_FALSE);1732evas_object_show(bt);1733
1734bt = elm_button_add(win);1735elm_object_text_set(bt, "LEn");1736evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);1737evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1738evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1739elm_box_pack_end(bx2, bt);1740elm_object_focus_allow_set(bt, EINA_FALSE);1741evas_object_show(bt);1742
1743bt = elm_button_add(win);1744elm_object_text_set(bt, "SBe");1745evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);1746evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1747evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1748elm_box_pack_end(bx2, bt);1749elm_object_focus_allow_set(bt, EINA_FALSE);1750evas_object_show(bt);1751
1752bt = elm_button_add(win);1753elm_object_text_set(bt, "SEn");1754evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);1755evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1756evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1757elm_box_pack_end(bx2, bt);1758elm_object_focus_allow_set(bt, EINA_FALSE);1759evas_object_show(bt);1760
1761bt = elm_button_add(win);1762elm_object_text_set(bt, "Fmt");1763evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);1764evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1765evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1766elm_box_pack_end(bx2, bt);1767elm_object_focus_allow_set(bt, EINA_FALSE);1768evas_object_show(bt);1769
1770bt = elm_button_add(win);1771elm_object_text_set(bt, "VFm");1772evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);1773evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1774evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1775elm_box_pack_end(bx2, bt);1776elm_object_focus_allow_set(bt, EINA_FALSE);1777evas_object_show(bt);1778
1779elm_box_pack_end(bx, bx2);1780evas_object_show(bx2);1781
1782bx2 = elm_box_add(win);1783elm_box_horizontal_set(bx2, EINA_TRUE);1784evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1785evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1786
1787bt = elm_button_add(win);1788elm_object_text_set(bt, "Chr");1789evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);1790evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1791evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1792elm_box_pack_end(bx2, bt);1793elm_object_focus_allow_set(bt, EINA_FALSE);1794evas_object_show(bt);1795
1796bt = elm_button_add(win);1797elm_object_text_set(bt, "Cut");1798evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);1799evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1800evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1801elm_box_pack_end(bx2, bt);1802elm_object_focus_allow_set(bt, EINA_FALSE);1803evas_object_show(bt);1804
1805bt = elm_button_add(win);1806elm_object_text_set(bt, "Cop");1807evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);1808evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1809evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1810elm_box_pack_end(bx2, bt);1811elm_object_focus_allow_set(bt, EINA_FALSE);1812evas_object_show(bt);1813
1814bt = elm_button_add(win);1815elm_object_text_set(bt, "Pas");1816evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);1817evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1818evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1819elm_box_pack_end(bx2, bt);1820elm_object_focus_allow_set(bt, EINA_FALSE);1821evas_object_show(bt);1822
1823elm_box_pack_end(bx, bx2);1824evas_object_show(bx2);1825
1826elm_object_focus_set(win, EINA_TRUE);1827evas_object_resize(win, 320 * elm_config_scale_get(),1828480 * elm_config_scale_get());1829evas_object_show(win);1830}
1831
1832void
1833test_entry4(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1834{
1835Evas_Object *win, *ly, *en;1836char buf[PATH_MAX];1837
1838win = elm_win_util_standard_add("entry4", "Entry 4");1839elm_win_autodel_set(win, EINA_TRUE);1840
1841ly = elm_layout_add(win);1842snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());1843elm_layout_file_set(ly, buf, "layout");1844evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1845elm_win_resize_object_add(win, ly);1846evas_object_show(ly);1847
1848en = elm_entry_add(win);1849elm_entry_scrollable_set(en, EINA_TRUE);1850evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);1851evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);1852elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);1853elm_object_text_set(en, "This is a single line");1854elm_entry_single_line_set(en, EINA_TRUE);1855elm_object_part_content_set(ly, "element1", en);1856
1857en = elm_entry_add(win);1858elm_entry_line_wrap_set(en, ELM_WRAP_NONE);1859elm_object_text_set(en,1860"This is an entry widget<br/>"1861"that uses markup<br/>"1862"<b>like this</> and has<br/>"1863"no scroller, so you can<br/>"1864"use it more flexibly.");1865evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1866evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);1867elm_object_part_content_set(ly, "element2", en);1868
1869en = elm_entry_add(win);1870elm_entry_scrollable_set(en, EINA_TRUE);1871evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1872evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);1873elm_object_text_set(en,1874"This is an entry widget in this window that<br/>"1875"uses markup <b>like this</> for styling and<br/>"1876"formatting <em>like this</>, as well as<br/>"1877"<a href=X><link>links in the text</></a>, so enter text<br/>"1878"in here to edit it. By them way, links are<br/>"1879"called <a href=anc-02>Anchors</a> so you will need<br/>"1880"to refer to them this way. At the end here is a really long "1881"line to test line wrapping to see if it works. But just in "1882"case this line is not long enough I will add more here to "1883"really test it out, as Elementary really needs some "1884"good testing to see if entry widgets work as advertised."1885);1886evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);1887elm_object_part_content_set(ly, "element3", en);1888
1889evas_object_show(win);1890}
1891
1892void
1893test_entry5(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)1894{
1895Evas_Object *win, *bx, *bx2, *bt, *en;1896
1897win = elm_win_util_standard_add("entry5", "Entry 5");1898elm_win_autodel_set(win, EINA_TRUE);1899
1900bx = elm_box_add(win);1901evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1902elm_win_resize_object_add(win, bx);1903evas_object_show(bx);1904
1905en = elm_entry_add(win);1906elm_entry_scrollable_set(en, EINA_TRUE);1907elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);1908evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);1909evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);1910elm_object_text_set(en,1911"This is an entry widget in this window that "1912"uses markup like this for styling and "1913"formatting like this, as well as "1914"to refer to them this way. At the end here is a really long "1915"line to test line wrapping to see if it works. But just in "1916"case this line is not long enough I will add more here to "1917"really test it out, as Elementary really needs some "1918"good testing to see if entry widgets work as advertised."1919);1920evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en);1921elm_box_pack_end(bx, en);1922evas_object_show(en);1923
1924bx2 = elm_box_add(win);1925elm_box_horizontal_set(bx2, EINA_TRUE);1926evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1927evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1928
1929bt = elm_button_add(win);1930elm_object_text_set(bt, "Clr");1931evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en);1932evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1933evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1934elm_box_pack_end(bx2, bt);1935elm_object_focus_allow_set(bt, EINA_FALSE);1936evas_object_show(bt);1937
1938bt = elm_button_add(win);1939elm_object_text_set(bt, "Pri");1940evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en);1941evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1942evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1943elm_box_pack_end(bx2, bt);1944elm_object_focus_allow_set(bt, EINA_FALSE);1945evas_object_show(bt);1946
1947bt = elm_button_add(win);1948elm_object_text_set(bt, "Sel");1949evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en);1950evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1951evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1952elm_box_pack_end(bx2, bt);1953elm_object_focus_allow_set(bt, EINA_FALSE);1954evas_object_show(bt);1955
1956bt = elm_button_add(win);1957elm_object_text_set(bt, "All");1958evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en);1959evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1960evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1961elm_box_pack_end(bx2, bt);1962elm_object_focus_allow_set(bt, EINA_FALSE);1963evas_object_show(bt);1964
1965bt = elm_button_add(win);1966elm_object_text_set(bt, "Non");1967evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en);1968evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1969evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1970elm_box_pack_end(bx2, bt);1971elm_object_focus_allow_set(bt, EINA_FALSE);1972evas_object_show(bt);1973
1974bt = elm_button_add(win);1975elm_object_text_set(bt, "Ins");1976evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en);1977evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1978evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1979elm_box_pack_end(bx2, bt);1980elm_object_focus_allow_set(bt, EINA_FALSE);1981evas_object_show(bt);1982
1983elm_box_pack_end(bx, bx2);1984evas_object_show(bx2);1985
1986bx2 = elm_box_add(win);1987elm_box_horizontal_set(bx2, EINA_TRUE);1988evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);1989evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);1990
1991bt = elm_button_add(win);1992elm_object_text_set(bt, "Lef");1993evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en);1994evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);1995evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);1996elm_box_pack_end(bx2, bt);1997elm_object_focus_allow_set(bt, EINA_FALSE);1998evas_object_show(bt);1999
2000bt = elm_button_add(win);2001elm_object_text_set(bt, "Rig");2002evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en);2003evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2004evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2005elm_box_pack_end(bx2, bt);2006elm_object_focus_allow_set(bt, EINA_FALSE);2007evas_object_show(bt);2008
2009bt = elm_button_add(win);2010elm_object_text_set(bt, "Up ");2011evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en);2012evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2013evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2014elm_box_pack_end(bx2, bt);2015elm_object_focus_allow_set(bt, EINA_FALSE);2016evas_object_show(bt);2017
2018bt = elm_button_add(win);2019elm_object_text_set(bt, "Dow");2020evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en);2021evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2022evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2023elm_box_pack_end(bx2, bt);2024elm_object_focus_allow_set(bt, EINA_FALSE);2025evas_object_show(bt);2026
2027bt = elm_button_add(win);2028elm_object_text_set(bt, "Beg");2029evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en);2030evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2031evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2032elm_box_pack_end(bx2, bt);2033elm_object_focus_allow_set(bt, EINA_FALSE);2034evas_object_show(bt);2035
2036bt = elm_button_add(win);2037elm_object_text_set(bt, "End");2038evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en);2039evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2040evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2041elm_box_pack_end(bx2, bt);2042elm_object_focus_allow_set(bt, EINA_FALSE);2043evas_object_show(bt);2044
2045elm_box_pack_end(bx, bx2);2046evas_object_show(bx2);2047
2048bx2 = elm_box_add(win);2049elm_box_horizontal_set(bx2, EINA_TRUE);2050evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);2051evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);2052
2053bt = elm_button_add(win);2054elm_object_text_set(bt, "LBe");2055evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en);2056evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2057evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2058elm_box_pack_end(bx2, bt);2059elm_object_focus_allow_set(bt, EINA_FALSE);2060evas_object_show(bt);2061
2062bt = elm_button_add(win);2063elm_object_text_set(bt, "LEn");2064evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en);2065evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2066evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2067elm_box_pack_end(bx2, bt);2068elm_object_focus_allow_set(bt, EINA_FALSE);2069evas_object_show(bt);2070
2071bt = elm_button_add(win);2072elm_object_text_set(bt, "SBe");2073evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en);2074evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2075evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2076elm_box_pack_end(bx2, bt);2077elm_object_focus_allow_set(bt, EINA_FALSE);2078evas_object_show(bt);2079
2080bt = elm_button_add(win);2081elm_object_text_set(bt, "SEn");2082evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en);2083evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2084evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2085elm_box_pack_end(bx2, bt);2086elm_object_focus_allow_set(bt, EINA_FALSE);2087evas_object_show(bt);2088
2089bt = elm_button_add(win);2090elm_object_text_set(bt, "Fmt");2091evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en);2092evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2093evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2094elm_box_pack_end(bx2, bt);2095elm_object_focus_allow_set(bt, EINA_FALSE);2096evas_object_show(bt);2097
2098bt = elm_button_add(win);2099elm_object_text_set(bt, "VFm");2100evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en);2101evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2102evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2103elm_box_pack_end(bx2, bt);2104elm_object_focus_allow_set(bt, EINA_FALSE);2105evas_object_show(bt);2106
2107elm_box_pack_end(bx, bx2);2108evas_object_show(bx2);2109
2110bx2 = elm_box_add(win);2111elm_box_horizontal_set(bx2, EINA_TRUE);2112evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);2113evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);2114
2115bt = elm_button_add(win);2116elm_object_text_set(bt, "Chr");2117evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en);2118evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2119evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2120elm_box_pack_end(bx2, bt);2121elm_object_focus_allow_set(bt, EINA_FALSE);2122evas_object_show(bt);2123
2124bt = elm_button_add(win);2125elm_object_text_set(bt, "Cut");2126evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en);2127evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2128evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2129elm_box_pack_end(bx2, bt);2130elm_object_focus_allow_set(bt, EINA_FALSE);2131evas_object_show(bt);2132
2133bt = elm_button_add(win);2134elm_object_text_set(bt, "Cop");2135evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en);2136evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2137evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2138elm_box_pack_end(bx2, bt);2139elm_object_focus_allow_set(bt, EINA_FALSE);2140evas_object_show(bt);2141
2142bt = elm_button_add(win);2143elm_object_text_set(bt, "Pas");2144evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en);2145evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2146evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2147elm_box_pack_end(bx2, bt);2148elm_object_focus_allow_set(bt, EINA_FALSE);2149evas_object_show(bt);2150
2151elm_box_pack_end(bx, bx2);2152evas_object_show(bx2);2153
2154elm_object_focus_set(win, EINA_TRUE);2155evas_object_resize(win, 320 * elm_config_scale_get(),2156480 * elm_config_scale_get());2157evas_object_show(win);2158}
2159
2160void
2161test_entry6(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2162{
2163Evas_Object *win, *bx, *en;2164
2165win = elm_win_util_standard_add("entry6", "Entry 6");2166elm_win_autodel_set(win, EINA_TRUE);2167
2168bx = elm_box_add(win);2169evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2170elm_win_resize_object_add(win, bx);2171evas_object_show(bx);2172
2173en = elm_entry_add(win);2174elm_entry_scrollable_set(en, EINA_TRUE);2175elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);2176evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2177evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);2178elm_object_text_set(en,2179"input_panel_enabled: TRUE.<br>"2180"When this entry gets a focus, virtual keyboard will be shown "2181"in illume environment.");2182elm_box_pack_end(bx, en);2183evas_object_show(en);2184
2185en = elm_entry_add(win);2186elm_entry_scrollable_set(en, EINA_TRUE);2187elm_entry_line_wrap_set(en, ELM_WRAP_CHAR);2188evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2189evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);2190elm_object_text_set(en,2191"input_panel_enabled: FALSE.<br>"2192"This entry doesn't allow one to show virtual keyboard automatically.<br>"2193"it is used in case that wants its own keypad such as calculator.");2194elm_entry_input_panel_enabled_set(en, EINA_FALSE);2195elm_box_pack_end(bx, en);2196evas_object_show(en);2197
2198elm_object_focus_set(win, EINA_TRUE);2199evas_object_resize(win, 320 * elm_config_scale_get(),2200300 * elm_config_scale_get());2201evas_object_show(win);2202}
2203
2204static void2205changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2206{
2207Evas_Object *en;2208en = (Evas_Object*)data;2209
2210elm_entry_editable_set(en, elm_check_state_get(obj));2211}
2212
2213static void2214en_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2215{
2216Evas_Object *sp, *en;2217sp = (Evas_Object *)data;2218en = (Evas_Object *)obj;2219elm_spinner_min_max_set(sp, 0, strlen(elm_object_text_get(en)));2220}
2221
2222static void2223sp_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2224{
2225Evas_Object *en, *sp;2226en = (Evas_Object *)data;2227sp = (Evas_Object *)obj;2228elm_entry_cursor_pos_set(en, elm_spinner_value_get(sp));2229elm_object_focus_set(en, EINA_TRUE);2230}
2231
2232static void2233add_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2234{
2235Evas_Object *en;2236en = (Evas_Object *)data;2237
2238elm_entry_context_menu_item_add(en, "item", NULL, ELM_ICON_NONE, NULL, NULL);2239}
2240
2241static void2242clear_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2243{
2244Evas_Object *en;2245en = (Evas_Object *)data;2246
2247elm_entry_context_menu_clear(en);2248}
2249
2250static Evas_Object *2251item_provider(void *images EINA_UNUSED, Evas_Object *en, const char *item)2252{
2253Evas_Object *o = NULL;;2254char buf[1024];2255
2256if (!strcmp(item, "itemprovider"))2257{2258snprintf(buf, sizeof(buf), "%s/images/icon_00.png",2259elm_app_data_dir_get());2260o = evas_object_image_filled_add(evas_object_evas_get(en));2261evas_object_image_file_set(o, buf, NULL);2262}2263
2264return o;2265}
2266
2267static Evas_Object *2268prepend_item_provider(void *images EINA_UNUSED, Evas_Object *en, const char *item)2269{
2270Evas_Object *o = NULL;;2271char buf[1024];2272
2273if (!strcmp(item, "itemprovider"))2274{2275snprintf(buf, sizeof(buf), "%s/images/icon_10.png",2276elm_app_data_dir_get());2277o = evas_object_image_filled_add(evas_object_evas_get(en));2278evas_object_image_file_set(o, buf, NULL);2279}2280
2281return o;2282}
2283
2284static void2285prepend_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2286{
2287Evas_Object *en;2288en = (Evas_Object *)data;2289
2290elm_entry_item_provider_prepend(en, prepend_item_provider, NULL);2291elm_object_text_set(en,2292"Item Provider"2293"<item size=50x50 vsize=full href=itemprovider></item>"2294);2295}
2296
2297static void2298remove_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2299{
2300Evas_Object *en;2301en = (Evas_Object *)data;2302
2303elm_entry_item_provider_remove(en, item_provider, NULL);2304elm_entry_item_provider_remove(en, prepend_item_provider, NULL);2305elm_object_text_set(en,2306"Item Provider"2307"<item size=50x50 vsize=full href=itemprovider></item>"2308);2309}
2310
2311static void2312enable_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2313{
2314Evas_Object *en;2315en = (Evas_Object*)data;2316
2317elm_entry_context_menu_disabled_set(en, elm_check_state_get(obj));2318}
2319
2320void
2321test_entry7(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2322{
2323Evas_Object *win, *gd, *bg, *en, *tg, *lb, *sp;2324Evas_Object *bt, *en2;2325
2326win = elm_win_util_standard_add("entry7", "Entry 7");2327elm_win_autodel_set(win, EINA_TRUE);2328
2329gd = elm_grid_add(win);2330elm_grid_size_set(gd, 100, 100);2331evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2332elm_win_resize_object_add(win, gd);2333evas_object_show(gd);2334
2335/* upper entry group */2336bg = elm_bg_add(win);2337elm_bg_color_set(bg, 255, 0, 0);2338elm_grid_pack(gd, bg, 10, 10, 60, 30);2339evas_object_show(bg);2340
2341en = elm_entry_add(win);2342elm_entry_scrollable_set(en, EINA_TRUE);2343evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2344evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);2345elm_object_text_set(en, "Editable, Cursor Position");2346evas_object_show(en);2347elm_grid_pack(gd, en, 10, 10, 60, 30);2348
2349tg = elm_check_add(win);2350evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2351evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL);2352elm_object_text_set(tg, "Editable");2353elm_check_state_set(tg, EINA_TRUE);2354evas_object_smart_callback_add(tg, "changed", changed_cb, en);2355elm_grid_pack(gd, tg, 70, 10, 22, 10);2356evas_object_show(tg);2357
2358lb = elm_label_add(win);2359elm_object_text_set(lb, "Cursor position:");2360evas_object_size_hint_weight_set(lb, 0.0, 0.0);2361evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);2362elm_grid_pack(gd, lb, 70, 25, 25, 5);2363evas_object_show(lb);2364
2365sp = elm_spinner_add(win);2366elm_spinner_label_format_set(sp, "%1.0f");2367elm_spinner_step_set(sp, 1);2368elm_spinner_wrap_set(sp, ELM_WRAP_CHAR);2369elm_spinner_min_max_set(sp, 0, strlen(elm_object_text_get(en)));2370evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, EVAS_HINT_FILL);2371evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2372elm_grid_pack(gd, sp, 70, 30, 25, 10);2373evas_object_smart_callback_add(en, "changed", en_changed_cb, sp);2374evas_object_smart_callback_add(sp, "delay,changed", sp_changed_cb, en);2375evas_object_show(sp);2376
2377/* bottom entry group */2378bg = elm_bg_add(win);2379elm_bg_color_set(bg, 0, 255, 0);2380elm_grid_pack(gd, bg, 10, 50, 45, 30);2381evas_object_show(bg);2382
2383en2 = elm_entry_add(win);2384elm_entry_scrollable_set(en2, EINA_TRUE);2385evas_object_size_hint_weight_set(en2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2386evas_object_size_hint_align_set(en2, EVAS_HINT_FILL, EVAS_HINT_FILL);2387elm_object_text_set(en2,2388"Item Provider"2389"<item size=50x50 vsize=full href=itemprovider></item>"2390);2391elm_entry_item_provider_append(en2, item_provider, NULL);2392elm_entry_context_menu_disabled_set(en2, EINA_TRUE);2393elm_grid_pack(gd, en2, 10, 50, 45, 30);2394evas_object_show(en2);2395
2396tg = elm_check_add(win);2397evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2398evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL);2399elm_object_text_set(tg, "Disable Context Menu");2400elm_check_state_set(tg, EINA_TRUE);2401evas_object_smart_callback_add(tg, "changed", enable_changed_cb, en2);2402elm_grid_pack(gd, tg, 55, 50, 40, 10);2403evas_object_show(tg);2404
2405bt = elm_button_add(win);2406elm_object_text_set(bt, "Add Context Menu");2407elm_grid_pack(gd, bt, 55, 60, 40, 10);2408evas_object_smart_callback_add(bt, "clicked", add_bt_clicked, en2);2409evas_object_show(bt);2410
2411bt = elm_button_add(win);2412elm_object_text_set(bt, "Clear Context Menu");2413elm_grid_pack(gd, bt, 55, 70, 40, 10);2414evas_object_smart_callback_add(bt, "clicked", clear_bt_clicked, en2);2415evas_object_show(bt);2416
2417bt = elm_button_add(win);2418elm_object_text_set(bt, "Prepend Item Provider");2419elm_grid_pack(gd, bt, 10, 80, 45, 10);2420evas_object_smart_callback_add(bt, "clicked", prepend_bt_clicked, en2);2421evas_object_show(bt);2422
2423bt = elm_button_add(win);2424elm_object_text_set(bt, "Remove Item Provider");2425elm_grid_pack(gd, bt, 55, 80, 40, 10);2426evas_object_smart_callback_add(bt, "clicked", remove_bt_clicked, en2);2427evas_object_show(bt);2428
2429evas_object_resize(win, 320 * elm_config_scale_get(),2430320 * elm_config_scale_get());2431evas_object_show(win);2432}
2433
2434static void2435filter_prepend_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2436{
2437Evas_Object *en, *en2;2438static Elm_Entry_Filter_Accept_Set digits_filter_data;2439
2440en = (Evas_Object *)data;2441en2 = evas_object_data_get(en, "filter-entry");2442digits_filter_data.accepted = elm_object_text_get(en2);2443digits_filter_data.rejected = NULL;2444
2445elm_entry_markup_filter_append(en, elm_entry_filter_accept_set,2446&digits_filter_data);2447elm_object_text_set(en, "Markup Filter Prepend Test:");2448}
2449
2450static void2451filter_remove_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2452{
2453Evas_Object *en;2454en = (Evas_Object *)data;2455
2456elm_entry_markup_filter_remove(en, elm_entry_filter_accept_set, NULL);2457elm_object_text_set(en, "Markup Filter Prepend Test:");2458}
2459
2460static void2461icon_visible_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2462{
2463Evas_Object *en;2464en = (Evas_Object*)data;2465
2466elm_entry_icon_visible_set(en, elm_check_state_get(obj));2467}
2468
2469static void2470end_visible_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2471{
2472Evas_Object *en;2473en = (Evas_Object*)data;2474
2475elm_entry_end_visible_set(en, elm_check_state_get(obj));2476}
2477
2478static void2479horizontal_bounce_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2480{
2481Evas_Object *en;2482Eina_Bool vb;2483Eina_Bool bounce = elm_check_state_get(obj);2484en = (Evas_Object*)data;2485
2486elm_scroller_bounce_get(en, NULL, &vb);2487elm_scroller_bounce_set(en, bounce, bounce);2488}
2489
2490static void2491vertical_bounce_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2492{
2493Evas_Object *en;2494Eina_Bool hb;2495Eina_Bool bounce = elm_check_state_get(obj);2496en = (Evas_Object*)data;2497
2498elm_scroller_bounce_get(en, &hb, NULL);2499elm_scroller_bounce_set(en, hb, bounce);2500}
2501
2502void
2503test_entry8(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2504{
2505Evas_Object *win, *gd, *rect, *en, *lb;2506Evas_Object *bt, *en2;2507Evas_Object *ch, *en3;2508Evas_Object *en4;2509static Elm_Entry_Filter_Limit_Size limit_filter_data;2510
2511win = elm_win_util_standard_add("entry8", "Entry 8");2512elm_win_autodel_set(win, EINA_TRUE);2513
2514gd = elm_grid_add(win);2515elm_grid_size_set(gd, 100, 100);2516evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2517elm_win_resize_object_add(win, gd);2518evas_object_show(gd);2519
2520rect = evas_object_rectangle_add(evas_object_evas_get(win));2521elm_grid_pack(gd, rect, 5, 5, 90, 10);2522evas_object_color_set(rect, 125, 125, 255, 255);2523evas_object_show(rect);2524
2525en = elm_entry_add(win);2526elm_entry_scrollable_set(en, EINA_TRUE);2527elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);2528evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2529evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);2530elm_object_text_set(en, "Markup Filter Prepend Test");2531elm_grid_pack(gd, en, 5, 5, 90, 10);2532evas_object_show(en);2533
2534lb = elm_label_add(win);2535elm_object_text_set(lb, "Markup Filter (20 Characters):");2536evas_object_size_hint_weight_set(lb, 0.0, 0.0);2537evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);2538elm_grid_pack(gd, lb, 5, 15, 50, 10);2539evas_object_show(lb);2540
2541rect = evas_object_rectangle_add(evas_object_evas_get(win));2542elm_grid_pack(gd, rect, 55, 15, 40, 10);2543evas_object_color_set(rect, 0, 125, 255, 255);2544evas_object_show(rect);2545
2546en2 = elm_entry_add(win);2547elm_entry_scrollable_set(en2, EINA_TRUE);2548elm_scroller_policy_set(en2, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);2549evas_object_size_hint_weight_set(en2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2550evas_object_size_hint_align_set(en2, EVAS_HINT_FILL, EVAS_HINT_FILL);2551limit_filter_data.max_char_count = 20;2552limit_filter_data.max_byte_count = 0;2553elm_entry_markup_filter_append(en2, elm_entry_filter_limit_size, &limit_filter_data);2554evas_object_data_set(en, "filter-entry", en2);2555evas_object_show(en2);2556elm_grid_pack(gd, en2, 55, 15, 40, 10);2557
2558bt = elm_button_add(win);2559elm_object_text_set(bt, "Markup Filter Prepend");2560elm_grid_pack(gd, bt, 5, 25, 45, 10);2561evas_object_smart_callback_add(bt, "clicked", filter_prepend_bt_clicked, en);2562evas_object_show(bt);2563
2564bt = elm_button_add(win);2565elm_object_text_set(bt, "Markup Filter Remove");2566elm_grid_pack(gd, bt, 50, 25, 45, 10);2567evas_object_smart_callback_add(bt, "clicked", filter_remove_bt_clicked, en);2568evas_object_show(bt);2569
2570en3 = elm_entry_add(win);2571elm_entry_scrollable_set(en3, EINA_TRUE);2572elm_scroller_policy_set(en3, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);2573elm_entry_single_line_set(en3, EINA_TRUE);2574evas_object_size_hint_weight_set(en3, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2575evas_object_size_hint_align_set(en3, EVAS_HINT_FILL, EVAS_HINT_FILL);2576evas_object_show(en3);2577elm_grid_pack(gd, en3, 5, 35, 90, 20);2578
2579bt = elm_icon_add(win);2580elm_icon_standard_set(bt, "go-home");2581evas_object_size_hint_min_set(bt, 48, 48);2582evas_object_color_set(bt, 128, 0, 0, 128);2583evas_object_show(bt);2584elm_object_part_content_set(en3, "icon", bt);2585
2586bt = elm_icon_add(win);2587elm_icon_standard_set(bt, "delete");2588evas_object_color_set(bt, 128, 0, 0, 128);2589evas_object_size_hint_min_set(bt, 48, 48);2590evas_object_show(bt);2591elm_object_part_content_set(en3, "end", bt);2592
2593ch = elm_check_add(win);2594evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2595evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);2596elm_object_text_set(ch, "Icon Visible");2597elm_check_state_set(ch, EINA_TRUE);2598evas_object_smart_callback_add(ch, "changed", icon_visible_changed_cb, en3);2599elm_grid_pack(gd, ch, 5, 55, 30, 10);2600evas_object_show(ch);2601
2602ch = elm_check_add(win);2603evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2604evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);2605elm_object_text_set(ch, "End Visible");2606elm_check_state_set(ch, EINA_TRUE);2607evas_object_smart_callback_add(ch, "changed", end_visible_changed_cb, en3);2608elm_grid_pack(gd, ch, 70, 55, 25, 10);2609evas_object_show(ch);2610
2611rect = evas_object_rectangle_add(evas_object_evas_get(win));2612elm_grid_pack(gd, rect, 5, 65, 90, 20);2613evas_object_color_set(rect, 255, 125, 125, 255);2614evas_object_show(rect);2615
2616en4 = elm_entry_add(win);2617elm_object_part_text_set(en4, "guide", "Type in here");2618elm_entry_scrollable_set(en4, EINA_TRUE);2619elm_scroller_bounce_set(en4, EINA_TRUE, EINA_TRUE);2620elm_entry_autocapital_type_set(en4, ELM_AUTOCAPITAL_TYPE_WORD);2621evas_object_size_hint_weight_set(en4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2622evas_object_size_hint_align_set(en4, EVAS_HINT_FILL, EVAS_HINT_FILL);2623elm_grid_pack(gd, en4, 5, 65, 90, 20);2624evas_object_show(en4);2625
2626ch = elm_check_add(win);2627evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2628evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);2629elm_object_text_set(ch, "Horizontal Bounce Set");2630elm_check_state_set(ch, EINA_TRUE);2631evas_object_smart_callback_add(ch, "changed", horizontal_bounce_changed_cb, en4);2632elm_grid_pack(gd, ch, 5, 85, 45, 10);2633evas_object_show(ch);2634
2635ch = elm_check_add(win);2636evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2637evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);2638elm_object_text_set(ch, "Vertical Bounce Set");2639elm_check_state_set(ch, EINA_TRUE);2640evas_object_smart_callback_add(ch, "changed", vertical_bounce_changed_cb, en4);2641elm_grid_pack(gd, ch, 50, 85, 45, 10);2642evas_object_show(ch);2643
2644evas_object_resize(win, 320 * elm_config_scale_get(),2645320 * elm_config_scale_get());2646evas_object_show(win);2647}
2648
2649typedef struct {2650Evas_Object *en_regex;2651Evas_Object *lb_regex;2652Evas_Object *en_single;2653Evas_Object *en_multi;2654Elm_Validator_Regexp *re;2655} _test_regex_data_t;2656
2657static void2658_test_regex_data_del(void *data,2659Evas *e EINA_UNUSED,2660Evas_Object *obj EINA_UNUSED,2661void *event_info EINA_UNUSED)2662{
2663_test_regex_data_t *test_data = data;2664if (test_data->re) elm_validator_regexp_free(test_data->re);2665free(test_data);2666}
2667
2668static void2669_test_regex_bt_cb(void *data,2670Evas_Object *obj EINA_UNUSED,2671void *event_info EINA_UNUSED)2672{
2673int status;2674_test_regex_data_t *test_data = data;2675Eina_Strbuf *tmp;2676
2677if (test_data->re)2678{2679efl_event_callback_del(test_data->en_single, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re);2680efl_event_callback_del(test_data->en_multi, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re);2681elm_validator_regexp_free(test_data->re);2682}2683test_data->re = elm_validator_regexp_new(elm_entry_entry_get(test_data->en_regex), NULL);2684
2685status = elm_validator_regexp_status_get(test_data->re);2686tmp = eina_strbuf_manage_new(strdup("Regex error: "));2687switch (status)2688{2689case ELM_REG_NOERROR:2690{2691eina_strbuf_append(tmp, "No error. Regex maches to the Entrys text.");2692break;2693}2694case ELM_REG_BADPAT:2695{2696eina_strbuf_append(tmp, "Invalid regular expression.");2697break;2698}2699default:2700break;2701}2702if (!status)2703{2704efl_event_callback_add(test_data->en_single, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re);2705efl_event_callback_add(test_data->en_multi, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re);2706}2707
2708elm_object_text_set(test_data->lb_regex, eina_strbuf_string_get(tmp));2709eina_strbuf_free(tmp);2710}
2711
2712static inline Evas_Object *2713_test_regex_entry_add(Evas_Object *parent, Eina_Bool is_singleline)2714{
2715Evas_Object *entry = elm_entry_add(parent);2716elm_entry_scrollable_set(entry, EINA_TRUE);2717elm_entry_single_line_set(entry, is_singleline);2718evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2719evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);2720elm_entry_editable_set(entry, EINA_TRUE);2721evas_object_show(entry);2722return entry;2723}
2724
2725void
2726test_entry_regex(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2727{
2728Evas_Object *win, *scr, *box;2729Evas_Object *item, *label, *bt, *sep;2730_test_regex_data_t *test_data;2731#define REGEX "^[0-9]*$"2732
2733test_data = malloc(sizeof(_test_regex_data_t));2734
2735win = elm_win_util_standard_add("Entry", "Entry Regex Test");2736elm_win_autodel_set(win, EINA_TRUE);2737evas_object_event_callback_add(win, EVAS_CALLBACK_DEL,2738_test_regex_data_del, test_data);2739
2740scr = elm_scroller_add(win);2741elm_scroller_bounce_set(scr, EINA_FALSE, EINA_TRUE);2742elm_scroller_policy_set(scr, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);2743evas_object_size_hint_weight_set(scr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2744elm_win_resize_object_add(win, scr);2745evas_object_show(scr);2746
2747box = elm_box_add(win);2748evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2749elm_box_homogeneous_set(box, EINA_FALSE);2750elm_object_content_set(scr, box);2751
2752evas_object_show(box);2753
2754label = elm_label_add(box);2755elm_object_text_set(label, "Regular Expression");2756elm_box_pack_end(box, label);2757evas_object_show(label);2758
2759item = elm_box_add(win);2760evas_object_size_hint_weight_set(item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2761evas_object_size_hint_align_set(item, EVAS_HINT_FILL, EVAS_HINT_FILL);2762elm_box_horizontal_set(item, EINA_TRUE);2763elm_box_homogeneous_set(item, EINA_FALSE);2764evas_object_show(item);2765elm_box_pack_end(box, item);2766
2767test_data->en_regex = _test_regex_entry_add(item, EINA_TRUE);2768elm_box_pack_end(item, test_data->en_regex);2769
2770bt = elm_button_add(item);2771elm_object_text_set(bt, "Set");2772evas_object_smart_callback_add(bt, "clicked", _test_regex_bt_cb, test_data);2773evas_object_show(bt);2774elm_box_pack_end(item, bt);2775
2776test_data->lb_regex = elm_label_add(box);2777elm_object_text_set(test_data->lb_regex, "Regex error: no error.");2778elm_box_pack_end(box, test_data->lb_regex);2779evas_object_show(test_data->lb_regex);2780
2781sep = elm_separator_add(box);2782elm_separator_horizontal_set(sep, EINA_TRUE);2783evas_object_show(sep);2784elm_box_pack_end(box, sep);2785
2786label = elm_label_add(box);2787elm_object_text_set(label, "Test regex in single line entry");2788elm_box_pack_end(box, label);2789evas_object_show(label);2790
2791test_data->en_single = _test_regex_entry_add(box, EINA_TRUE);2792elm_box_pack_end(box, test_data->en_single);2793
2794label = elm_label_add(box);2795elm_object_text_set(label, "Test regex in multi line entry");2796elm_box_pack_end(box, label);2797evas_object_show(label);2798
2799test_data->en_multi = _test_regex_entry_add(box, EINA_FALSE);2800elm_box_pack_end(box, test_data->en_multi);2801
2802test_data->re = elm_validator_regexp_new(REGEX, NULL);2803elm_entry_entry_set(test_data->en_regex, REGEX);2804efl_event_callback_add(test_data->en_single, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re);2805efl_event_callback_add(test_data->en_multi, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re);2806
2807evas_object_resize(win, 400 * elm_config_scale_get(),2808400 * elm_config_scale_get());2809evas_object_show(win);2810
2811#undef REGEX2812}
2813
2814static void2815_scrolled_entry_clear(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2816{
2817Evas_Object *en = data;2818elm_object_text_set(en, "");2819}
2820
2821static void2822_scrolled_entry_save(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2823{
2824Evas_Object *en = data;2825elm_entry_file_save(en);2826}
2827
2828static void2829auto_save_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2830{
2831Evas_Object *en;2832en = (Evas_Object*)data;2833
2834elm_entry_autosave_set(en, elm_check_state_get(obj));2835}
2836
2837void
2838test_entry_notepad(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2839{
2840Evas_Object *win, *bx, *bx2, *bt, *np, *ch;2841
2842win = elm_win_util_standard_add("entry-notepad", "Entry Notepad");2843elm_win_autodel_set(win, EINA_TRUE);2844
2845bx = elm_box_add(win);2846evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2847elm_win_resize_object_add(win, bx);2848evas_object_show(bx);2849
2850np = elm_entry_add(win);2851elm_entry_scrollable_set(np, EINA_TRUE);2852elm_entry_file_set(np, "note.txt", ELM_TEXT_FORMAT_PLAIN_UTF8);2853evas_object_size_hint_weight_set(np, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2854evas_object_size_hint_align_set(np, EVAS_HINT_FILL, EVAS_HINT_FILL);2855elm_box_pack_end(bx, np);2856evas_object_show(np);2857
2858bx2 = elm_box_add(win);2859elm_box_horizontal_set(bx2, EINA_TRUE);2860elm_box_homogeneous_set(bx2, EINA_TRUE);2861evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);2862evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);2863
2864bt = elm_button_add(win);2865elm_object_text_set(bt, "Clear");2866evas_object_smart_callback_add(bt, "clicked", _scrolled_entry_clear, np);2867evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2868evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2869elm_box_pack_end(bx2, bt);2870evas_object_show(bt);2871
2872bt = elm_button_add(win);2873elm_object_text_set(bt, "Save");2874evas_object_smart_callback_add(bt, "clicked", _scrolled_entry_save, np);2875evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);2876evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);2877elm_box_pack_end(bx2, bt);2878evas_object_show(bt);2879
2880ch = elm_check_add(win);2881evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2882evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL);2883elm_object_text_set(ch, "Auto Save");2884elm_check_state_set(ch, EINA_FALSE);2885evas_object_smart_callback_add(ch, "changed", auto_save_changed_cb, np);2886elm_box_pack_end(bx2, ch);2887evas_object_show(ch);2888
2889elm_box_pack_end(bx, bx2);2890evas_object_show(bx2);2891
2892evas_object_resize(win, 320 * elm_config_scale_get(),2893300 * elm_config_scale_get());2894
2895elm_object_focus_set(win, EINA_TRUE);2896evas_object_show(win);2897}
2898
2899void
2900test_entry_emoticon(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,2901void *event_info EINA_UNUSED)2902{
2903Evas_Object *win, *en;2904
2905win = elm_win_util_standard_add("entry-emoticon", "Entry Emoticon");2906elm_win_autodel_set(win, EINA_TRUE);2907
2908en = elm_entry_add(win);2909evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2910elm_win_resize_object_add(win, en);2911elm_entry_scrollable_set(en, EINA_TRUE);2912elm_object_text_set(en,2913"angry <item absize=64x64 vsize=ascent href=emoticon/angry></item> <br>"2914"angry-shout <item absize=64x64 vsize=ascent href=emoticon/angry-shout></item> <br>"2915"crazy-laugh <item absize=64x64 vsize=ascent href=emoticon/crazy-laugh></item> <br>"2916"evil-laugh <item absize=64x64 vsize=ascent href=emoticon/evil-laugh></item> <br>"2917"evil <item absize=64x64 vsize=ascent href=emoticon/evil></item> <br>"2918"goggle-smile <item absize=64x64 vsize=ascent href=emoticon/goggle-smile></item> <br>"2919"grumpy <item absize=64x64 vsize=ascent href=emoticon/grumpy></item> <br>"2920"guilty <item absize=64x64 vsize=ascent href=emoticon/guilty></item> <br>"2921"haha <item absize=64x64 vsize=ascent href=emoticon/haha></item> <br>"2922"happy-panting <item absize=64x64 vsize=ascent href=emoticon/happy-panting></item> <br>"2923"happy <item absize=64x64 vsize=ascent href=emoticon/happy></item> <br>"2924"indifferent <item absize=64x64 vsize=ascent href=emoticon/indifferent></item> <br>"2925"kiss <item absize=64x64 vsize=ascent href=emoticon/kiss></item> <br>"2926"knowing-grin <item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item> <br>"2927"laugh <item absize=64x64 vsize=ascent href=emoticon/laugh></item> <br>"2928"little-bit-sorry <item absize=64x64 vsize=ascent href=emoticon/little-bit-sorry></item> <br>"2929"love-lots <item absize=64x64 vsize=ascent href=emoticon/love-lots></item> <br>"2930"love <item absize=64x64 vsize=ascent href=emoticon/love></item> <br>"2931"minimal-smile <item absize=64x64 vsize=ascent href=emoticon/minimal-smile></item> <br>"2932"not-happy <item absize=64x64 vsize=ascent href=emoticon/not-happy></item> <br>"2933"not-impressed <item absize=64x64 vsize=ascent href=emoticon/not-impressed></item> <br>"2934"omg <item absize=64x64 vsize=ascent href=emoticon/omg></item> <br>"2935"opensmile <item absize=64x64 vsize=ascent href=emoticon/opensmile></item> <br>"2936"smile <item absize=64x64 vsize=ascent href=emoticon/smile></item> <br>"2937"sorry <item absize=64x64 vsize=ascent href=emoticon/sorry></item> <br>"2938"squint-laugh <item absize=64x64 vsize=ascent href=emoticon/squint-laugh></item> <br>"2939"surprised <item absize=64x64 vsize=ascent href=emoticon/surprised></item> <br>"2940"suspicious <item absize=64x64 vsize=ascent href=emoticon/suspicious></item> <br>"2941"tongue-dangling <item absize=64x64 vsize=ascent href=emoticon/tongue-dangling></item> <br>"2942"tongue-poke <item absize=64x64 vsize=ascent href=emoticon/tongue-poke></item> <br>"2943"uh <item absize=64x64 vsize=ascent href=emoticon/uh></item> <br>"2944"unhappy <item absize=64x64 vsize=ascent href=emoticon/unhappy></item> <br>"2945"very-sorry <item absize=64x64 vsize=ascent href=emoticon/very-sorry></item> <br>"2946"what <item absize=64x64 vsize=ascent href=emoticon/what></item> <br>"2947"wink <item absize=64x64 vsize=ascent href=emoticon/wink></item> <br>"2948"worried <item absize=64x64 vsize=ascent href=emoticon/worried></item> <br>"2949"wtf <item absize=64x64 vsize=ascent href=emoticon/wtf></item> <br>"2950);2951evas_object_show(en);2952elm_object_focus_set(en, EINA_TRUE);2953
2954evas_object_resize(win, 400 * elm_config_scale_get(),2955500 * elm_config_scale_get());2956evas_object_show(win);2957}
2958
2959static void2960password_entry_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)2961{
2962printf("Password : %s\n", elm_entry_entry_get(obj));2963}
2964
2965static void2966show_password_check_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)2967{
2968Evas_Object *en = (Evas_Object *)data;2969Eina_Bool state = elm_check_state_get(obj);2970
2971if (state)2972{2973printf(" * Show Password...\n");2974elm_object_text_set(obj, "Hide Password");2975elm_entry_password_set(en, EINA_FALSE);2976}2977else2978{2979printf(" * Hide Password...\n");2980elm_object_text_set(obj, "Show Password");2981elm_entry_password_set(en, EINA_TRUE);2982}2983}
2984
2985void
2986test_entry_password(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)2987{
2988Evas_Object *win, *bx, *en, *ck;2989
2990edje_password_show_last_set(EINA_TRUE);2991edje_password_show_last_timeout_set(-1);2992
2993win = elm_win_util_standard_add("entry", "Entry");2994elm_win_autodel_set(win, EINA_TRUE);2995
2996bx = elm_box_add(win);2997evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);2998elm_win_resize_object_add(win, bx);2999evas_object_show(bx);3000
3001en = elm_entry_add(bx);3002elm_entry_single_line_set(en, EINA_TRUE);3003elm_entry_scrollable_set(en, EINA_TRUE);3004elm_entry_password_set(en, EINA_TRUE);3005elm_object_part_text_set(en, "elm.guide", "Enter Your Password");3006evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);3007evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);3008elm_box_pack_end(bx, en);3009evas_object_show(en);3010
3011evas_object_smart_callback_add(en, "changed", password_entry_changed_cb, NULL);3012
3013ck = elm_check_add(bx);3014elm_object_text_set(ck, "Show Password");3015evas_object_smart_callback_add(ck, "changed", show_password_check_changed_cb, en);3016elm_box_pack_end(bx, ck);3017evas_object_show(ck);3018
3019evas_object_resize(win, 300 * elm_config_scale_get(),3020100 * elm_config_scale_get());3021evas_object_show(win);3022}
3023
3024