big move forward. scrolled entry and entry merge into entry. entry now

can be scrollable or not. scrolled entry now just calls entry calls
and is marked as dperecated to be killed off in the future so no need
to document it etc. edje external also goes.



SVN revision: 60438
This commit is contained in:
Carsten Haitzler 2011-06-17 09:44:31 +00:00
parent 72f17cb4d7
commit c44f45485f
23 changed files with 1034 additions and 2120 deletions

View File

@ -2112,10 +2112,10 @@ _profiles_list_selected_cb(void *data,
en = evas_object_data_get(obj, "prof_desc_entry");
#ifdef ELM_EFREET
if (desk) elm_scrolled_entry_entry_set(en, desk->comment);
if (desk) elm_entry_entry_set(en, desk->comment);
else
#endif
elm_scrolled_entry_entry_set(en, "Unknown");
elm_entry_entry_set(en, "Unknown");
#ifdef ELM_EFREET
if (desk) efreet_desktop_free(desk);
@ -2257,8 +2257,9 @@ _status_config_profiles(Evas_Object *win,
evas_object_show(lb);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_editable_set(en, EINA_FALSE);
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_editable_set(en, EINA_FALSE);
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);
evas_object_show(en);

View File

@ -135,6 +135,7 @@ void test_store(void *data, Evas_Object *obj, void *event_info);
void test_win_inline(void *data, Evas_Object *obj, void *event_info);
void test_grid(void *data, Evas_Object *obj, void *event_info);
void test_glview(void *data, Evas_Object *obj, void *event_info);
void test_3d(void *data, Evas_Object *obj, void *event_info);
#ifdef HAVE_EIO
void test_eio(void *data, Evas_Object *obj, void *event_info);
#endif
@ -408,6 +409,7 @@ my_win_main(char *autorun)
ADD_TEST("Window Inline", test_win_inline);
ADD_TEST("Grid", test_grid);
ADD_TEST("GLView", test_glview);
ADD_TEST("3D", test_3d);
#undef ADD_TEST
if (autorun)

View File

@ -28,10 +28,11 @@ test_conformant(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_single_line_set(en, 1);
elm_scrolled_entry_bounce_set(en, 1, 0);
elm_scrolled_entry_entry_set(en, "This is the top entry here");
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_single_line_set(en, 1);
elm_entry_bounce_set(en, 1, 0);
elm_entry_entry_set(en, "This is the top entry here");
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
evas_object_show(en);
@ -44,10 +45,11 @@ test_conformant(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
elm_box_pack_end(bx, btn);
evas_object_show(btn);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_single_line_set(en, 1);
elm_scrolled_entry_bounce_set(en, 1, 0);
elm_scrolled_entry_entry_set(en, "This is the middle entry here");
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_single_line_set(en, 1);
elm_entry_bounce_set(en, 1, 0);
elm_entry_entry_set(en, "This is the middle entry here");
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
evas_object_show(en);
@ -60,9 +62,10 @@ test_conformant(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
elm_box_pack_end(bx, btn);
evas_object_show(btn);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_bounce_set(en, 0, 1);
elm_scrolled_entry_entry_set(en,
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_bounce_set(en, 0, 1);
elm_entry_entry_set(en,
"This is a multi-line entry at the bottom<br>"
"This can contain more than 1 line of text and be "
"scrolled around to allow for entering of lots of "
@ -111,10 +114,11 @@ test_conformant2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
elm_win_resize_object_add(win, bx);
evas_object_show(bx);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_single_line_set(en, 1);
elm_scrolled_entry_bounce_set(en, 1, 0);
elm_scrolled_entry_entry_set(en, "This is the top entry here");
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_single_line_set(en, 1);
elm_entry_bounce_set(en, 1, 0);
elm_entry_entry_set(en, "This is the top entry here");
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_box_pack_end(bx, en);
@ -146,9 +150,10 @@ test_conformant2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_bounce_set(en, 0, 1);
elm_scrolled_entry_entry_set(en, "This entry and button below get deleted.");
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_bounce_set(en, 0, 1);
elm_entry_entry_set(en, "This entry and button below get deleted.");
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);
evas_object_show(en);
@ -177,9 +182,10 @@ test_conformant2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_bounce_set(en, 0, 1);
elm_scrolled_entry_entry_set(en, "This entry and button below get deleted.");
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_bounce_set(en, 0, 1);
elm_entry_entry_set(en, "This entry and button below get deleted.");
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);
evas_object_show(en);

View File

@ -146,9 +146,10 @@ test_cursor(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
elm_list_go(list);
evas_object_show(list);
entry = elm_scrolled_entry_add(win);
elm_scrolled_entry_entry_set(entry, "Xterm cursor");
elm_scrolled_entry_single_line_set(entry, EINA_TRUE);
entry = elm_entry_add(win);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_entry_set(entry, "Xterm cursor");
elm_entry_single_line_set(entry, EINA_TRUE);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_fill_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(bx, entry);

View File

@ -55,6 +55,25 @@ my_entry_bt_4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED
elm_entry_entry_insert(en, "Insert some <b>BOLD</> text");
}
static void
my_entry_bt_5(void *data, Evas_Object *obj __UNUSED__, void *event_info __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 __UNUSED__, void *event_info __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);
}
void
test_entry(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
@ -120,7 +139,7 @@ test_entry(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
bt = elm_button_add(win);
elm_button_label_set(bt, "Clear");
elm_button_label_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);
@ -130,7 +149,7 @@ test_entry(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
evas_object_show(bt);
bt = elm_button_add(win);
elm_button_label_set(bt, "Print");
elm_button_label_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);
@ -140,7 +159,7 @@ test_entry(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
evas_object_show(bt);
bt = elm_button_add(win);
elm_button_label_set(bt, "Selection");
elm_button_label_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);
@ -150,7 +169,7 @@ test_entry(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
evas_object_show(bt);
bt = elm_button_add(win);
elm_button_label_set(bt, "Insert");
elm_button_label_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);
@ -159,6 +178,26 @@ test_entry(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
elm_object_focus_allow_set(bt, 0);
evas_object_show(bt);
bt = elm_button_add(win);
elm_button_label_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);
evas_object_propagate_events_set(bt, 0);
elm_object_focus_allow_set(bt, 0);
evas_object_show(bt);
bt = elm_button_add(win);
elm_button_label_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);
evas_object_propagate_events_set(bt, 0);
elm_object_focus_allow_set(bt, 0);
evas_object_show(bt);
elm_box_pack_end(bx, bx2);
evas_object_show(bx2);
@ -170,14 +209,14 @@ static void
my_scrolled_entry_bt_1(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_entry_set(en, "");
elm_entry_entry_set(en, "");
}
static void
my_scrolled_entry_bt_2(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
const char *s = elm_scrolled_entry_entry_get(en);
const char *s = elm_entry_entry_get(en);
printf("ENTRY:\n");
if (s) printf("%s\n", s);
printf("ENTRY PLAIN UTF8:\n");
@ -196,7 +235,7 @@ static void
my_scrolled_entry_bt_3(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
const char *s = elm_scrolled_entry_selection_get(en);
const char *s = elm_entry_selection_get(en);
printf("SELECTION:\n");
if (s) printf("%s\n", s);
printf("SELECTION PLAIN UTF8:\n");
@ -215,14 +254,14 @@ static void
my_scrolled_entry_bt_4(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_entry_insert(en, "Insert some <b>BOLD</> text");
elm_entry_entry_insert(en, "Insert some <b>BOLD</> text");
}
static void
my_scrolled_entry_bt_5(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
const char *s = elm_scrolled_entry_entry_get(en);
const char *s = elm_entry_entry_get(en);
printf("PASSWORD: '%s'\n", s ? s : "");
}
@ -230,7 +269,7 @@ static void
scrolled_anchor_test(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_entry_insert(en, "ANCHOR CLICKED");
elm_entry_entry_insert(en, "ANCHOR CLICKED");
}
void
@ -255,37 +294,40 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
evas_object_show(bx);
/* disabled entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_entry_set(en, "Disabled entry");
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_entry_set(en, "Disabled entry");
elm_entry_single_line_set(en, 1);
elm_object_disabled_set(en, 1);
evas_object_show(en);
elm_box_pack_end(bx, en);
/* password entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_password_set(en, 1);
elm_scrolled_entry_single_line_set(en, 1);
elm_scrolled_entry_entry_set(en, "Access denied, give up!");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_password_set(en, 1);
elm_entry_single_line_set(en, 1);
elm_entry_entry_set(en, "Access denied, give up!");
elm_object_disabled_set(en, 1);
evas_object_show(en);
elm_box_pack_end(bx, en);
/* multi-line disable entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
elm_object_disabled_set(en, 1);
elm_scrolled_entry_context_menu_item_add(en, "Hello", NULL, ELM_ICON_NONE, NULL, NULL);
elm_scrolled_entry_context_menu_item_add(en, "World", NULL, ELM_ICON_NONE, NULL, NULL);
elm_scrolled_entry_entry_set(en,
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_entry_entry_set(en,
"Multi-line disabled entry widget :)<br>"
"We can use markup <b>like this</> for styling and<br>"
"formatting <em>like this</>, as well as<br>"
@ -300,87 +342,94 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
evas_object_show(sp);
/* Single line selected entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en, "This is a single line");
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_single_line_set(en, 1);
elm_scrolled_entry_select_all(en);
elm_entry_entry_set(en, "This is a single line");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, 1);
elm_entry_select_all(en);
evas_object_show(en);
elm_box_pack_end(bx, en);
/* Only digits entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en, "01234");
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_entry_set(en, "01234");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, 1);
evas_object_show(en);
elm_box_pack_end(bx, en);
digits_filter_data.accepted = "0123456789";
digits_filter_data.rejected = NULL;
elm_scrolled_entry_text_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data);
elm_entry_text_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data);
/* No digits entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en, "No numbers here");
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_entry_set(en, "No numbers here");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, 1);
evas_object_show(en);
elm_box_pack_end(bx, en);
digits_filter_data2.accepted = NULL;
digits_filter_data2.rejected = "0123456789";
elm_scrolled_entry_text_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data2);
elm_entry_text_filter_append(en, elm_entry_filter_accept_set, &digits_filter_data2);
/* Size limited entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en, "Just 20 chars");
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_entry_set(en, "Just 20 chars");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, 1);
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_scrolled_entry_text_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data);
elm_entry_text_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data);
/* Byte size limited entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en, "And now only 30 bytes");
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_entry_set(en, "And now only 30 bytes");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, 1);
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_scrolled_entry_text_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data2);
elm_entry_text_filter_append(en, elm_entry_filter_limit_size, &limit_filter_data2);
/* Single line password entry */
en_p = elm_scrolled_entry_add(win);
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_scrolled_entry_scrollbar_policy_set(en_p, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_entry_set(en_p, "Password here");
elm_scrolled_entry_single_line_set(en_p, 1);
elm_scrolled_entry_password_set(en_p, 1);
elm_entry_scrollbar_policy_set(en_p, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_entry_set(en_p, "Password here");
elm_entry_single_line_set(en_p, 1);
elm_entry_password_set(en_p, 1);
evas_object_show(en_p);
elm_box_pack_end(bx, en_p);
/* scrolled entry with icon/end widgets*/
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_single_line_set(en, 1);
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, 1);
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);
bt = elm_icon_add(win);
@ -388,23 +437,24 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
evas_object_size_hint_min_set(bt, 48, 48);
evas_object_color_set(bt, 255, 0, 0, 128);
evas_object_show(bt);
elm_scrolled_entry_icon_set(en, bt);
elm_entry_icon_set(en, bt);
bt = elm_icon_add(win);
elm_icon_standard_set(bt, "delete");
evas_object_color_set(bt, 255, 0, 0, 128);
evas_object_size_hint_min_set(bt, 48, 48);
evas_object_show(bt);
elm_scrolled_entry_end_set(en, bt);
elm_scrolled_entry_entry_set(en, "scrolled entry with icon and end objects");
elm_entry_end_set(en, bt);
elm_entry_entry_set(en, "scrolled entry with icon and end objects");
evas_object_show(en);
elm_box_pack_end(bx, en);
/* markup scrolled entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
elm_scrolled_entry_entry_set(en,
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
elm_entry_entry_set(en,
"This is an entry widget in this window that<br>"
"uses markup <b>like this</> for styling and<br>"
"formatting <em>like this</>, as well as<br>"
@ -488,14 +538,14 @@ static void
my_ent_bt_clr(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_entry_set(en, "");
elm_entry_entry_set(en, "");
}
static void
my_ent_bt_pri(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
const char *s = elm_scrolled_entry_entry_get(en);
const char *s = elm_entry_entry_get(en);
printf("ENTRY:\n");
if (s) printf("%s\n", s);
printf("ENTRY PLAIN UTF8:\n");
@ -514,7 +564,7 @@ static void
my_ent_bt_sel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
const char *s = elm_scrolled_entry_selection_get(en);
const char *s = elm_entry_selection_get(en);
printf("SELECTION:\n");
if (s) printf("%s\n", s);
printf("SELECTION PLAIN UTF8:\n");
@ -533,91 +583,91 @@ static void
my_ent_bt_all(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_select_all(en);
elm_entry_select_all(en);
}
static void
my_ent_bt_non(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_select_none(en);
elm_entry_select_none(en);
}
static void
my_ent_bt_ins(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_entry_insert(en, "Insert text");
elm_entry_entry_insert(en, "Insert text");
}
static void
my_ent_bt_lef(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_prev(en);
elm_entry_cursor_prev(en);
}
static void
my_ent_bt_rig(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_next(en);
elm_entry_cursor_next(en);
}
static void
my_ent_bt_up_(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_up(en);
elm_entry_cursor_up(en);
}
static void
my_ent_bt_dow(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_down(en);
elm_entry_cursor_down(en);
}
static void
my_ent_bt_beg(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_begin_set(en);
elm_entry_cursor_begin_set(en);
}
static void
my_ent_bt_end(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_end_set(en);
elm_entry_cursor_end_set(en);
}
static void
my_ent_bt_lbe(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_line_begin_set(en);
elm_entry_cursor_line_begin_set(en);
}
static void
my_ent_bt_len(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_line_end_set(en);
elm_entry_cursor_line_end_set(en);
}
static void
my_ent_bt_sbe(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_selection_begin(en);
elm_entry_cursor_selection_begin(en);
}
static void
my_ent_bt_sen(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_cursor_selection_end(en);
elm_entry_cursor_selection_end(en);
}
static void
@ -625,7 +675,7 @@ my_ent_bt_fmt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED
{
Evas_Object *en = data;
printf("IS FORMAT: %i\n",
(int)elm_scrolled_entry_cursor_is_format_get(en));
(int)elm_entry_cursor_is_format_get(en));
}
static void
@ -633,35 +683,35 @@ my_ent_bt_vfm(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED
{
Evas_Object *en = data;
printf("IS VISIBLE FORMAT %i\n",
(int)elm_scrolled_entry_cursor_is_visible_format_get(en));
(int)elm_entry_cursor_is_visible_format_get(en));
}
static void
my_ent_bt_chr(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
printf("CHAR '%s'\n", elm_scrolled_entry_cursor_content_get(en));
printf("CHAR '%s'\n", elm_entry_cursor_content_get(en));
}
static void
my_ent_bt_cut(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_selection_cut(en);
elm_entry_selection_cut(en);
}
static void
my_ent_bt_cop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_selection_copy(en);
elm_entry_selection_copy(en);
}
static void
my_ent_bt_pas(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_selection_paste(en);
elm_entry_selection_paste(en);
}
void
@ -684,12 +734,13 @@ test_entry3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
evas_object_show(bx);
/* Single line selected entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_entry_set(en, "This is a single line");
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_entry_set(en, "This is a single line");
elm_entry_single_line_set(en, 1);
elm_box_pack_end(bx, en);
evas_object_show(en);
@ -946,10 +997,11 @@ test_entry3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
evas_object_show(bx2);
/* markup scrolled entry */
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en,
elm_entry_entry_set(en,
"This is an entry widget in this window that<br>"
"uses markup <b>like this</> for styling and<br>"
"formatting <em>like this</>, as well as<br>"
@ -1246,12 +1298,13 @@ test_entry4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
elm_win_resize_object_add(win, ly);
evas_object_show(ly);
en = elm_scrolled_entry_add(win);
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_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_entry_set(en, "This is a single line");
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_entry_set(en, "This is a single line");
elm_entry_single_line_set(en, 1);
elm_layout_content_set(ly, "element1", en);
evas_object_show(en);
@ -1268,10 +1321,11 @@ test_entry4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
elm_layout_content_set(ly, "element2", en);
evas_object_show(en);
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en,
elm_entry_entry_set(en,
"This is an entry widget in this window that<br>"
"uses markup <b>like this</> for styling and<br>"
"formatting <em>like this</>, as well as<br>"
@ -1310,11 +1364,12 @@ test_entry5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
elm_win_resize_object_add(win, bx);
evas_object_show(bx);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_line_wrap_set(en, ELM_WRAP_CHAR);
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_scrolled_entry_entry_set(en,
elm_entry_entry_set(en,
"This is an entry widget in this window that "
"uses markup like this for styling and "
"formatting like this, as well as "
@ -1590,7 +1645,7 @@ static void
_scrolled_entry_clear(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *en = data;
elm_scrolled_entry_entry_set(en, "");
elm_entry_entry_set(en, "");
}
void
@ -1612,8 +1667,9 @@ test_entry_notepad(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *eve
elm_win_resize_object_add(win, bx);
evas_object_show(bx);
np = elm_scrolled_entry_add(win);
elm_scrolled_entry_file_set(np, "note.txt", ELM_TEXT_FORMAT_PLAIN_UTF8);
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);

View File

@ -270,8 +270,9 @@ test_flip2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
elm_flip_content_front_set(fl, o);
evas_object_show(o);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_line_wrap_set(en, EINA_FALSE);
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_line_wrap_set(en, EINA_FALSE);
snprintf(buf, sizeof(buf),
"This is an entry widget in this window that<br>"
"uses markup <b>like this</> for styling and<br>"
@ -303,7 +304,7 @@ test_flip2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
" ... end."
, PACKAGE_DATA_DIR
);
elm_scrolled_entry_entry_set(en, buf);
elm_entry_entry_set(en, buf);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);

View File

@ -108,11 +108,12 @@ test_focus(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
}
{
Evas_Object *en = elm_scrolled_entry_add(win);
Evas_Object *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_scrolled_entry_entry_set(en, "This is a single line");
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_entry_set(en, "This is a single line");
elm_entry_single_line_set(en, 1);
elm_box_pack_end(bx, en);
my_show(en);
}

View File

@ -75,12 +75,13 @@ test_focus2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
#define PARENT bx /* this is broken, but should work */
//#define PARENT win
en = elm_scrolled_entry_add(PARENT);
en = elm_entry_add(PARENT);
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_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_entry_set(en, "Scrolled Entry that should get focus");
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_entry_set(en, "Scrolled Entry that should get focus");
elm_entry_single_line_set(en, 1);
evas_object_show(en);
elm_box_pack_end(bx, en);
@ -101,12 +102,13 @@ test_focus2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
elm_button_label_set(bt, "Button 1");
elm_layout_content_set(ly, "element1", bt);
en = elm_scrolled_entry_add(ly);
en = elm_entry_add(ly);
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_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_entry_set(en, "Scrolled Entry that should get focus");
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_entry_set(en, "Scrolled Entry that should get focus");
elm_entry_single_line_set(en, 1);
elm_layout_content_set(ly, "element2", en);
bt = elm_button_add(ly);

View File

@ -26,13 +26,14 @@ _add(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Evas_Object *bx = data, *en;
en = elm_scrolled_entry_add(elm_object_top_widget_get(bx));
elm_scrolled_entry_entry_set(en, "An entry");
en = elm_entry_add(elm_object_top_widget_get(bx));
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_entry_set(en, "An entry");
evas_object_smart_callback_add(en, "focused", _foc, NULL);
evas_object_smart_callback_add(en, "unfocused", _unfoc, NULL);
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_scrolled_entry_single_line_set(en, 1);
elm_entry_single_line_set(en, 1);
elm_box_pack_start(bx, en);
evas_object_show(en);
}
@ -70,13 +71,14 @@ test_focus3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
elm_win_resize_object_add(win, bx);
evas_object_show(bx);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_entry_set(en, "An entry");
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_entry_set(en, "An entry");
evas_object_smart_callback_add(en, "focused", _foc, NULL);
evas_object_smart_callback_add(en, "unfocused", _unfoc, NULL);
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_scrolled_entry_single_line_set(en, 1);
elm_entry_single_line_set(en, 1);
elm_box_pack_end(bx, en);
evas_object_show(en);

View File

@ -1233,9 +1233,10 @@ test_genlist7_swipe(void *data, Evas_Object *obj __UNUSED__, void *event_info)
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(box);
entry = elm_scrolled_entry_add(info->win);
elm_scrolled_entry_editable_set(entry, EINA_FALSE);
elm_scrolled_entry_entry_set(entry, item_data);
entry = elm_entry_add(info->win);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_editable_set(entry, EINA_FALSE);
elm_entry_entry_set(entry, item_data);
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);
evas_object_show(entry);

View File

@ -32,15 +32,17 @@ test_grid(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info _
evas_object_size_hint_weight_set(gd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(gd);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_entry_set(en, "Entry text");
elm_scrolled_entry_single_line_set(en, 1);
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_entry_set(en, "Entry text");
elm_entry_single_line_set(en, 1);
elm_grid_pack(gd, en, 50, 10, 40, 10);
evas_object_show(en);
en = elm_scrolled_entry_add(win);
elm_scrolled_entry_entry_set(en, "Entry text 2");
elm_scrolled_entry_single_line_set(en, 1);
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_entry_set(en, "Entry text 2");
elm_entry_single_line_set(en, 1);
elm_grid_pack(gd, en, 60, 20, 30, 10);
evas_object_show(en);

View File

@ -143,7 +143,7 @@ test_index2_it_add(void *data, Evas_Object *obj __UNUSED__, void *event_info __U
const char *label;
char letter[2];
label = elm_scrolled_entry_entry_get(gui->entry);
label = elm_entry_entry_get(gui->entry);
snprintf(letter, sizeof(letter), "%c", label[0]);
it = elm_list_item_sorted_insert(gui->lst, label, NULL, NULL, NULL, NULL,
test_index2_cmp);
@ -223,9 +223,10 @@ test_index2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
test_index2_id_changed, NULL);
evas_object_show(gui->id);
gui->entry = elm_scrolled_entry_add(win);
elm_scrolled_entry_entry_set(gui->entry, "Label");
elm_scrolled_entry_single_line_set(gui->entry, EINA_TRUE);
gui->entry = elm_entry_add(win);
elm_entry_scrollable_set(gui->entry, EINA_TRUE);
elm_entry_entry_set(gui->entry, "Label");
elm_entry_single_line_set(gui->entry, EINA_TRUE);
evas_object_size_hint_weight_set(gui->entry, EVAS_HINT_EXPAND, 0);
evas_object_size_hint_fill_set(gui->entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(box, gui->entry);

View File

@ -610,9 +610,10 @@ test_list4_swipe(void *data,
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(box);
entry = elm_scrolled_entry_add(info->win);
elm_scrolled_entry_editable_set(entry, EINA_FALSE);
elm_scrolled_entry_entry_set(entry, item_data);
entry = elm_entry_add(info->win);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_editable_set(entry, EINA_FALSE);
elm_entry_entry_set(entry, item_data);
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);
evas_object_show(entry);

View File

@ -34,7 +34,7 @@ _st_longpress(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
// store callbacks to handle loading/parsing/freeing of store items from src
static Elm_Genlist_Item_Class itc1 =
{
"message", { NULL, NULL, NULL, NULL }, NULL
"message", { NULL, NULL, NULL, NULL, NULL }, NULL
};
static const Elm_Store_Item_Mapping it1_mapping[] =

View File

@ -415,14 +415,15 @@ test_tooltip(void *data __UNUSED__,
elm_box_pack_end(bx, bt);
evas_object_show(bt);
se = elm_scrolled_entry_add(win);
se = elm_entry_add(win);
elm_entry_scrollable_set(se, EINA_TRUE);
evas_object_size_hint_weight_set(se, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(se, EVAS_HINT_FILL, 0.5);
elm_scrolled_entry_scrollbar_policy_set(se, ELM_SCROLLER_POLICY_OFF,
elm_entry_scrollbar_policy_set(se, ELM_SCROLLER_POLICY_OFF,
ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_entry_set(se, "Hello, some scrolled entry here!");
elm_entry_entry_set(se, "Hello, some scrolled entry here!");
elm_object_tooltip_text_set(se, "Type something here!");
elm_scrolled_entry_single_line_set(se, 1);
elm_entry_single_line_set(se, 1);
elm_box_pack_end(bx, se);
evas_object_show(se);

View File

@ -26,21 +26,23 @@ fill(Evas_Object *win, Eina_Bool do_bg)
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en, "This is a single line");
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_entry_set(en, "This is a single line");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, 1);
evas_object_show(en);
elm_box_pack_end(bx, en);
en = elm_scrolled_entry_add(win);
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_scrolled_entry_entry_set(en, "Entry 2");
elm_scrolled_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scrolled_entry_single_line_set(en, 1);
elm_entry_entry_set(en, "Entry 2");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, 1);
evas_object_show(en);
elm_box_pack_end(bx, en);

View File

@ -50,7 +50,6 @@ elm_panes.c \
elm_photocam.c \
elm_progressbar.c \
elm_radio.c \
elm_scrolled_entry.c \
elm_scroller.c \
elm_segment_control.c \
elm_slider.c \

View File

@ -1,184 +0,0 @@
#include "private.h"
typedef struct _Elm_Params_Entry
{
Elm_Params base;
const char *text;
Eina_Bool text_set:1;
Eina_Bool editable:1;
Eina_Bool single:1;
Eina_Bool password:1;
Eina_Bool editable_exists:1;
Eina_Bool single_exists:1;
Eina_Bool password_exists:1;
} Elm_Params_Entry;
static void
external_scrolled_entry_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__)
{
const Elm_Params_Entry *p;
if (to_params) p = to_params;
else if (from_params) p = from_params;
else return;
if ((!p->text_set) && (p->text))
{
elm_scrolled_entry_entry_set(obj, p->text);
((Elm_Params_Entry *)p)->text_set = EINA_TRUE;
}
if (p->editable_exists)
elm_scrolled_entry_editable_set(obj, p->editable);
if (p->single_exists)
elm_scrolled_entry_single_line_set(obj, p->single);
if (p->password_exists)
elm_scrolled_entry_password_set(obj, p->password);
}
static Eina_Bool
external_scrolled_entry_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param)
{
if (!strcmp(param->name, "text"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
{
elm_scrolled_entry_entry_set(obj, param->s);
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "editable"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
elm_scrolled_entry_editable_set(obj, param->i);
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "single line"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
elm_scrolled_entry_single_line_set(obj, param->i);
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "password"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
elm_scrolled_entry_password_set(obj, param->i);
return EINA_TRUE;
}
}
ERR("unknown parameter '%s' of type '%s'",
param->name, edje_external_param_type_str(param->type));
return EINA_FALSE;
}
static Eina_Bool
external_scrolled_entry_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param)
{
if (!strcmp(param->name, "text"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
{
param->s = elm_scrolled_entry_entry_get(obj);
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "editable"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
param->i = elm_scrolled_entry_editable_get(obj);
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "single line"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
param->i = elm_scrolled_entry_single_line_get(obj);
return EINA_TRUE;
}
}
else if (!strcmp(param->name, "password"))
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
param->i = elm_scrolled_entry_password_get(obj);
return EINA_TRUE;
}
}
ERR("unknown parameter '%s' of type '%s'",
param->name, edje_external_param_type_str(param->type));
return EINA_FALSE;
}
static void *
external_scrolled_entry_params_parse(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const Eina_List *params)
{
Elm_Params_Entry *mem;
Edje_External_Param *param;
const Eina_List *l;
mem = calloc(1, sizeof(Elm_Params_Entry));
if (!mem)
return NULL;
EINA_LIST_FOREACH(params, l, param)
{
if (!strcmp(param->name, "text"))
mem->text = eina_stringshare_add(param->s);
else if (!strcmp(param->name, "single line"))
{
mem->single = !!param->i;
mem->single_exists = EINA_TRUE;
}
else if (!strcmp(param->name, "password"))
{
mem->password = !!param->i;
mem->password_exists = EINA_TRUE;
}
else if (!strcmp(param->name, "editable"))
{
mem->editable = param->i;
mem->editable_exists = EINA_TRUE;
}
}
return mem;
}
static Evas_Object *external_scrolled_entry_content_get(void *data __UNUSED__,
const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
{
ERR("No content.");
return NULL;
}
static void
external_scrolled_entry_params_free(void *params)
{
Elm_Params_Entry *mem = params;
if (mem->text)
eina_stringshare_del(mem->text);
free(mem);
}
static Edje_External_Param_Info external_scrolled_entry_params[] = {
DEFINE_EXTERNAL_COMMON_PARAMS,
EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("text", "some text"),
EDJE_EXTERNAL_PARAM_INFO_BOOL("editable"),
EDJE_EXTERNAL_PARAM_INFO_BOOL("single line"),
EDJE_EXTERNAL_PARAM_INFO_BOOL("password"),
EDJE_EXTERNAL_PARAM_INFO_SENTINEL
};
DEFINE_EXTERNAL_ICON_ADD(scrolled_entry, "scrolled_entry")
DEFINE_EXTERNAL_TYPE_SIMPLE(scrolled_entry, "Entry");

View File

@ -1812,8 +1812,21 @@ extern "C" {
EAPI void elm_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_entry_autosave_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_entry_cnp_textonly_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_entry_cnp_textonly_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_entry_scrollable_set(Evas_Object *obj, Eina_Bool scroll);
EAPI Eina_Bool elm_entry_scrollable_get(const Evas_Object *obj);
EAPI void elm_entry_icon_set(Evas_Object *obj, Evas_Object *icon);
EAPI Evas_Object *elm_entry_icon_get(const Evas_Object *obj);
EAPI Evas_Object *elm_entry_icon_unset(Evas_Object *obj);
EAPI void elm_entry_icon_visible_set(Evas_Object *obj, Eina_Bool setting);
EAPI void elm_entry_end_set(Evas_Object *obj, Evas_Object *end);
EAPI Evas_Object *elm_entry_end_get(const Evas_Object *obj);
EAPI Evas_Object *elm_entry_end_unset(Evas_Object *obj);
EAPI void elm_entry_end_visible_set(Evas_Object *obj, Eina_Bool setting);
EAPI void elm_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v);
EAPI void elm_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
EAPI void elm_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
/* pre-made filters for entries */
typedef struct _Elm_Entry_Filter_Limit_Size Elm_Entry_Filter_Limit_Size;
struct _Elm_Entry_Filter_Limit_Size
@ -3674,68 +3687,68 @@ EAPI Elm_Genlist_Item *elm_genlist_item_sorted_insert(Evas_Object *obj, const El
*/
/* scrolledentry */
EAPI Evas_Object *elm_scrolled_entry_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_single_line_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_password_set(Evas_Object *obj, Eina_Bool password) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_password_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_entry_set(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
EAPI const char *elm_scrolled_entry_entry_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_entry_append(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI const char *elm_scrolled_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_select_all(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_cursor_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_cursor_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_cursor_up(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_cursor_down(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_cursor_begin_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_cursor_end_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_cursor_line_begin_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_cursor_line_end_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_cursor_selection_begin(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_cursor_selection_end(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_cursor_is_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_cursor_is_visible_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI const char *elm_scrolled_entry_cursor_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_cursor_pos_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
EAPI int elm_scrolled_entry_cursor_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_selection_cut(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_selection_copy(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_selection_paste(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_context_menu_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_context_menu_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1, 2);
EAPI Evas_Object *elm_scrolled_entry_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_scrolled_entry_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_icon_visible_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1, 2);
EAPI Evas_Object *elm_scrolled_entry_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_scrolled_entry_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_end_visible_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
EAPI void elm_scrolled_entry_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
EAPI void elm_scrolled_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
EAPI void elm_scrolled_entry_text_filter_append(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
EAPI void elm_scrolled_entry_text_filter_prepend(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
EAPI void elm_scrolled_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
EAPI void elm_scrolled_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *format) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_file_save(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_autosave_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_scrolled_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_scrolled_entry_cnp_textonly_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Evas_Object *elm_scrolled_entry_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_single_line_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_password_set(Evas_Object *obj, Eina_Bool password) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_password_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_entry_set(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI const char *elm_scrolled_entry_entry_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_entry_append(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_is_empty(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI const char *elm_scrolled_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_select_all(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_cursor_next(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_cursor_prev(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_cursor_up(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_cursor_down(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_cursor_begin_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_cursor_end_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_cursor_line_begin_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_cursor_line_end_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_cursor_selection_begin(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_cursor_selection_end(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_cursor_is_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_cursor_is_visible_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI const char *elm_scrolled_entry_cursor_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_cursor_pos_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI int elm_scrolled_entry_cursor_pos_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_selection_cut(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_selection_copy(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_selection_paste(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_context_menu_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_context_menu_item_add(Evas_Object *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_context_menu_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1, 2);
EINA_DEPRECATED EAPI Evas_Object *elm_scrolled_entry_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Evas_Object *elm_scrolled_entry_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_icon_visible_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1, 2);
EINA_DEPRECATED EAPI Evas_Object *elm_scrolled_entry_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Evas_Object *elm_scrolled_entry_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_end_visible_set(Evas_Object *obj, Eina_Bool setting) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_item_provider_append(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
EINA_DEPRECATED EAPI void elm_scrolled_entry_item_provider_prepend(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
EINA_DEPRECATED EAPI void elm_scrolled_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data) EINA_ARG_NONNULL(1, 2);
EINA_DEPRECATED EAPI void elm_scrolled_entry_text_filter_append(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
EINA_DEPRECATED EAPI void elm_scrolled_entry_text_filter_prepend(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
EINA_DEPRECATED EAPI void elm_scrolled_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data) EINA_ARG_NONNULL(1, 2);
EINA_DEPRECATED EAPI void elm_scrolled_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *format) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_file_save(Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_autosave_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_scrolled_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_scrolled_entry_cnp_textonly_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
/* conformant */
EAPI Evas_Object *elm_conformant_add(Evas_Object *parent) EINA_ARG_NONNULL(1);

View File

@ -316,7 +316,7 @@ _sel_do(void *data)
if (wd->expand && wd->mode == ELM_FILESELECTOR_LIST)
{
_do_anchors(sd->fs, path);
elm_scrolled_entry_entry_set(wd->filename_entry, "");
elm_entry_entry_set(wd->filename_entry, "");
}
else
{
@ -338,7 +338,7 @@ _sel_do(void *data)
_populate(sd->fs, p, NULL);
eina_stringshare_del(p);
}
elm_scrolled_entry_entry_set(wd->filename_entry,
elm_entry_entry_set(wd->filename_entry,
ecore_file_file_get(path));
}
@ -484,7 +484,7 @@ _do_anchors(Evas_Object *obj,
free(tok[0]);
free(tok);
elm_scrolled_entry_entry_set(wd->path_entry, buf);
elm_entry_entry_set(wd->path_entry, buf);
}
static void
@ -511,7 +511,7 @@ _populate(Evas_Object *obj,
_do_anchors(obj, path);
}
if (wd->filename_entry) elm_scrolled_entry_entry_set(wd->filename_entry, "");
if (wd->filename_entry) elm_entry_entry_set(wd->filename_entry, "");
while ((dp = readdir(dir)))
{
if (dp->d_name[0] == '.') continue; // TODO make this configurable
@ -663,11 +663,12 @@ elm_fileselector_add(Evas_Object *parent)
wd->files_grid = grid;
// path entry
en = elm_scrolled_entry_add(parent);
en = elm_entry_add(parent);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_widget_mirrored_automatic_set(en, EINA_FALSE);
elm_scrolled_entry_editable_set(en, EINA_FALSE);
elm_scrolled_entry_single_line_set(en, EINA_TRUE);
elm_scrolled_entry_line_wrap_set(en, ELM_WRAP_CHAR);
elm_entry_editable_set(en, EINA_FALSE);
elm_entry_single_line_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);
@ -677,11 +678,12 @@ elm_fileselector_add(Evas_Object *parent)
wd->path_entry = en;
// filename entry
en = elm_scrolled_entry_add(parent);
en = elm_entry_add(parent);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_widget_mirrored_automatic_set(en, EINA_FALSE);
elm_scrolled_entry_editable_set(en, EINA_TRUE);
elm_scrolled_entry_single_line_set(en, EINA_TRUE);
elm_scrolled_entry_line_wrap_set(en, ELM_WRAP_CHAR);
elm_entry_editable_set(en, EINA_TRUE);
elm_entry_single_line_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);
@ -1022,7 +1024,7 @@ elm_fileselector_selected_get(const Evas_Object *obj)
const char *name;
char buf[PATH_MAX];
name = elm_scrolled_entry_entry_get(wd->filename_entry);
name = elm_entry_entry_get(wd->filename_entry);
snprintf(buf, sizeof(buf), "%s/%s",
wd->only_folder ? ecore_file_dir_get(wd->path) : wd->path,
name);
@ -1075,7 +1077,7 @@ elm_fileselector_selected_set(Evas_Object *obj,
_populate(obj, ecore_file_dir_get(path), NULL);
if (wd->filename_entry)
{
elm_scrolled_entry_entry_set(wd->filename_entry,
elm_entry_entry_set(wd->filename_entry,
ecore_file_file_get(path));
eina_stringshare_replace(&wd->selection, path);
}

View File

@ -81,7 +81,7 @@ _FILE_CHOSEN_fwd(void *data, Evas_Object *obj __UNUSED__, void *event_info)
{
Widget_Data *wd = elm_widget_data_get(data);
const char *file = event_info;
elm_scrolled_entry_entry_set(wd->entry, file);
elm_entry_entry_set(wd->entry, file);
evas_object_smart_callback_call(data, SIG_FILE_CHOSEN, event_info);
}
@ -89,7 +89,7 @@ static void
_ACTIVATED_fwd(void *data, Evas_Object *obj __UNUSED__, void *event_info)
{
Widget_Data *wd = elm_widget_data_get(data);
const char *file = elm_scrolled_entry_entry_get(wd->entry);
const char *file = elm_entry_entry_get(wd->entry);
elm_fileselector_button_path_set(wd->button, file);
evas_object_smart_callback_call(data, SIG_ACTIVATED, event_info);
}
@ -261,11 +261,12 @@ elm_fileselector_entry_add(Evas_Object *parent)
SIG_FWD(FILE_CHOSEN);
#undef SIG_FWD
wd->entry = elm_scrolled_entry_add(obj);
wd->entry = elm_entry_add(obj);
elm_entry_scrollable_set(wd->entry, EINA_TRUE);
elm_widget_mirrored_automatic_set(wd->entry, EINA_FALSE);
elm_widget_style_set(wd->entry, "fileselector_entry/default");
elm_scrolled_entry_single_line_set(wd->entry, EINA_TRUE);
elm_scrolled_entry_editable_set(wd->entry, EINA_TRUE);
elm_entry_single_line_set(wd->entry, EINA_TRUE);
elm_entry_editable_set(wd->entry, EINA_TRUE);
edje_object_part_swallow(wd->edje, "elm.swallow.entry", wd->entry);
elm_widget_sub_object_add(obj, wd->entry);
evas_object_event_callback_add
@ -451,7 +452,7 @@ elm_fileselector_entry_path_set(Evas_Object *obj, const char *path)
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
elm_fileselector_button_path_set(wd->button, path);
elm_scrolled_entry_entry_set(wd->entry, path);
elm_entry_entry_set(wd->entry, path);
}
/**
@ -467,7 +468,7 @@ elm_fileselector_entry_path_get(const Evas_Object *obj)
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
return elm_scrolled_entry_entry_get(wd->entry);
return elm_entry_entry_get(wd->entry);
}
/**

File diff suppressed because it is too large Load Diff

View File

@ -108,7 +108,7 @@ typedef struct _Elm_Entry_Text_Filter Elm_Entry_Text_Filter;
struct _Widget_Data
{
Evas_Object *ent;
Evas_Object *ent, *scroller, *end, *icon;
Evas_Object *hoversel;
Ecore_Job *deferred_recalc_job;
Ecore_Event_Handler *sel_notify_handler;
@ -125,7 +125,7 @@ struct _Widget_Data
const char *text;
const char *file;
Elm_Text_Format format;
Evas_Coord lastw;
Evas_Coord lastw, entmw, entmh;
Evas_Coord downx, downy;
Eina_List *items;
Eina_List *item_providers;
@ -133,6 +133,7 @@ struct _Widget_Data
Ecore_Job *hovdeljob;
Mod_Api *api; // module api if supplied
int cursor_pos;
Elm_Scroller_Policy policy_h, policy_v;
Elm_Wrap_Type linewrap;
Eina_Bool changed : 1;
Eina_Bool single_line : 1;
@ -150,6 +151,7 @@ struct _Widget_Data
Eina_Bool autosave : 1;
Eina_Bool textonly : 1;
Eina_Bool usedown : 1;
Eina_Bool scroll : 1;
};
struct _Elm_Entry_Context_Menu_Item
@ -583,6 +585,21 @@ _theme_hook(Evas_Object *obj)
edje_object_signal_emit(wd->ent, "elm,action,focus", "elm");
edje_object_message_signal_process(wd->ent);
edje_object_scale_set(wd->ent, elm_widget_scale_get(obj) * _elm_config->scale);
elm_smart_scroller_mirrored_set(wd->scroller, elm_widget_mirrored_get(obj));
elm_smart_scroller_object_theme_set(obj, wd->scroller, "scroller", "entry",
elm_widget_style_get(obj));
if (wd->scroll)
{
const char *str;
Evas_Object *edj;
edj = elm_smart_scroller_edje_object_get(wd->scroller);
str = edje_object_data_get(edj, "focus_highlight");
if ((str) && (!strcmp(str, "on")))
elm_widget_highlight_in_theme_set(obj, EINA_TRUE);
else
elm_widget_highlight_in_theme_set(obj, EINA_FALSE);
}
_sizing_eval(obj);
}
@ -603,43 +620,6 @@ _disable_hook(Evas_Object *obj)
}
}
static void
_elm_win_recalc_job(void *data)
{
Widget_Data *wd = elm_widget_data_get(data);
Evas_Coord minh = -1, resw = -1, minw = -1;
if (!wd) return;
wd->deferred_recalc_job = NULL;
evas_object_geometry_get(wd->ent, NULL, NULL, &resw, NULL);
edje_object_size_min_restricted_calc(wd->ent, &minw, &minh, resw, 0);
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
/* This is a hack to workaround the way min size hints are treated.
* If the minimum width is smaller than the restricted width, it means
* the mininmum doesn't matter. */
if (minw <= resw)
{
Evas_Coord ominw = -1;
evas_object_size_hint_min_get(data, &ominw, NULL);
minw = ominw;
}
evas_object_size_hint_min_set(data, minw, minh);
if (wd->single_line)
evas_object_size_hint_max_set(data, -1, minh);
if (wd->deferred_cur)
{
Evas_Coord cx, cy, cw, ch;
edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text",
&cx, &cy, &cw, &ch);
if (wd->cur_changed)
{
elm_widget_show_region_set(data, cx, cy, cw, ch);
wd->cur_changed = EINA_FALSE;
}
}
}
static void
_recalc_cursor_geometry(Evas_Object *obj)
{
@ -658,8 +638,47 @@ _recalc_cursor_geometry(Evas_Object *obj)
}
}
else
wd->deferred_cur = EINA_TRUE;
}
static void
_elm_win_recalc_job(void *data)
{
Widget_Data *wd = elm_widget_data_get(data);
Evas_Coord minh = -1, resw = -1, minw = -1;
if (!wd) return;
wd->deferred_recalc_job = NULL;
evas_object_geometry_get(wd->ent, NULL, NULL, &resw, NULL);
edje_object_size_min_restricted_calc(wd->ent, &minw, &minh, resw, 0);
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
wd->entmw = minw;
wd->entmh = minh;
/* This is a hack to workaround the way min size hints are treated.
* If the minimum width is smaller than the restricted width, it means
* the mininmum doesn't matter. */
if (minw <= resw)
{
wd->deferred_cur = EINA_TRUE;
Evas_Coord ominw = -1;
evas_object_size_hint_min_get(data, &ominw, NULL);
minw = ominw;
}
evas_object_size_hint_min_set(data, minw, minh);
if (wd->single_line)
evas_object_size_hint_max_set(data, -1, minh);
else
evas_object_size_hint_max_set(data, -1, -1);
if (wd->deferred_cur)
{
Evas_Coord cx, cy, cw, ch;
edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text",
&cx, &cy, &cw, &ch);
if (wd->cur_changed)
{
elm_widget_show_region_set(data, cx, cy, cw, ch);
wd->cur_changed = EINA_FALSE;
}
}
}
@ -670,22 +689,88 @@ _sizing_eval(Evas_Object *obj)
Evas_Coord minw = -1, minh = -1;
Evas_Coord resw, resh;
if (!wd) return;
evas_object_geometry_get(obj, NULL, NULL, &resw, &resh);
if (wd->linewrap)
{
evas_object_geometry_get(wd->ent, NULL, NULL, &resw, &resh);
if ((resw == wd->lastw) && (!wd->changed)) return;
wd->changed = EINA_FALSE;
wd->lastw = resw;
if (wd->deferred_recalc_job) ecore_job_del(wd->deferred_recalc_job);
wd->deferred_recalc_job = ecore_job_add(_elm_win_recalc_job, obj);
if (wd->scroll)
{
Evas_Coord vw = 0, vh = 0, vmw = 0, vmh = 0, w = -1, h = -1;
evas_object_resize(wd->scroller, resw, resh);
edje_object_size_min_calc
(elm_smart_scroller_edje_object_get(wd->scroller),
&vmw, &vmh);
elm_smart_scroller_child_viewport_size_get(wd->scroller, &vw, &vh);
edje_object_size_min_restricted_calc(wd->ent, &minw, &minh, vw, 0);
wd->entmw = minw;
wd->entmh = minh;
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
if ((minw > 0) && (vw < minw)) vw = minw;
if (minh > vh) vh = minh;
if (wd->single_line) h = vmh + minh;
else h = vmh;
evas_object_resize(wd->ent, vw, vh);
evas_object_size_hint_min_set(obj, w, h);
if (wd->single_line)
evas_object_size_hint_max_set(obj, -1, h);
else
evas_object_size_hint_max_set(obj, -1, -1);
}
else
{
if (wd->deferred_recalc_job) ecore_job_del(wd->deferred_recalc_job);
wd->deferred_recalc_job = ecore_job_add(_elm_win_recalc_job, obj);
}
}
else
{
edje_object_size_min_calc(wd->ent, &minw, &minh);
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
evas_object_size_hint_min_set(obj, minw, minh);
if (wd->single_line)
evas_object_size_hint_max_set(obj, -1, minh);
if (!wd->changed) return;
wd->changed = EINA_FALSE;
wd->lastw = resw;
if (wd->scroll)
{
Evas_Coord vw = 0, vh = 0, vmw = 0, vmh = 0, w = -1, h = -1;
edje_object_size_min_calc(wd->ent, &minw, &minh);
wd->entmw = minw;
wd->entmh = minh;
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
elm_smart_scroller_child_viewport_size_get(wd->scroller, &vw, &vh);
if ((minw > 0) && (vw < minw)) vw = minw;
if (minh > 0) vh = minh;
evas_object_resize(wd->ent, vw, vh);
edje_object_size_min_calc
(elm_smart_scroller_edje_object_get(wd->scroller),
&vmw, &vmh);
if (wd->single_line) h = vmh + minh;
else h = vmh;
evas_object_size_hint_min_set(obj, w, h);
if (wd->single_line)
evas_object_size_hint_max_set(obj, -1, h);
else
evas_object_size_hint_max_set(obj, -1, -1);
}
else
{
edje_object_size_min_calc(wd->ent, &minw, &minh);
wd->entmw = minw;
wd->entmh = minh;
elm_coords_finger_size_adjust(1, &minw, 1, &minh);
evas_object_size_hint_min_set(obj, minw, minh);
if (wd->single_line)
evas_object_size_hint_max_set(obj, -1, minh);
else
evas_object_size_hint_max_set(obj, -1, -1);
}
}
_recalc_cursor_geometry(obj);
@ -720,6 +805,9 @@ _signal_emit_hook(Evas_Object *obj, const char *emission, const char *source)
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
edje_object_signal_emit(wd->ent, emission, source);
if (wd->scroller)
edje_object_signal_emit(elm_smart_scroller_edje_object_get(wd->scroller),
emission, source);
}
static void
@ -728,6 +816,9 @@ _signal_callback_add_hook(Evas_Object *obj, const char *emission, const char *so
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
edje_object_signal_callback_add(wd->ent, emission, source, func_cb, data);
if (wd->scroller)
edje_object_signal_callback_add(elm_smart_scroller_edje_object_get(wd->scroller),
emission, source, func_cb, data);
}
static void
@ -736,6 +827,9 @@ _signal_callback_del_hook(Evas_Object *obj, const char *emission, const char *so
Widget_Data *wd = elm_widget_data_get(obj);
edje_object_signal_callback_del_full(wd->ent, emission, source, func_cb,
data);
if (wd->scroller)
edje_object_signal_callback_del_full(elm_smart_scroller_edje_object_get(wd->scroller),
emission, source, func_cb, data);
}
static void
@ -745,6 +839,25 @@ _on_focus_region_hook(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas
edje_object_part_text_cursor_geometry_get(wd->ent, "elm.text", x, y, w, h);
}
static void
_focus_region_hook(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
{
Widget_Data *wd = elm_widget_data_get(obj);
if (wd->scroll)
elm_smart_scroller_child_region_show(wd->scroller, x, y, w, h);
}
static void
_show_region_hook(void *data, Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(data);
Evas_Coord x, y, w, h;
if (!wd) return;
elm_widget_show_region_get(obj, &x, &y, &w, &h);
if (wd->scroll)
elm_smart_scroller_child_region_show(wd->scroller, x, y, w, h);
}
static void
_hoversel_position(Evas_Object *obj)
{
@ -793,13 +906,21 @@ _resize(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event
{
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
if (wd->linewrap)
{
_sizing_eval(data);
}
else if (wd->scroll)
{
Evas_Coord vw = 0, vh = 0;
elm_smart_scroller_child_viewport_size_get(wd->scroller, &vw, &vh);
if (vw < wd->entmw) vw = wd->entmw;
if (vh < wd->entmh) vh = wd->entmh;
evas_object_resize(wd->ent, vw, vh);
}
if (wd->hoversel) _hoversel_position(data);
// Evas_Coord ww, hh;
// evas_object_geometry_get(wd->ent, NULL, NULL, &ww, &hh);
}
static void
@ -1747,13 +1868,24 @@ elm_entry_add(Evas_Object *parent)
elm_widget_theme_hook_set(obj, _theme_hook);
elm_widget_disable_hook_set(obj, _disable_hook);
elm_widget_signal_emit_hook_set(obj, _signal_emit_hook);
elm_widget_focus_region_hook_set(obj, _focus_region_hook);
elm_widget_on_focus_region_hook_set(obj, _on_focus_region_hook);
elm_widget_signal_callback_add_hook_set(obj, _signal_callback_add_hook);
elm_widget_signal_callback_del_hook_set(obj, _signal_callback_del_hook);
elm_object_cursor_set(obj, ELM_CURSOR_XTERM);
elm_widget_can_focus_set(obj, EINA_TRUE);
elm_widget_highlight_ignore_set(obj, EINA_TRUE);
wd->scroller = elm_smart_scroller_add(e);
elm_widget_sub_object_add(obj, wd->scroller);
elm_smart_scroller_widget_set(wd->scroller, obj);
elm_smart_scroller_object_theme_set(obj, wd->scroller, "scroller", "entry",
elm_widget_style_get(obj));
evas_object_size_hint_weight_set(wd->scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(wd->scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_smart_scroller_bounce_allow_set(wd->scroller, EINA_FALSE, EINA_FALSE);
evas_object_propagate_events_set(wd->scroller, EINA_TRUE);
wd->linewrap = ELM_WRAP_WORD;
wd->editable = EINA_TRUE;
wd->disabled = EINA_FALSE;
@ -1766,14 +1898,14 @@ elm_entry_add(Evas_Object *parent)
edje_object_item_provider_set(wd->ent, _get_item, obj);
edje_object_text_insert_filter_callback_add(wd->ent,"elm.text", _text_filter, obj);
evas_object_event_callback_add(wd->ent, EVAS_CALLBACK_MOVE, _move, obj);
evas_object_event_callback_add(wd->ent, EVAS_CALLBACK_RESIZE, _resize, obj);
evas_object_event_callback_add(wd->ent, EVAS_CALLBACK_MOUSE_DOWN,
_mouse_down, obj);
evas_object_event_callback_add(wd->ent, EVAS_CALLBACK_MOUSE_UP,
_mouse_up, obj);
evas_object_event_callback_add(wd->ent, EVAS_CALLBACK_MOUSE_MOVE,
_mouse_move, obj);
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize, obj);
_elm_theme_object_set(obj, wd->ent, "entry", "base", "default");
edje_object_signal_callback_add(wd->ent, "entry,changed", "elm.text",
_signal_entry_changed, obj);
@ -1868,6 +2000,26 @@ elm_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line)
wd->linewrap = ELM_WRAP_NONE;
elm_entry_cnp_textonly_set(obj, EINA_TRUE);
_theme_hook(obj);
if (wd->scroller)
{
if (wd->single_line)
elm_smart_scroller_policy_set(wd->scroller,
ELM_SMART_SCROLLER_POLICY_OFF,
ELM_SMART_SCROLLER_POLICY_OFF);
else
{
const Elm_Scroller_Policy map[3] =
{
ELM_SMART_SCROLLER_POLICY_AUTO,
ELM_SMART_SCROLLER_POLICY_ON,
ELM_SMART_SCROLLER_POLICY_OFF
};
elm_smart_scroller_policy_set(wd->scroller,
map[wd->policy_h],
map[wd->policy_v]);
}
_sizing_eval(obj);
}
}
/**
@ -2144,7 +2296,7 @@ elm_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap)
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
if (wd->linewrap == wrap) return;
wd->lastw = -1;
wd->linewrap = wrap;
_theme_hook(obj);
}
@ -2366,7 +2518,13 @@ elm_entry_cursor_end_set(Evas_Object *obj)
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
int x, y, w, h;
edje_object_part_text_cursor_end_set(wd->ent, "elm.text", EDJE_CURSOR_MAIN);
if (wd->scroll)
{
elm_widget_show_region_get(wd->ent, &x, &y, &w, &h);
elm_smart_scroller_child_region_show(wd->scroller, x, y, w, h);
}
}
/**
@ -2918,8 +3076,6 @@ elm_entry_filter_limit_size(void *data, Evas_Object *entry, char **text)
widget_type = elm_widget_type_get(entry);
if (!strcmp(widget_type, "entry"))
text_get = elm_entry_entry_get;
else if (!strcmp(widget_type, "scrolled_entry"))
text_get = elm_scrolled_entry_entry_get;
else /* huh? */
return;
@ -3168,7 +3324,7 @@ elm_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly)
* @ingroup Entry
*/
EAPI Eina_Bool
elm_entry_cnp_textonly_get(Evas_Object *obj)
elm_entry_cnp_textonly_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
Widget_Data *wd = elm_widget_data_get(obj);
@ -3176,3 +3332,338 @@ elm_entry_cnp_textonly_get(Evas_Object *obj)
return wd->textonly;
}
/**
* Enable or disable scrolling in entry
*
* Normally the entry is not scrollable unless you enable it with this call.
*
* @param obj The entry object
* @param scroll EINA_TRUE if it is to be scrollable, EINA_FALSE otherwise
*
* @ingroup Entry
*/
EAPI void
elm_entry_scrollable_set(Evas_Object *obj, Eina_Bool scroll)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
scroll = !!scroll;
if (wd->scroll == scroll) return;
wd->scroll = scroll;
if (wd->scroll)
{
elm_widget_sub_object_del(obj, wd->scroller);
elm_widget_resize_object_set(obj, wd->scroller);
elm_widget_sub_object_add(obj, wd->ent);
elm_smart_scroller_child_set(wd->scroller, wd->ent);
evas_object_show(wd->scroller);
elm_widget_on_show_region_hook_set(obj, _show_region_hook, obj);
}
else
{
elm_smart_scroller_child_set(wd->scroller, NULL);
elm_widget_sub_object_del(obj, wd->ent);
elm_widget_resize_object_set(obj, wd->ent);
evas_object_smart_member_add(wd->scroller, obj);
elm_widget_sub_object_add(obj, wd->scroller);
evas_object_hide(wd->scroller);
elm_widget_on_show_region_hook_set(obj, NULL, NULL);
}
wd->lastw = -1;
_theme_hook(obj);
}
/**
* Get the scrollable state of the entry
*
* Normally the entry is not scrollable. This gets the scrollable state
* of the entry. See elm_entry_scrollable_set() for more information.
*
* @param obj The entry object
* @return The scrollable state
*
* @ingroup Entry
*/
EAPI Eina_Bool
elm_entry_scrollable_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return EINA_FALSE;
return wd->scroll;
}
/**
* This sets a widget to be displayed to the left of a scrolled entry.
*
* @param obj The scrolled entry object
* @param icon The widget to display on the left side of the scrolled
* entry.
*
* @note A previously set widget will be destroyed.
* @note If the object being set does not have minimum size hints set,
* it won't get properly displayed.
*
* @ingroup Entry
* @see elm_entry_end_set
*/
EAPI void
elm_entry_icon_set(Evas_Object *obj, Evas_Object *icon)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
Evas_Object *edje;
if (!wd) return;
EINA_SAFETY_ON_NULL_RETURN(icon);
if (wd->icon == icon) return;
if (wd->icon) evas_object_del(wd->icon);
wd->icon = icon;
edje = elm_smart_scroller_edje_object_get(wd->scroller);
if (!edje) return;
edje_object_part_swallow(edje, "elm.swallow.icon", wd->icon);
edje_object_signal_emit(edje, "elm,action,show,icon", "elm");
_sizing_eval(obj);
}
/**
* Gets the leftmost widget of the scrolled entry. This object is
* owned by the scrolled entry and should not be modified.
*
* @param obj The scrolled entry object
* @return the left widget inside the scroller
*
* @ingroup Entry
*/
EAPI Evas_Object *
elm_entry_icon_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
return wd->icon;
}
/**
* Unset the leftmost widget of the scrolled entry, unparenting and
* returning it.
*
* @param obj The scrolled entry object
* @return the previously set icon sub-object of this entry, on
* success.
*
* @see elm_entry_icon_set()
*
* @ingroup Entry
*/
EAPI Evas_Object *
elm_entry_icon_unset(Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
Evas_Object *ret = NULL;
if (!wd) return NULL;
if (wd->icon)
{
Evas_Object *edje = elm_smart_scroller_edje_object_get(wd->scroller);
if (!edje) return NULL;
ret = wd->icon;
edje_object_part_unswallow(edje, wd->icon);
edje_object_signal_emit(edje, "elm,action,hide,icon", "elm");
wd->icon = NULL;
_sizing_eval(obj);
}
return ret;
}
/**
* Sets the visibility of the left-side widget of the scrolled entry,
* set by @elm_entry_icon_set().
*
* @param obj The scrolled entry object
* @param setting EINA_TRUE if the object should be displayed,
* EINA_FALSE if not.
*
* @ingroup Entry
*/
EAPI void
elm_entry_icon_visible_set(Evas_Object *obj, Eina_Bool setting)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if ((!wd) || (!wd->icon)) return;
if (setting)
evas_object_hide(wd->icon);
else
evas_object_show(wd->icon);
_sizing_eval(obj);
}
/**
* This sets a widget to be displayed to the end of a scrolled entry.
*
* @param obj The scrolled entry object
* @param end The widget to display on the right side of the scrolled
* entry.
*
* @note A previously set widget will be destroyed.
* @note If the object being set does not have minimum size hints set,
* it won't get properly displayed.
*
* @ingroup Entry
* @see elm_entry_icon_set
*/
EAPI void
elm_entry_end_set(Evas_Object *obj, Evas_Object *end)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
Evas_Object *edje;
if (!wd) return;
EINA_SAFETY_ON_NULL_RETURN(end);
if (wd->end == end) return;
if (wd->end) evas_object_del(wd->end);
wd->end = end;
edje = elm_smart_scroller_edje_object_get(wd->scroller);
if (!edje) return;
edje_object_part_swallow(edje, "elm.swallow.end", wd->end);
edje_object_signal_emit(edje, "elm,action,show,end", "elm");
_sizing_eval(obj);
}
/**
* Gets the endmost widget of the scrolled entry. This object is owned
* by the scrolled entry and should not be modified.
*
* @param obj The scrolled entry object
* @return the right widget inside the scroller
*
* @ingroup Entry
*/
EAPI Evas_Object *
elm_entry_end_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
return wd->end;
}
/**
* Unset the endmost widget of the scrolled entry, unparenting and
* returning it.
*
* @param obj The scrolled entry object
* @return the previously set icon sub-object of this entry, on
* success.
*
* @see elm_entry_icon_set()
*
* @ingroup Entry
*/
EAPI Evas_Object *
elm_entry_end_unset(Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Widget_Data *wd = elm_widget_data_get(obj);
Evas_Object *ret = NULL;
if (!wd) return NULL;
if (wd->end)
{
Evas_Object *edje = elm_smart_scroller_edje_object_get(wd->scroller);
if (!edje) return NULL;
ret = wd->end;
edje_object_part_unswallow(edje, wd->end);
edje_object_signal_emit(edje, "elm,action,hide,end", "elm");
wd->end = NULL;
_sizing_eval(obj);
}
return ret;
}
/**
* Sets the visibility of the end widget of the scrolled entry, set by
* @elm_entry_end_set().
*
* @param obj The scrolled entry object
* @param setting EINA_TRUE if the object should be displayed,
* EINA_FALSE if not.
*
* @ingroup Entry
*/
EAPI void
elm_entry_end_visible_set(Evas_Object *obj, Eina_Bool setting)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if ((!wd) || (!wd->end)) return;
if (setting)
evas_object_hide(wd->end);
else
evas_object_show(wd->end);
_sizing_eval(obj);
}
/**
* This sets the scrolled entry's scrollbar policy (ie. enabling/disabling them).
*
* @param obj The scrolled entry object
* @param h The horizontal scrollbar policy to apply
* @param v The vertical scrollbar policy to apply
*
* @ingroup Entry
*/
EAPI void
elm_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
const Elm_Scroller_Policy map[3] =
{
ELM_SMART_SCROLLER_POLICY_AUTO,
ELM_SMART_SCROLLER_POLICY_ON,
ELM_SMART_SCROLLER_POLICY_OFF
};
if (!wd) return;
wd->policy_h = h;
wd->policy_v = v;
elm_smart_scroller_policy_set(wd->scroller,
map[wd->policy_h],
map[wd->policy_v]);
}
/**
* This enables/disables bouncing within the entry.
*
* @param obj The scrolled entry object
* @param h The horizontal bounce state
* @param v The vertical bounce state
*
* @ingroup Entry
*/
EAPI void
elm_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
elm_smart_scroller_bounce_allow_set(wd->scroller, h_bounce, v_bounce);
}
/**
* Get the bounce mode
*
* @param obj The Entry object
* @param h_bounce Allow bounce horizontally
* @param v_bounce Allow bounce vertically
*
* @ingroup Entry
*/
EAPI void
elm_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce)
{
ELM_CHECK_WIDTYPE(obj, widtype);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return;
elm_smart_scroller_bounce_allow_get(wd->scroller, h_bounce, v_bounce);
}