#ifdef HAVE_CONFIG_H # include "elementary_config.h" #endif #define EO_BETA_API #include static void my_entry_bt_1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_object_text_set(en, ""); } static void my_entry_bt_2(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; const char *s = elm_object_text_get(en); printf("ENTRY:\n"); if (s) printf("%s\n", s); printf("ENTRY PLAIN UTF8:\n"); if (s) { s = elm_entry_markup_to_utf8(s); if (s) { printf("%s\n", s); free((char *)s); } } } static void my_entry_bt_3(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; const char *s = elm_entry_selection_get(en); int start = 0, end = 0; elm_entry_select_region_get(en, &start, &end); printf("SELECTION REGION: %d - %d\n", start, end); printf("SELECTION:\n"); if (s) printf("%s\n", s); printf("SELECTION PLAIN UTF8:\n"); if (s) { s = elm_entry_markup_to_utf8(s); if (s) { printf("%s\n", s); free((char *)s); } } } static void my_entry_bt_4(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_entry_insert(en, "Insert some BOLD text"); } static void my_entry_bt_5(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_scrollable_set(en, !elm_entry_scrollable_get(en)); } static void my_entry_bt_6(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; static Elm_Wrap_Type wr = ELM_WRAP_NONE; wr++; if (wr == ELM_WRAP_LAST) wr = ELM_WRAP_NONE; printf("wr: %i\n", wr); elm_entry_line_wrap_set(en, wr); } static void my_entry_bt_7(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_editable_set(en, !elm_entry_editable_get(en)); } static void changed_cb1(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *ck = data; printf("ck %p to %i\n", obj, elm_check_state_get(obj)); elm_config_context_menu_disabled_set(elm_check_state_get(obj)); printf("ck2 %p is now %i\n", ck, elm_check_state_get(ck)); } static void select_allow_check_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_select_allow_set(en, elm_check_state_get(obj)); if (elm_check_state_get(obj)) printf("Entry %p is now selectable.\n", en); else printf("Entry %p is now unselectable.\n", en); } void test_entry(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx2, *bx3, *bt, *en, *ck; char buf[4096]; win = elm_win_util_standard_add("entry", "Entry"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); en = elm_entry_add(win); elm_entry_line_wrap_set(en, ELM_WRAP_NONE); snprintf(buf, sizeof(buf), "This is an entry widget in this window that
" "uses markup like this for styling and
" "formatting like this, as well as
" "links in the text, so enter text
" "in here to edit it. By the way, links are
" "called Anchors so you will need
" "to refer to them this way.
" "
" "Also you can stick in items with (relsize + ascent): " "" " (full) " "" " (to the left)
" "Also (size + ascent): " "" " (full) " "" " (before this)
" "And as well (absize + ascent): " "" " (full) " "" " or even paths to image files on disk too like: " "" " ... end." , elm_app_data_dir_get() ); elm_object_text_set(en, buf); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx, en); evas_object_show(en); elm_object_focus_set(en, EINA_TRUE); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Clr"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_1, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Prnt"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_2, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Sel"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_3, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Ins"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_4, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Scrl"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_5, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Wr"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_6, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Edit"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_7, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bx3 = elm_box_add(win); elm_box_horizontal_set(bx3, EINA_TRUE); evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL); ck = elm_check_add(win); elm_object_text_set(ck, "Context Menu Disable"); evas_object_smart_callback_add(ck, "changed", changed_cb1, ck); elm_box_pack_end(bx3, ck); evas_object_show(ck); ck = elm_check_add(win); elm_object_text_set(ck, "Select Allow"); elm_check_state_set(ck, elm_entry_select_allow_get(en)); evas_object_smart_callback_add(ck, "changed", select_allow_check_changed_cb, en); elm_box_pack_end(bx3, ck); evas_object_show(ck); elm_box_pack_end(bx, bx3); elm_box_pack_end(bx, bx2); evas_object_show(bx3); evas_object_show(bx2); evas_object_show(win); } static void my_scrolled_entry_bt_1(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_object_text_set(en, ""); } static void my_scrolled_entry_bt_2(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; const char *s = elm_object_text_get(en); printf("ENTRY:\n"); if (s) printf("%s\n", s); printf("ENTRY PLAIN UTF8:\n"); if (s) { s = elm_entry_markup_to_utf8(s); if (s) { printf("%s\n", s); free((char *)s); } } } static void my_scrolled_entry_bt_3(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; const char *s = elm_entry_selection_get(en); int start = 0, end = 0; elm_entry_select_region_get(en, &start, &end); printf("SELECTION REGION: %d - %d\n", start, end); printf("SELECTION:\n"); if (s) printf("%s\n", s); printf("SELECTION PLAIN UTF8:\n"); if (s) { s = elm_entry_markup_to_utf8(s); if (s) { printf("%s\n", s); free((char *)s); } } } static void my_scrolled_entry_bt_4(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_entry_insert(en, "Insert some BOLD text"); } static void my_scrolled_entry_bt_5(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; const char *s = elm_object_text_get(en); printf("PASSWORD: '%s'\n", s ? s : ""); } static void scrolled_anchor_test(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_entry_insert(en, "ANCHOR CLICKED"); } static void _item_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) { Elm_Entry_Context_Menu_Item *item = (Elm_Entry_Context_Menu_Item *)event_info; printf("\ncurrent selected text = %s\n", elm_entry_context_menu_item_label_get(item)); } static void _entry_rejected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Elm_Entry_Filter_Accept_Set *accept_set = data; if (!accept_set) return; if (accept_set->accepted) printf("REJECTED: This entry only accepts the following character set: [%s]\n", accept_set->accepted); else printf("REJECTED: This entry rejects the following character set: [%s]\n", accept_set->rejected); } static void _end_show_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_end_visible_set(en, EINA_TRUE); } static void _end_hide_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_end_visible_set(en, EINA_FALSE); } static Eina_Bool _context_menu_show_cb(void *data EINA_UNUSED, const Eo_Event *event) { elm_entry_context_menu_clear(event->object); elm_entry_context_menu_item_add(event->object, "MenuD1", NULL, ELM_ICON_NONE, _item_cb, NULL); elm_entry_context_menu_item_add(event->object, "MenuD2", NULL, ELM_ICON_NONE, _item_cb, NULL); return EO_CALLBACK_CONTINUE; } void test_entry_scrolled(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx2, *bx3, *bx4, *bt, *en, *en_p, *sp, *entry, *label; static Elm_Entry_Filter_Accept_Set digits_filter_data, digits_filter_data2; static Elm_Entry_Filter_Limit_Size limit_filter_data, limit_filter_data2; win = elm_win_util_standard_add("entry-scrolled", "Entry Scrolled"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); /* disabled entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_object_text_set(en, "Disabled entry"); elm_entry_single_line_set(en, EINA_TRUE); elm_object_disabled_set(en, EINA_TRUE); evas_object_show(en); elm_box_pack_end(bx, en); /* entry with guide */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_object_part_text_set(en, "guide", "This string is guide"); elm_entry_single_line_set(en, EINA_TRUE); evas_object_show(en); elm_box_pack_end(bx, en); /* password entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_password_set(en, EINA_TRUE); elm_entry_single_line_set(en, EINA_TRUE); elm_object_text_set(en, "Access denied, give up!"); elm_object_disabled_set(en, EINA_TRUE); evas_object_show(en); elm_box_pack_end(bx, en); /* multi-line disable entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON); elm_object_disabled_set(en, EINA_TRUE); elm_entry_context_menu_item_add(en, "Hello", NULL, ELM_ICON_NONE, NULL, NULL); elm_entry_context_menu_item_add(en, "World", NULL, ELM_ICON_NONE, NULL, NULL); elm_object_text_set(en, "Multi-line disabled entry widget :)
" "We can use markup like this for styling and
" "formatting like this, as well as
" "links in the text," "but it won't be editable or clickable."); evas_object_show(en); elm_box_pack_end(bx, en); sp = elm_separator_add(win); elm_separator_horizontal_set(sp, EINA_TRUE); elm_box_pack_end(bx, sp); evas_object_show(sp); /* Single line selected entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_object_text_set(en, "This is a single line"); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_single_line_set(en, EINA_TRUE); elm_entry_select_all(en); elm_entry_context_menu_item_add(en, "Menu1", NULL, ELM_ICON_NONE, _item_cb, NULL); elm_entry_context_menu_item_add(en, "Menu2", NULL, ELM_ICON_NONE, _item_cb, NULL); evas_object_show(en); elm_box_pack_end(bx, en); /* Only digits entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_object_text_set(en, "01234"); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_single_line_set(en, EINA_TRUE); evas_object_show(en); elm_box_pack_end(bx, en); digits_filter_data.accepted = "0123456789"; digits_filter_data.rejected = NULL; elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data); evas_object_smart_callback_add(en, "rejected", _entry_rejected_cb, &digits_filter_data); /* No digits entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_object_text_set(en, "No numbers here"); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_single_line_set(en, EINA_TRUE); evas_object_show(en); elm_box_pack_end(bx, en); digits_filter_data2.accepted = NULL; digits_filter_data2.rejected = "0123456789"; elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data2); evas_object_smart_callback_add(en, "rejected", _entry_rejected_cb, &digits_filter_data2); /* Size limited entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_object_text_set(en, "Just 20 chars"); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_single_line_set(en, EINA_TRUE); evas_object_show(en); elm_box_pack_end(bx, en); limit_filter_data.max_char_count = 20; limit_filter_data.max_byte_count = 0; elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data); /* Byte size limited entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_object_text_set(en, "And now only 30 bytes"); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_single_line_set(en, EINA_TRUE); evas_object_show(en); elm_box_pack_end(bx, en); limit_filter_data2.max_char_count = 0; limit_filter_data2.max_byte_count = 30; elm_entry_markup_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data2); /* Single line password entry */ en_p = elm_entry_add(win); elm_entry_scrollable_set(en_p, EINA_TRUE); evas_object_size_hint_weight_set(en_p, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en_p, EVAS_HINT_FILL, 0.5); elm_scroller_policy_set(en_p, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_object_text_set(en_p, "Password here"); elm_entry_single_line_set(en_p, EINA_TRUE); elm_entry_password_set(en_p, EINA_TRUE); evas_object_show(en_p); elm_box_pack_end(bx, en_p); /* Last password show entry */ bx4 = elm_box_add(win); evas_object_size_hint_weight_set(bx4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(bx4); label = elm_label_add(bx4); elm_object_text_set(label, "Last password show entry"); evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx4, label); evas_object_show(label); en = elm_entry_add(bx4); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_password_set(en, EINA_TRUE); elm_object_text_set(en, "Last password show"); elm_entry_single_line_set(en, EINA_TRUE); edje_password_show_last_set(EINA_TRUE); edje_password_show_last_timeout_set(-1); evas_object_show(en); elm_box_pack_end(bx4, en); elm_box_pack_end(bx, bx4); /* entry with icon/end widgets */ entry = elm_entry_add(win); elm_entry_scrollable_set(entry, EINA_TRUE); elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_single_line_set(entry, EINA_TRUE); evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_icon_add(win); elm_icon_standard_set(bt, "go-home"); evas_object_size_hint_min_set(bt, 48, 48); evas_object_color_set(bt, 128, 0, 0, 128); evas_object_show(bt); elm_object_part_content_set(entry, "icon", bt); bt = elm_icon_add(win); elm_icon_standard_set(bt, "delete"); evas_object_color_set(bt, 128, 0, 0, 128); evas_object_size_hint_min_set(bt, 48, 48); evas_object_show(bt); elm_object_part_content_set(entry, "end", bt); elm_object_text_set(entry, "entry with icon and end objects. For the test of show/hide end, text should be long long..."); evas_object_show(entry); elm_box_pack_end(bx, entry); /* markup entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON); elm_object_text_set(en, "This is an entry widget in this window that
" "uses markup like this for styling and
" "formatting like this, as well as
" "links in the text, so enter text
" "in here to edit it. By them way, links are
" "called Anchors so you will need
" "to refer to them this way. At the end here is a really long " "line to test line wrapping to see if it works. But just in " "case this line is not long enough I will add more here to " "really test it out, as Elementary really needs some " "good testing to see if entry widgets work as advertised."); evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en); evas_object_show(en); elm_box_pack_end(bx, en); eo_event_callback_add(en, ELM_ENTRY_EVENT_CONTEXT_OPEN, _context_menu_show_cb, NULL); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Clear"); evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_1, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Print"); evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_2, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Print pwd"); evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_5, en_p); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Selection"); evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_3, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Insert"); evas_object_smart_callback_add(bt, "clicked", my_scrolled_entry_bt_4, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx3 = elm_box_add(win); elm_box_horizontal_set(bx3, EINA_TRUE); evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "End Show"); evas_object_smart_callback_add(bt, "clicked", _end_show_cb, entry); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx3, bt); elm_object_focus_allow_set(bt, 0); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "End Hide"); evas_object_smart_callback_add(bt, "clicked", _end_hide_cb, entry); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx3, bt); elm_object_focus_allow_set(bt, 0); evas_object_show(bt); elm_box_pack_end(bx, bx3); evas_object_show(bx3); elm_object_focus_set(win, EINA_TRUE); evas_object_resize(win, 320, 500); evas_object_show(win); } static void my_en_bt_clr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_end_set(en); } void test_entry_on_page_scroll(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *sc, *bx, *ly, *rect, *en, *btn, *lb; char buf[PATH_MAX]; win = elm_win_util_standard_add("entry-on-page-scroll", "Entry on Page Scroll"); elm_win_autodel_set(win, EINA_TRUE); sc = elm_scroller_add(win); evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_scroller_page_relative_set(sc, 1.0, 0.0); elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_scroller_page_scroll_limit_set(sc, 1, 0); elm_win_resize_object_add(win, sc); evas_object_show(sc); bx = elm_box_add(sc); elm_box_horizontal_set(bx, EINA_TRUE); elm_object_content_set(sc, bx); evas_object_show(bx); ly = elm_layout_add(bx); snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get()); elm_layout_file_set(ly, buf, "page_layout"); rect = evas_object_rectangle_add(evas_object_evas_get(ly)); evas_object_color_set(rect, 50, 0, 0, 50); elm_object_part_content_set(ly, "page", rect); en = elm_entry_add(ly); elm_object_part_text_set(en, "guide", "Entry area"); elm_object_text_set(en, "This is very long text, it is longer than width of this page. So if scroller is moved to next page, that is bug when you click under button and then click this entry text"); elm_object_part_content_set(ly, "element1", en); elm_entry_scrollable_set(en, EINA_TRUE); elm_entry_single_line_set(en, EINA_TRUE); evas_object_show(en); btn = elm_button_add(ly); elm_object_text_set(btn, "Click this and then click entry"); elm_object_part_content_set(ly, "element2", btn); evas_object_smart_callback_add(btn, "clicked", my_en_bt_clr, en); evas_object_show(btn); elm_object_focus_set(btn, EINA_TRUE); elm_object_part_text_set(ly, "text", "Page1"); elm_box_pack_end(bx, ly); evas_object_show(ly); ly = elm_layout_add(bx); snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get()); elm_layout_file_set(ly, buf, "page_layout"); rect = evas_object_rectangle_add(evas_object_evas_get(ly)); evas_object_color_set(rect, 0, 50, 0, 50); elm_object_part_content_set(ly, "page", rect); elm_object_part_text_set(ly, "text", "Page2"); lb = elm_label_add(ly); elm_object_text_set(lb, "It should be shown by user's scroll"); elm_object_part_content_set(ly, "element2", lb); evas_object_show(lb); elm_box_pack_end(bx, ly); evas_object_show(ly); evas_object_resize(win, 400, 550); evas_object_show(win); } static void my_ent_bt_clr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_object_text_set(en, ""); } static void my_ent_bt_pri(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; const char *s = elm_object_text_get(en); printf("ENTRY:\n"); if (s) printf("%s\n", s); printf("ENTRY PLAIN UTF8:\n"); if (s) { s = elm_entry_markup_to_utf8(s); if (s) { printf("%s\n", s); free((char *)s); } } } static void my_ent_bt_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; const char *s = elm_entry_selection_get(en); int start = 0, end = 0; elm_entry_select_region_get(en, &start, &end); printf("SELECTION REGION: %d - %d\n", start, end); printf("SELECTION:\n"); if (s) printf("%s\n", s); printf("SELECTION PLAIN UTF8:\n"); if (s) { s = elm_entry_markup_to_utf8(s); if (s) { printf("%s\n", s); free((char *)s); } } } static void my_ent_bt_all(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_select_all(en); } static void my_ent_bt_non(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_select_none(en); } static void my_ent_bt_region(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_select_region_set(en, 10, 16); } static void my_ent_bt_ins(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_entry_insert(en, "Insert text"); } static void my_ent_bt_lef(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_prev(en); } static void my_ent_bt_rig(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_next(en); } static void my_ent_bt_up_(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_up(en); } static void my_ent_bt_dow(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_down(en); } static void my_ent_bt_beg(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_begin_set(en); } static void my_ent_bt_end(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_end_set(en); } static void my_ent_bt_lbe(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_line_begin_set(en); } static void my_ent_bt_len(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_line_end_set(en); } static void my_ent_bt_sbe(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_selection_begin(en); } static void my_ent_bt_sen(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_cursor_selection_end(en); } static void my_ent_bt_fmt(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; printf("IS FORMAT: %i\n", (int)elm_entry_cursor_is_format_get(en)); } static void my_ent_bt_vfm(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; printf("IS VISIBLE FORMAT %i\n", (int)elm_entry_cursor_is_visible_format_get(en)); } static void my_ent_bt_chr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; printf("CHAR '%s'\n", elm_entry_cursor_content_get(en)); } static void my_ent_bt_cut(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_selection_cut(en); } static void my_ent_bt_cop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_selection_copy(en); } static void my_ent_bt_pas(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_selection_paste(en); } static char *user_style = "DEFAULT='font_size=16 color=#F00'" "em='+ backing=on backing_color=#FFF'" "grn='+ color=#0F0'" "ul='+ underline=on underline_color=#AAA'"; static void ent_bt_style_user_peek(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; const char* cur_style = elm_entry_text_style_user_peek(en); if (cur_style) printf("Current style user: %s\n", cur_style); else printf("Style user stack is empty.\n"); } static void ent_bt_style_user_pop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_text_style_user_pop(en); printf("Style user popped\n"); } static void ent_bt_style_user_push(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_text_style_user_push(en, user_style); printf("Style user pushed\n"); } void test_entry_style_user(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *hbx, *en, *bt, *bt2; win = elm_win_util_standard_add("entry-user-style", "Entry User Style"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); en = elm_entry_add(bx); elm_entry_line_wrap_set(en, ELM_WRAP_MIXED); elm_entry_text_style_user_push(en, user_style); elm_object_text_set(en, "Default style
" "Change a standard tag (backing)
" "Create a custom tag (green)
" "
    Create a custom tag (underline)

" "Unnamed tag (underline double)
" ); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx, en); evas_object_show(en); elm_object_focus_set(en, EINA_TRUE); hbx = elm_box_add(bx); elm_box_horizontal_set(hbx, EINA_TRUE); elm_box_pack_end(bx, hbx); evas_object_show(hbx); bt = elm_button_add(hbx); elm_object_text_set(bt, "Peek"); evas_object_smart_callback_add(bt, "clicked", ent_bt_style_user_peek, en); elm_box_pack_end(hbx, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt2 = elm_button_add(hbx); elm_object_text_set(bt2, "Pop"); evas_object_smart_callback_add(bt2, "clicked", ent_bt_style_user_pop, en); elm_box_pack_end(hbx, bt2); elm_object_focus_allow_set(bt2, EINA_FALSE); evas_object_show(bt2); bt2 = elm_button_add(hbx); elm_object_text_set(bt2, "Push"); evas_object_smart_callback_add(bt2, "clicked", ent_bt_style_user_push, en); elm_box_pack_end(hbx, bt2); elm_object_focus_allow_set(bt2, EINA_FALSE); evas_object_show(bt2); evas_object_resize(win, 300, 300); evas_object_show(win); } static char *default_style_text = "Elementary typography
" "" "Basic tags
" "Elm by default provide the bold, the italic, the " "hilight and the link tags.
" "" "Font sizes
" "You can also use the big or bigger and " "the small or smaller tags.
" "" "Status indicators
" "info, success, warning and failure
" "" "Forms attributes
" "Song: The show must go on
" "Artist: Queen
" "Album: Innuendo
" "" "Syntax highlight
" "" "#include <stdlib.h>
" "#include <Evas.h>
" "
" "#define MESSAGE \"Hello World\"
" "
" "/* Prints a message to standard output */
" "void print_message(const char *msg) {
" " printf(\"%s\\n\", msg);
" "}
" "
" "int main(int argc, char *argv[]) {
" " int num_int = 123;
" " float num_float = 0.999;
" " char *str = \"This is a string\";
" " Evas_Object *obj = NULL;
" " print_message(MESSAGE);
" " return 0;
" "}
" "" "+diff line added
" "-diff line removed
" " diff line changed
" "
"; static void ent_bt_def_style_disabled(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_object_disabled_set(en, elm_check_state_get(obj)); } static void ent_bt_def_style_scrollable(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_scrollable_set(en, elm_check_state_get(obj)); } static void ent_bt_def_style_markup(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en = data; if (elm_check_state_get(obj)) { char *markup = elm_entry_utf8_to_markup(default_style_text); elm_object_text_set(en, markup); free(markup); } else elm_object_text_set(en, default_style_text); } static void ent_bt_def_style_wrap(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en = data; if (elm_check_state_get(obj)) elm_entry_line_wrap_set(en, ELM_WRAP_NONE); else elm_entry_line_wrap_set(en, ELM_WRAP_WORD); } void test_entry_style_default(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *vbx, *en, *o; win = elm_win_util_standard_add("entry-style", "Entry Default Style"); elm_win_autodel_set(win, EINA_TRUE); evas_object_resize(win, 400, 400); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); en = elm_entry_add(win); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, default_style_text); elm_entry_editable_set(en, EINA_TRUE); elm_entry_line_wrap_set(en, ELM_WRAP_WORD); elm_box_pack_end(bx, en); evas_object_show(en); o = elm_separator_add(win); elm_separator_horizontal_set(o, EINA_TRUE); elm_box_pack_end(bx, o); evas_object_show(o); vbx = elm_box_add(win); elm_box_horizontal_set(vbx, EINA_TRUE); elm_box_pack_end(bx, vbx); evas_object_show(vbx); o = elm_check_add(win); elm_object_text_set(o, "show markup"); evas_object_smart_callback_add(o, "changed", ent_bt_def_style_markup, en); elm_box_pack_end(vbx, o); evas_object_show(o); o = elm_check_add(win); elm_object_text_set(o, "disabled"); evas_object_smart_callback_add(o, "changed", ent_bt_def_style_disabled, en); elm_box_pack_end(vbx, o); evas_object_show(o); o = elm_check_add(win); elm_object_text_set(o, "scrollable"); evas_object_smart_callback_add(o, "changed", ent_bt_def_style_scrollable, en); elm_box_pack_end(vbx, o); evas_object_show(o); o = elm_check_add(win); elm_object_text_set(o, "no wrap"); evas_object_smart_callback_add(o, "changed", ent_bt_def_style_wrap, en); elm_box_pack_end(vbx, o); evas_object_show(o); evas_object_show(win); } static void _entry_activated_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) { printf("entry is activated: %s\n", elm_entry_entry_get(obj)); } void test_entry3(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx2, *bt, *en; win = elm_win_util_standard_add("entry3", "Entry 3"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); /* Single line selected entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_object_text_set(en, "This is a single line"); elm_entry_single_line_set(en, EINA_TRUE); evas_object_smart_callback_add(en, "activated", _entry_activated_cb, NULL); elm_box_pack_end(bx, en); evas_object_show(en); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Clr"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Pri"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Sel"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "All"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Non"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Region"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_region, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Ins"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Lef"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Rig"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Up "); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Dow"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Beg"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "End"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "LBe"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "LEn"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "SBe"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "SEn"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Fmt"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "VFm"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Chr"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Cut"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Cop"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Pas"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); /* markup entry */ en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, "This is an entry widget in this window that
" "uses markup like this for styling and
" "formatting like this, as well as
" "links in the text, so enter text
" "in here to edit it. By them way, links are
" "called Anchors so you will need
" "to refer to them this way. At the end here is a really long " "line to test line wrapping to see if it works. But just in " "case this line is not long enough I will add more here to " "really test it out, as Elementary really needs some " "good testing to see if entry widgets work as advertised." ); evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en); elm_box_pack_end(bx, en); evas_object_show(en); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Clr"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Pri"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Sel"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "All"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Non"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Ins"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Lef"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Rig"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Up "); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Dow"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Beg"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "LEn"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "SBe"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "SEn"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Fmt"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "VFm"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Chr"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Cut"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Cop"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Pas"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); evas_object_resize(win, 320, 480); elm_object_focus_set(win, EINA_TRUE); evas_object_show(win); } void test_entry4(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *ly, *en; char buf[PATH_MAX]; win = elm_win_util_standard_add("entry4", "Entry 4"); elm_win_autodel_set(win, EINA_TRUE); ly = elm_layout_add(win); snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get()); elm_layout_file_set(ly, buf, "layout"); evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, ly); evas_object_show(ly); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_object_text_set(en, "This is a single line"); elm_entry_single_line_set(en, EINA_TRUE); elm_object_part_content_set(ly, "element1", en); evas_object_show(en); en = elm_entry_add(win); elm_entry_line_wrap_set(en, ELM_WRAP_NONE); elm_object_text_set(en, "This is an entry widget
" "that uses markup
" "like this and has
" "no scroller, so you can
" "use it more flexibly."); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_part_content_set(ly, "element2", en); evas_object_show(en); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, "This is an entry widget in this window that
" "uses markup like this for styling and
" "formatting like this, as well as
" "links in the text, so enter text
" "in here to edit it. By them way, links are
" "called Anchors so you will need
" "to refer to them this way. At the end here is a really long " "line to test line wrapping to see if it works. But just in " "case this line is not long enough I will add more here to " "really test it out, as Elementary really needs some " "good testing to see if entry widgets work as advertised." ); evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en); elm_object_part_content_set(ly, "element3", en); evas_object_show(en); evas_object_show(win); } void test_entry5(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx2, *bt, *en; win = elm_win_util_standard_add("entry5", "Entry 5"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); elm_entry_line_wrap_set(en, ELM_WRAP_CHAR); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, "This is an entry widget in this window that " "uses markup like this for styling and " "formatting like this, as well as " "to refer to them this way. At the end here is a really long " "line to test line wrapping to see if it works. But just in " "case this line is not long enough I will add more here to " "really test it out, as Elementary really needs some " "good testing to see if entry widgets work as advertised." ); evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, en); elm_box_pack_end(bx, en); evas_object_show(en); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Clr"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_clr, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Pri"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pri, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Sel"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sel, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "All"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_all, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Non"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_non, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Ins"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_ins, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Lef"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lef, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Rig"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_rig, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Up "); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_up_, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Dow"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_dow, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Beg"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_beg, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "End"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_end, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "LBe"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_lbe, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "LEn"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_len, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "SBe"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sbe, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "SEn"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_sen, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Fmt"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_fmt, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "VFm"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_vfm, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Chr"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_chr, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Cut"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cut, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Cop"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_cop, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Pas"); evas_object_smart_callback_add(bt, "clicked", my_ent_bt_pas, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); elm_box_pack_end(bx, bx2); evas_object_show(bx2); evas_object_resize(win, 320, 480); elm_object_focus_set(win, EINA_TRUE); evas_object_show(win); } void test_entry6(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *en; win = elm_win_util_standard_add("entry6", "Entry 6"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); elm_entry_line_wrap_set(en, ELM_WRAP_CHAR); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, "input_panel_enabled: TRUE.
" "When this entry gets a focus, virtual keyboard will be shown " "in illume environment."); elm_box_pack_end(bx, en); evas_object_show(en); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); elm_entry_line_wrap_set(en, ELM_WRAP_CHAR); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, "input_panel_enabled: FALSE.
" "This entry doesn't allow to show virtual keyboard automatically.
" "it is used in case that wants its own keypad such as calculator."); elm_entry_input_panel_enabled_set(en, EINA_FALSE); elm_box_pack_end(bx, en); evas_object_show(en); evas_object_resize(win, 320, 300); elm_object_focus_set(win, EINA_TRUE); evas_object_show(win); } static void changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object*)data; elm_entry_editable_set(en, elm_check_state_get(obj)); } static void en_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *sp, *en; sp = (Evas_Object *)data; en = (Evas_Object *)obj; elm_spinner_min_max_set(sp, 0, strlen(elm_object_text_get(en))); } static void sp_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en, *sp; en = (Evas_Object *)data; sp = (Evas_Object *)obj; elm_entry_cursor_pos_set(en, elm_spinner_value_get(sp)); elm_object_focus_set(en, EINA_TRUE); } static void add_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object *)data; elm_entry_context_menu_item_add(en, "item", NULL, ELM_ICON_NONE, NULL, NULL); } static void clear_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object *)data; elm_entry_context_menu_clear(en); } static Evas_Object * item_provider(void *images EINA_UNUSED, Evas_Object *en, const char *item) { Evas_Object *o = NULL;; char buf[1024]; if (!strcmp(item, "itemprovider")) { snprintf(buf, sizeof(buf), "%s/images/icon_00.png", elm_app_data_dir_get()); o = evas_object_image_filled_add(evas_object_evas_get(en)); evas_object_image_file_set(o, buf, NULL); } return o; } static Evas_Object * prepend_item_provider(void *images EINA_UNUSED, Evas_Object *en, const char *item) { Evas_Object *o = NULL;; char buf[1024]; if (!strcmp(item, "itemprovider")) { snprintf(buf, sizeof(buf), "%s/images/icon_10.png", elm_app_data_dir_get()); o = evas_object_image_filled_add(evas_object_evas_get(en)); evas_object_image_file_set(o, buf, NULL); } return o; } static void prepend_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object *)data; elm_entry_item_provider_prepend(en, prepend_item_provider, NULL); elm_object_text_set(en, "Item Provider" "" ); } static void remove_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object *)data; elm_entry_item_provider_remove(en, item_provider, NULL); elm_entry_item_provider_remove(en, prepend_item_provider, NULL); elm_object_text_set(en, "Item Provider" "" ); } static void enable_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object*)data; elm_entry_context_menu_disabled_set(en, elm_check_state_get(obj)); } void test_entry7(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *gd, *bg, *en, *tg, *lb, *sp; Evas_Object *bt, *en2; win = elm_win_util_standard_add("entry7", "Entry 7"); elm_win_autodel_set(win, EINA_TRUE); gd = elm_grid_add(win); elm_grid_size_set(gd, 100, 100); evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, gd); evas_object_show(gd); /* upper entry group */ bg = elm_bg_add(win); elm_bg_color_set(bg, 255, 0, 0); elm_grid_pack(gd, bg, 10, 10, 60, 30); evas_object_show(bg); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, "Editable, Cursor Position"); evas_object_show(en); elm_grid_pack(gd, en, 10, 10, 60, 30); tg = elm_check_add(win); evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(tg, "Editable"); elm_check_state_set(tg, EINA_TRUE); evas_object_smart_callback_add(tg, "changed", changed_cb, en); elm_grid_pack(gd, tg, 70, 10, 22, 10); evas_object_show(tg); lb = elm_label_add(win); elm_object_text_set(lb, "Cursor position:"); evas_object_size_hint_weight_set(lb, 0.0, 0.0); evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_grid_pack(gd, lb, 70, 25, 25, 5); evas_object_show(lb); sp = elm_spinner_add(win); elm_spinner_label_format_set(sp, "%1.0f"); elm_spinner_step_set(sp, 1); elm_spinner_wrap_set(sp, ELM_WRAP_CHAR); elm_spinner_min_max_set(sp, 0, strlen(elm_object_text_get(en))); evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_grid_pack(gd, sp, 70, 30, 25, 10); evas_object_smart_callback_add(en, "changed", en_changed_cb, sp); evas_object_smart_callback_add(sp, "delay,changed", sp_changed_cb, en); evas_object_show(sp); /* bottom entry group */ bg = elm_bg_add(win); elm_bg_color_set(bg, 0, 255, 0); elm_grid_pack(gd, bg, 10, 50, 45, 30); evas_object_show(bg); en2 = elm_entry_add(win); elm_entry_scrollable_set(en2, EINA_TRUE); evas_object_size_hint_weight_set(en2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en2, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en2, "Item Provider" "" ); elm_entry_item_provider_append(en2, item_provider, NULL); elm_entry_context_menu_disabled_set(en2, EINA_TRUE); elm_grid_pack(gd, en2, 10, 50, 45, 30); evas_object_show(en2); tg = elm_check_add(win); evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(tg, "Disable Context Menu"); elm_check_state_set(tg, EINA_TRUE); evas_object_smart_callback_add(tg, "changed", enable_changed_cb, en2); elm_grid_pack(gd, tg, 55, 50, 40, 10); evas_object_show(tg); bt = elm_button_add(win); elm_object_text_set(bt, "Add Context Menu"); elm_grid_pack(gd, bt, 55, 60, 40, 10); evas_object_smart_callback_add(bt, "clicked", add_bt_clicked, en2); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Clear Context Menu"); elm_grid_pack(gd, bt, 55, 70, 40, 10); evas_object_smart_callback_add(bt, "clicked", clear_bt_clicked, en2); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Prepend Item Provider"); elm_grid_pack(gd, bt, 10, 80, 45, 10); evas_object_smart_callback_add(bt, "clicked", prepend_bt_clicked, en2); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Remove Item Provider"); elm_grid_pack(gd, bt, 55, 80, 40, 10); evas_object_smart_callback_add(bt, "clicked", remove_bt_clicked, en2); evas_object_show(bt); evas_object_resize(win, 320, 320); evas_object_show(win); } static void filter_prepend_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en, *en2; static Elm_Entry_Filter_Accept_Set digits_filter_data; en = (Evas_Object *)data; en2 = evas_object_data_get(en, "filter-entry"); digits_filter_data.accepted = elm_object_text_get(en2); digits_filter_data.rejected = NULL; elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data); elm_object_text_set(en, "Markup Filter Prepend Test:"); } static void filter_remove_bt_clicked(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object *)data; elm_entry_markup_filter_remove(en, elm_entry_filter_accept_set, NULL); elm_object_text_set(en, "Markup Filter Prepend Test:"); } static void icon_visible_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object*)data; elm_entry_icon_visible_set(en, elm_check_state_get(obj)); } static void end_visible_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object*)data; elm_entry_end_visible_set(en, elm_check_state_get(obj)); } static void horizontal_bounce_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en; Eina_Bool vb; Eina_Bool bounce = elm_check_state_get(obj); en = (Evas_Object*)data; elm_scroller_bounce_get(en, NULL, &vb); elm_scroller_bounce_set(en, bounce, bounce); } static void vertical_bounce_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en; Eina_Bool hb; Eina_Bool bounce = elm_check_state_get(obj); en = (Evas_Object*)data; elm_scroller_bounce_get(en, &hb, NULL); elm_scroller_bounce_set(en, hb, bounce); } void test_entry8(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *gd, *rect, *en, *lb; Evas_Object *bt, *en2; Evas_Object *ch, *en3; Evas_Object *en4; static Elm_Entry_Filter_Limit_Size limit_filter_data; win = elm_win_util_standard_add("entry8", "Entry 8"); elm_win_autodel_set(win, EINA_TRUE); gd = elm_grid_add(win); elm_grid_size_set(gd, 100, 100); evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, gd); evas_object_show(gd); rect = evas_object_rectangle_add(evas_object_evas_get(win)); elm_grid_pack(gd, rect, 5, 5, 90, 10); evas_object_color_set(rect, 125, 125, 255, 255); evas_object_show(rect); en = elm_entry_add(win); elm_entry_scrollable_set(en, EINA_TRUE); elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(en, "Markup Filter Prepend Test"); elm_grid_pack(gd, en, 5, 5, 90, 10); evas_object_show(en); lb = elm_label_add(win); elm_object_text_set(lb, "Markup Filter (20 Characters):"); evas_object_size_hint_weight_set(lb, 0.0, 0.0); evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_grid_pack(gd, lb, 5, 15, 50, 10); evas_object_show(lb); rect = evas_object_rectangle_add(evas_object_evas_get(win)); elm_grid_pack(gd, rect, 55, 15, 40, 10); evas_object_color_set(rect, 0, 125, 255, 255); evas_object_show(rect); en2 = elm_entry_add(win); elm_entry_scrollable_set(en2, EINA_TRUE); elm_scroller_policy_set(en2, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); evas_object_size_hint_weight_set(en2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en2, EVAS_HINT_FILL, EVAS_HINT_FILL); limit_filter_data.max_char_count = 20; limit_filter_data.max_byte_count = 0; elm_entry_markup_filter_append(en2, elm_entry_filter_limit_size, &limit_filter_data); evas_object_data_set(en, "filter-entry", en2); evas_object_show(en2); elm_grid_pack(gd, en2, 55, 15, 40, 10); bt = elm_button_add(win); elm_object_text_set(bt, "Markup Filter Prepend"); elm_grid_pack(gd, bt, 5, 25, 45, 10); evas_object_smart_callback_add(bt, "clicked", filter_prepend_bt_clicked, en); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Markup Filter Remove"); elm_grid_pack(gd, bt, 50, 25, 45, 10); evas_object_smart_callback_add(bt, "clicked", filter_remove_bt_clicked, en); evas_object_show(bt); en3 = elm_entry_add(win); elm_entry_scrollable_set(en3, EINA_TRUE); elm_scroller_policy_set(en3, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); elm_entry_single_line_set(en3, EINA_TRUE); evas_object_size_hint_weight_set(en3, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en3, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(en3); elm_grid_pack(gd, en3, 5, 35, 90, 20); bt = elm_icon_add(win); elm_icon_standard_set(bt, "go-home"); evas_object_size_hint_min_set(bt, 48, 48); evas_object_color_set(bt, 128, 0, 0, 128); evas_object_show(bt); elm_object_part_content_set(en3, "icon", bt); bt = elm_icon_add(win); elm_icon_standard_set(bt, "delete"); evas_object_color_set(bt, 128, 0, 0, 128); evas_object_size_hint_min_set(bt, 48, 48); evas_object_show(bt); elm_object_part_content_set(en3, "end", bt); ch = elm_check_add(win); evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(ch, "Icon Visible"); elm_check_state_set(ch, EINA_TRUE); evas_object_smart_callback_add(ch, "changed", icon_visible_changed_cb, en3); elm_grid_pack(gd, ch, 5, 55, 30, 10); evas_object_show(ch); ch = elm_check_add(win); evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(ch, "End Visible"); elm_check_state_set(ch, EINA_TRUE); evas_object_smart_callback_add(ch, "changed", end_visible_changed_cb, en3); elm_grid_pack(gd, ch, 70, 55, 25, 10); evas_object_show(ch); rect = evas_object_rectangle_add(evas_object_evas_get(win)); elm_grid_pack(gd, rect, 5, 65, 90, 20); evas_object_color_set(rect, 255, 125, 125, 255); evas_object_show(rect); en4 = elm_entry_add(win); elm_object_part_text_set(en4, "guide", "Type in here"); elm_entry_scrollable_set(en4, EINA_TRUE); elm_scroller_bounce_set(en4, EINA_TRUE, EINA_TRUE); elm_entry_autocapital_type_set(en4, EINA_TRUE); evas_object_size_hint_weight_set(en4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en4, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_grid_pack(gd, en4, 5, 65, 90, 20); evas_object_show(en4); ch = elm_check_add(win); evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(ch, "Horizontal Bounce Set"); elm_check_state_set(ch, EINA_TRUE); evas_object_smart_callback_add(ch, "changed", horizontal_bounce_changed_cb, en4); elm_grid_pack(gd, ch, 5, 85, 45, 10); evas_object_show(ch); ch = elm_check_add(win); evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(ch, "Vertical Bounce Set"); elm_check_state_set(ch, EINA_TRUE); evas_object_smart_callback_add(ch, "changed", vertical_bounce_changed_cb, en4); elm_grid_pack(gd, ch, 50, 85, 45, 10); evas_object_show(ch); evas_object_resize(win, 320, 320); evas_object_show(win); } typedef struct { Evas_Object *en_regex; Evas_Object *lb_regex; Evas_Object *en_single; Evas_Object *en_multi; Elm_Validator_Regexp *re; } _test_regex_data_t; static void _test_regex_data_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { _test_regex_data_t *test_data = data; if (test_data->re) elm_validator_regexp_free(test_data->re); free(test_data); } static void _test_regex_bt_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { int status; _test_regex_data_t *test_data = data; Eina_Strbuf *tmp; if (test_data->re) { eo_event_callback_del(test_data->en_single, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re); eo_event_callback_del(test_data->en_multi, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re); elm_validator_regexp_free(test_data->re); } test_data->re = elm_validator_regexp_new(elm_entry_entry_get(test_data->en_regex), NULL); status = elm_validator_regexp_status_get(test_data->re); tmp = eina_strbuf_manage_new(strdup("Regex error: ")); switch (status) { case ELM_REG_NOERROR: { eina_strbuf_append(tmp, "No error. Regex maches to the Entrys text."); break; } case ELM_REG_BADPAT: { eina_strbuf_append(tmp, "Invalid regular expression."); break; } default: break; } if (!status) { eo_event_callback_add(test_data->en_single, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re); eo_event_callback_add(test_data->en_multi, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re); } elm_object_text_set(test_data->lb_regex, eina_strbuf_string_get(tmp)); eina_strbuf_free(tmp); } static inline Evas_Object * _test_regex_entry_add(Evas_Object *parent, Eina_Bool is_singleline) { Evas_Object *entry = elm_entry_add(parent); elm_entry_scrollable_set(entry, EINA_TRUE); elm_entry_single_line_set(entry, is_singleline); evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_entry_editable_set(entry, EINA_TRUE); evas_object_show(entry); return entry; } void test_entry_regex(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *scr, *box; Evas_Object *item, *label, *bt, *sep; _test_regex_data_t *test_data; #define REGEX "^[0-9]*$" test_data = malloc(sizeof(_test_regex_data_t)); win = elm_win_util_standard_add("Entry", "Entry Regex Test"); elm_win_autodel_set(win, EINA_TRUE); evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _test_regex_data_del, test_data); scr = elm_scroller_add(win); elm_scroller_bounce_set(scr, EINA_FALSE, EINA_TRUE); elm_scroller_policy_set(scr, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); evas_object_size_hint_weight_set(scr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, scr); evas_object_show(scr); box = elm_box_add(win); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_box_homogeneous_set(box, EINA_FALSE); elm_object_content_set(scr, box); evas_object_show(box); label = elm_label_add(box); elm_object_text_set(label, "Regular Expression"); elm_box_pack_end(box, label); evas_object_show(label); item = elm_box_add(win); evas_object_size_hint_weight_set(item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(item, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_horizontal_set(item, EINA_TRUE); elm_box_homogeneous_set(item, EINA_FALSE); evas_object_show(item); elm_box_pack_end(box, item); test_data->en_regex = _test_regex_entry_add(item, EINA_TRUE); elm_box_pack_end(item, test_data->en_regex); bt = elm_button_add(item); elm_object_text_set(bt, "Set"); evas_object_smart_callback_add(bt, "clicked", _test_regex_bt_cb, test_data); evas_object_show(bt); elm_box_pack_end(item, bt); test_data->lb_regex = elm_label_add(box); elm_object_text_set(test_data->lb_regex, "Regex error: no error."); elm_box_pack_end(box, test_data->lb_regex); evas_object_show(test_data->lb_regex); sep = elm_separator_add(box); elm_separator_horizontal_set(sep, EINA_TRUE); evas_object_show(sep); elm_box_pack_end(box, sep); label = elm_label_add(box); elm_object_text_set(label, "Test regex in single line entry"); elm_box_pack_end(box, label); evas_object_show(label); test_data->en_single = _test_regex_entry_add(box, EINA_TRUE); elm_box_pack_end(box, test_data->en_single); label = elm_label_add(box); elm_object_text_set(label, "Test regex in multi line entry"); elm_box_pack_end(box, label); evas_object_show(label); test_data->en_multi = _test_regex_entry_add(box, EINA_FALSE); elm_box_pack_end(box, test_data->en_multi); test_data->re = elm_validator_regexp_new(REGEX, NULL); elm_entry_entry_set(test_data->en_regex, REGEX); eo_event_callback_add(test_data->en_single, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re); eo_event_callback_add(test_data->en_multi, ELM_ENTRY_EVENT_VALIDATE, elm_validator_regexp_helper, test_data->re); evas_object_resize(win, 400, 400); evas_object_show(win); #undef REGEX } static void _scrolled_entry_clear(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_object_text_set(en, ""); } static void _scrolled_entry_save(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; elm_entry_file_save(en); } static void auto_save_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Evas_Object *en; en = (Evas_Object*)data; elm_entry_autosave_set(en, elm_check_state_get(obj)); } void test_entry_notepad(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx2, *bt, *np, *ch; win = elm_win_util_standard_add("entry-notepad", "Entry Notepad"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); np = elm_entry_add(win); elm_entry_scrollable_set(np, EINA_TRUE); elm_entry_file_set(np, "note.txt", ELM_TEXT_FORMAT_PLAIN_UTF8); evas_object_size_hint_weight_set(np, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(np, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx, np); evas_object_show(np); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); elm_box_homogeneous_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Clear"); evas_object_smart_callback_add(bt, "clicked", _scrolled_entry_clear, np); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Save"); evas_object_smart_callback_add(bt, "clicked", _scrolled_entry_save, np); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); evas_object_show(bt); ch = elm_check_add(win); evas_object_size_hint_weight_set(ch, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ch, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_text_set(ch, "Auto Save"); elm_check_state_set(ch, EINA_FALSE); evas_object_smart_callback_add(ch, "changed", auto_save_changed_cb, np); elm_box_pack_end(bx2, ch); evas_object_show(ch); elm_box_pack_end(bx, bx2); evas_object_show(bx2); evas_object_resize(win, 320, 300); elm_object_focus_set(win, EINA_TRUE); evas_object_show(win); } void test_entry_emoticon(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *en; win = elm_win_util_standard_add("entry-emoticon", "Entry Emoticon"); elm_win_autodel_set(win, EINA_TRUE); en = elm_entry_add(win); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, en); elm_entry_scrollable_set(en, EINA_TRUE); elm_object_text_set(en, "angry
" "angry-shout
" "crazy-laugh
" "evil-laugh
" "evil
" "goggle-smile
" "grumpy
" "guilty
" "haha
" "happy-panting
" "happy
" "indifferent
" "kiss
" "knowing-grin
" "laugh
" "little-bit-sorry
" "love-lots
" "love
" "minimal-smile
" "not-happy
" "not-impressed
" "omg
" "opensmile
" "smile
" "sorry
" "squint-laugh
" "surprised
" "suspicious
" "tongue-dangling
" "tongue-poke
" "uh
" "unhappy
" "very-sorry
" "what
" "wink
" "worried
" "wtf
" ); evas_object_show(en); elm_object_focus_set(en, EINA_TRUE); evas_object_resize(win, 400, 500); evas_object_show(win); } static void my_efl_ui_text_bt_5(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *en = data; efl_ui_text_scrollable_set(en, !efl_ui_text_scrollable_get(en)); } void test_efl_ui_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Evas_Object *win, *bx, *bx2, *bx3, *bt, *en, *ck; win = elm_win_util_standard_add("entry", "Entry"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); en = eo_add(EFL_UI_TEXT_CLASS, win); printf("Added Efl.Ui.Text object\n"); // elm_entry_line_wrap_set(en, ELM_WRAP_NONE); efl_text_set(en, "Hello world!\nGoodbye world!\n" "Another line\nAnd another line\nYet another line!"); evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx, en); evas_object_show(en); elm_object_focus_set(en, EINA_TRUE); bx2 = elm_box_add(win); elm_box_horizontal_set(bx2, EINA_TRUE); evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL); bt = elm_button_add(win); elm_object_text_set(bt, "Clr"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_1, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Prnt"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_2, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Sel"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_3, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Ins"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_4, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Scrl"); evas_object_smart_callback_add(bt, "clicked", my_efl_ui_text_bt_5, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Wr"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_6, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bt = elm_button_add(win); elm_object_text_set(bt, "Edit"); evas_object_smart_callback_add(bt, "clicked", my_entry_bt_7, en); evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); elm_box_pack_end(bx2, bt); elm_object_focus_allow_set(bt, EINA_FALSE); evas_object_show(bt); bx3 = elm_box_add(win); elm_box_horizontal_set(bx3, EINA_TRUE); evas_object_size_hint_weight_set(bx3, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(bx3, EVAS_HINT_FILL, EVAS_HINT_FILL); ck = elm_check_add(win); elm_object_text_set(ck, "Context Menu Disable"); evas_object_smart_callback_add(ck, "changed", changed_cb1, ck); elm_box_pack_end(bx3, ck); evas_object_show(ck); ck = elm_check_add(win); elm_object_text_set(ck, "Select Allow"); // elm_check_state_set(ck, elm_entry_select_allow_get(en)); evas_object_smart_callback_add(ck, "changed", select_allow_check_changed_cb, en); elm_box_pack_end(bx3, ck); evas_object_show(ck); elm_box_pack_end(bx, bx3); elm_box_pack_end(bx, bx2); evas_object_show(bx3); evas_object_show(bx2); evas_object_show(win); }