big move forward. scrolled entry and entry merge into entry. entry now
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 17 Jun 2011 09:44:31 +0000 (09:44 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 17 Jun 2011 09:44:31 +0000 (09:44 +0000)
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.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@60438 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

23 files changed:
src/bin/config.c
src/bin/test.c
src/bin/test_conform.c
src/bin/test_cursor.c
src/bin/test_entry.c
src/bin/test_flip.c
src/bin/test_focus.c
src/bin/test_focus2.c
src/bin/test_focus3.c
src/bin/test_genlist.c
src/bin/test_grid.c
src/bin/test_index.c
src/bin/test_list.c
src/bin/test_store.c
src/bin/test_tooltip.c
src/bin/test_win_inline.c
src/edje_externals/Makefile.am
src/edje_externals/elm_scrolled_entry.c [deleted file]
src/lib/Elementary.h.in
src/lib/elc_fileselector.c
src/lib/elc_fileselector_entry.c
src/lib/elc_scrolled_entry.c
src/lib/elm_entry.c

index ee53434..d50ffd0 100644 (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);
index 640656f..66bf32a 100644 (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)
index e8210e8..c08822e 100644 (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);
index 05399b8..3cceee0 100644 (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);
index a69ed87..e58677e 100644 (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);
index 345d025..7c97d3c 100644 (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);
 
index 7227d6d..00dd2e3 100644 (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);
           }
index 5191a26..29f484d 100644 (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);
index 810bcd1..a6efbaf 100644 (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);
 
index c197f73..e91e16a 100644 (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);
index d59e30b..60378cf 100644 (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);
 
index e0e5d8a..7c57f67 100644 (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);
index c6d4bd0..cf9146b 100644 (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);
index bbbe75a..7bbaa89 100644 (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[] =
index d3a0529..220ee10 100644 (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);
 
index 2c2d675..0450c56 100644 (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);
 
index 18d3900..6f74f69 100644 (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 \
diff --git a/src/edje_externals/elm_scrolled_entry.c b/src/edje_externals/elm_scrolled_entry.c
deleted file mode 100644 (file)
index 266e0e1..0000000
+++ /dev/null
@@ -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");
index fc974c6..70e832a 100644 (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);
index 288c868..a1cbaa4 100644 (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);
           }
index dec62de..c8e85ea 100644 (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);
 }
 
 /**
index 1a2a35b..c1de28e 100644 (file)
 #include <Elementary.h>
 #include "elm_priv.h"
-
-/**
- * @defgroup Scrolled_Entry Scrolled_Entry
- *
- * A scrolled entry is a convenience widget which shows
- * a box that the user can enter text into.  Unlike an
- * @ref Entry widget, scrolled entries scroll with user
- * input so that the window will not expand if the length
- * of text inside the entry exceeds the initial size of the
- * widget.
- *
- * Signals that you can add callbacks for are:
- *
- * "changed" - The text within the entry was changed
- * "activated" - The entry has received focus and the cursor
- * "press" - The entry has been clicked
- * "longpressed" - The entry has been clicked for a couple seconds
- * "clicked" - The entry has been clicked
- * "clicked,double" - The entry has been double clicked
- * "focused" - The entry has received focus
- * "unfocused" - The entry has lost focus
- * "selection,paste" - A paste action has occurred
- * "selection,copy" - A copy action has occurred
- * "selection,cut" - A cut action has occurred
- * "selection,start" - A selection has begun
- * "selection,changed" - The selection has changed
- * "selection,cleared" - The selection has been cleared
- * "cursor,changed" - The cursor has changed
- * "anchor,clicked" - The anchor has been clicked
- */
-
-typedef struct _Widget_Data Widget_Data;
-typedef struct _Elm_Entry_Context_Menu_Item Elm_Entry_Context_Menu_Item;
-typedef struct _Elm_Entry_Item_Provider Elm_Entry_Item_Provider;
-typedef struct _Elm_Entry_Text_Filter Elm_Entry_Text_Filter;
-
-struct _Widget_Data
-{
-   Evas_Object *scroller;
-   Evas_Object *entry;
-   Evas_Object *icon;
-   Evas_Object *end;
-   Elm_Scroller_Policy policy_h, policy_v;
-   Eina_List *items;
-   Eina_List *item_providers;
-   Eina_List *text_filters;
-   Eina_Bool single_line : 1;
-};
-
-struct _Elm_Entry_Context_Menu_Item
-{
-   Evas_Object *obj;
-   Evas_Smart_Cb func;
-   void *data;
-};
-
-struct _Elm_Entry_Item_Provider
-{
-   Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item);
-   void *data;
-};
-
-struct _Elm_Entry_Text_Filter
-{
-   void (*func) (void *data, Evas_Object *entry, char **text);
-   void *data;
-};
-
-static const char *widtype = NULL;
-
-static const char SIG_CHANGED[] = "changed";
-static const char SIG_ACTIVATED[] = "activated";
-static const char SIG_PRESS[] = "press";
-static const char SIG_LONGPRESSED[] = "longpressed";
-static const char SIG_CLICKED[] = "clicked";
-static const char SIG_CLICKED_DOUBLE[] = "clicked,double";
-static const char SIG_FOCUSED[] = "focused";
-static const char SIG_UNFOCUSED[] = "unfocused";
-static const char SIG_SELECTION_PASTE[] = "selection,paste";
-static const char SIG_SELECTION_COPY[] = "selection,copy";
-static const char SIG_SELECTION_CUT[] = "selection,cut";
-static const char SIG_SELECTION_START[] = "selection,start";
-static const char SIG_SELECTION_CHANGED[] = "selection,changed";
-static const char SIG_SELECTION_CLEARED[] = "selection,cleared";
-static const char SIG_CURSOR_CHANGED[] = "cursor,changed";
-static const char SIG_ANCHOR_CLICKED[] = "anchor,clicked";
-static const Evas_Smart_Cb_Description _signals[] = {
-       {SIG_CHANGED, ""},
-       {SIG_ACTIVATED, ""},
-       {SIG_PRESS, ""},
-       {SIG_LONGPRESSED, ""},
-       {SIG_CLICKED, ""},
-       {SIG_CLICKED_DOUBLE, ""},
-       {SIG_FOCUSED, ""},
-       {SIG_UNFOCUSED, ""},
-       {SIG_SELECTION_PASTE, ""},
-       {SIG_SELECTION_COPY, ""},
-       {SIG_SELECTION_CUT, ""},
-       {SIG_SELECTION_START, ""},
-       {SIG_SELECTION_CHANGED, ""},
-       {SIG_SELECTION_CLEARED, ""},
-       {SIG_CURSOR_CHANGED, ""},
-       {SIG_ANCHOR_CLICKED, ""},
-       {NULL, NULL}
-};
-
-static void
-_del_hook(Evas_Object *obj)
-{
-   Elm_Entry_Context_Menu_Item *ci;
-   Elm_Entry_Item_Provider *ip;
-   Elm_Entry_Text_Filter *tf;
-
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   EINA_LIST_FREE(wd->items, ci)
-      free(ci);
-   EINA_LIST_FREE(wd->item_providers, ip)
-      free(ip);
-   EINA_LIST_FREE(wd->text_filters, tf)
-      free(tf);
-
-   if (!wd) return;
-   free(wd);
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-   Widget_Data *wd;
-   Evas_Coord minw, minh, minw_scr, minh_scr;
-   wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   evas_object_size_hint_min_get(obj, &minw, &minh);
-   evas_object_size_hint_min_get(wd->scroller, &minw_scr, &minh_scr);
-   if (minw < minw_scr) minw = minw_scr;
-   if (minh < minh_scr) minh = minh_scr;
-
-   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);
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_object_style_set(wd->entry, elm_widget_style_get(obj));
-   elm_object_style_set(wd->scroller, elm_widget_style_get(obj));
-   elm_object_disabled_set(wd->entry, elm_widget_disabled_get(obj));
-   elm_object_disabled_set(wd->scroller, elm_widget_disabled_get(obj));
-   _sizing_eval(obj);
-}
-
-static void
-_on_focus_hook(void *data __UNUSED__, Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (elm_widget_focus_get(obj))
-     elm_widget_focus_steal(wd->entry);
-}
-
-static void
-_disable_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_object_disabled_set(wd->entry, elm_widget_disabled_get(obj));
-}
-
-static void
-_signal_emit_hook(Evas_Object *obj, const char *emission, const char *source)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_object_signal_emit(wd->entry, emission, source);
-   elm_object_signal_emit(wd->scroller, emission, source);
-}
-
-static void
-_signal_callback_add_hook(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_object_signal_callback_add(wd->entry, emission, source, func_cb, data);
-   elm_object_signal_callback_add(wd->scroller, emission, source, func_cb,
-                                  data);
-}
-
-static void
-_signal_callback_del_hook(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb func_cb, void *data __UNUSED__)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   elm_object_signal_callback_del(wd->entry, emission, source, func_cb);
-   elm_object_signal_callback_del(wd->scroller, emission, source, func_cb);
-}
-
-static void
-_on_focus_region_hook(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   elm_widget_focus_region_get(wd->entry, x, y, w, h);
-}
-
-static void
-_changed_size_hints(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
-{
-   _sizing_eval(obj);
-}
-
-static void
-_entry_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   _sizing_eval(data);
-   evas_object_smart_callback_call(data, SIG_CHANGED, event_info);
-}
-
-static void
-_entry_activated(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_ACTIVATED, event_info);
-}
-
-static void
-_entry_press(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_PRESS, event_info);
-}
-
-static void
-_entry_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_CLICKED, event_info);
-}
-
-static void
-_entry_clicked_double(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_CLICKED_DOUBLE, event_info);
-}
-
-static void
-_entry_cursor_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_CURSOR_CHANGED, event_info);
-}
-
-static void
-_entry_anchor_clicked(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_ANCHOR_CLICKED, event_info);
-}
-
-static void
-_entry_selection_start(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_SELECTION_START, event_info);
-}
-
-static void
-_entry_selection_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_SELECTION_CHANGED, event_info);
-}
-
-static void
-_entry_selection_cleared(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_SELECTION_CLEARED, event_info);
-}
-
-static void
-_entry_selection_paste(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_SELECTION_PASTE, event_info);
-}
-
-static void
-_entry_selection_copy(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_SELECTION_COPY, event_info);
-}
-
-static void
-_entry_selection_cut(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_SELECTION_CUT, event_info);
-}
-
-static void
-_entry_longpressed(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_LONGPRESSED, event_info);
-}
-
-static void
-_entry_focused(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_FOCUSED, event_info);
-}
-
-static void
-_entry_unfocused(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   evas_object_smart_callback_call(data, SIG_UNFOCUSED, event_info);
-}
-
-static void
-_context_item_wrap_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info)
-{
-   Elm_Entry_Context_Menu_Item *ci = data;
-   ci->func(ci->data, ci->obj, event_info);
-}
-
-static Evas_Object *
-_item_provider_wrap_cb(void *data, Evas_Object *obj __UNUSED__, const char *item)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   Eina_List *l;
-   Elm_Entry_Item_Provider *ip;
-
-   EINA_LIST_FOREACH(wd->item_providers, l, ip)
-     {
-        Evas_Object *o;
-        o = ip->func(ip->data, data, item);
-        if (o) return o;
-     }
-   return NULL;
-}
-
-static void
-_text_filter_wrap_cb(void *data, Evas_Object *obj __UNUSED__, char **text)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   Eina_List *l;
-   Elm_Entry_Text_Filter *tf;
-
-   EINA_LIST_FOREACH(wd->text_filters, l, tf)
-     {
-        tf->func(tf->data, data, text);
-        if (!*text) break;
-     }
-}
-
-/**
- * This adds a scrolled entry to @p parent object.
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Evas_Object *
+EINA_DEPRECATED EAPI Evas_Object *
 elm_scrolled_entry_add(Evas_Object *parent)
 {
    Evas_Object *obj;
-   Evas *e;
-   Widget_Data *wd;
-
-   ELM_WIDGET_STANDARD_SETUP(wd, Widget_Data, parent, e, obj, NULL);
-
-   ELM_SET_WIDTYPE(widtype, "scrolled_entry");
-   elm_widget_type_set(obj, "scrolled_entry");
-   elm_widget_sub_object_add(parent, obj);
-   elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL);
-   elm_widget_data_set(obj, wd);
-   elm_widget_del_hook_set(obj, _del_hook);
-   elm_widget_disable_hook_set(obj, _disable_hook);
-   elm_widget_can_focus_set(obj, EINA_TRUE);
-   elm_widget_theme_hook_set(obj, _theme_hook);
-   elm_widget_on_focus_region_hook_set(obj, _on_focus_region_hook);
-   elm_widget_signal_emit_hook_set(obj, _signal_emit_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);
-
-   wd->scroller = elm_scroller_add(obj);
-   elm_scroller_custom_widget_base_theme_set(wd->scroller, "scroller", "entry");
-   elm_widget_resize_object_set(obj, wd->scroller);
-   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_scroller_bounce_set(wd->scroller, EINA_FALSE, EINA_FALSE);
-   elm_scroller_propagate_events_set(wd->scroller, EINA_TRUE);
-   evas_object_show(wd->scroller);
-
-   wd->entry = elm_entry_add(obj);
-   evas_object_size_hint_weight_set(wd->entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_size_hint_align_set(wd->entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_scroller_content_set(wd->scroller, wd->entry);
-   evas_object_show(wd->entry);
-
-   elm_entry_text_filter_prepend(wd->entry, _text_filter_wrap_cb, obj);
-   elm_entry_item_provider_prepend(wd->entry, _item_provider_wrap_cb, obj);
-
-   evas_object_smart_callback_add(wd->entry, "changed", _entry_changed, obj);
-   evas_object_smart_callback_add(wd->entry, "activated", _entry_activated, obj);
-   evas_object_smart_callback_add(wd->entry, "press", _entry_press, obj);
-   evas_object_smart_callback_add(wd->entry, "clicked", _entry_clicked, obj);
-   evas_object_smart_callback_add(wd->entry, "clicked,double", _entry_clicked_double, obj);
-   evas_object_smart_callback_add(wd->entry, "cursor,changed", _entry_cursor_changed, obj);
-   evas_object_smart_callback_add(wd->entry, "anchor,clicked", _entry_anchor_clicked, obj);
-   evas_object_smart_callback_add(wd->entry, "selection,start", _entry_selection_start, obj);
-   evas_object_smart_callback_add(wd->entry, "selection,changed", _entry_selection_changed, obj);
-   evas_object_smart_callback_add(wd->entry, "selection,cleared", _entry_selection_cleared, obj);
-   evas_object_smart_callback_add(wd->entry, "selection,paste", _entry_selection_paste, obj);
-   evas_object_smart_callback_add(wd->entry, "selection,copy", _entry_selection_copy, obj);
-   evas_object_smart_callback_add(wd->entry, "selection,cut", _entry_selection_cut, obj);
-   evas_object_smart_callback_add(wd->entry, "longpressed", _entry_longpressed, obj);
-   evas_object_smart_callback_add(wd->entry, "focused", _entry_focused, obj);
-   evas_object_smart_callback_add(wd->entry, "unfocused", _entry_unfocused, obj);
-
-   evas_object_event_callback_add(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
-                                  _changed_size_hints, NULL);
-
-   _sizing_eval(obj);
-
-   // TODO: convert Elementary to subclassing of Evas_Smart_Class
-   // TODO: and save some bytes, making descriptions per-class and not instance!
-   evas_object_smart_callbacks_descriptions_set(obj, _signals);
+   obj = elm_entry_add(parent);
+   elm_entry_scrollable_set(obj, EINA_TRUE);
    return obj;
 }
-
-/**
- * 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 Scrolled_Entry
- * @see elm_scrolled_entry_end_set
- */
-EAPI void
+EINA_DEPRECATED EAPI void
 elm_scrolled_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_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 Scrolled_Entry
- */
-EAPI Evas_Object *
+{elm_entry_icon_set(obj, icon);}
+EINA_DEPRECATED EAPI Evas_Object *
 elm_scrolled_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_scrolled_entry_icon_set()
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Evas_Object *
+{return elm_entry_icon_get(obj);}
+EINA_DEPRECATED EAPI Evas_Object *
 elm_scrolled_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_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_scrolled_entry_icon_set().
- *
- * @param obj The scrolled entry object
- * @param setting EINA_TRUE if the object should be displayed,
- * EINA_FALSE if not.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_icon_unset(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_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 Scrolled_Entry
- * @see elm_scrolled_entry_icon_set
- */
-EAPI void
+{elm_entry_icon_visible_set(obj, setting);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_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_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 Scrolled_Entry
- */
-EAPI Evas_Object *
+{elm_entry_end_set(obj, end);}
+EINA_DEPRECATED EAPI Evas_Object *
 elm_scrolled_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_scrolled_entry_icon_set()
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Evas_Object *
+{return elm_entry_end_get(obj);}
+EINA_DEPRECATED EAPI Evas_Object *
 elm_scrolled_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_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_scrolled_entry_end_set().
- *
- * @param obj The scrolled entry object
- * @param setting EINA_TRUE if the object should be displayed,
- * EINA_FALSE if not.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_end_unset(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_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 object not to line wrap.  All input will
- * be on a single line, and the entry box will scroll with user input.
- *
- * @param obj The scrolled entry object
- * @param single_line If true, the text in the scrolled entry
- * will be on a single line.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_end_visible_set(obj, setting);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->single_line == single_line) return;
-   elm_entry_single_line_set(wd->entry, single_line);
-   wd->single_line = single_line;
-   if (single_line)
-     {
-        elm_scroller_policy_set(wd->scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
-        elm_scroller_content_min_limit(wd->scroller, 0, 1);
-     }
-   else
-     {
-        elm_scroller_policy_set(wd->scroller, wd->policy_h, wd->policy_v);
-        elm_scroller_content_min_limit(wd->scroller, 0, 0);
-     }
-   _sizing_eval(obj);
-}
-
-/**
- * This returns true if the scrolled entry has been set to single line mode.
- * See also elm_scrolled_entry_single_line_set().
- *
- * @param obj The scrolled entry object
- * @return single_line If true, the text in the scrolled entry is set to display
- * on a single line.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{elm_entry_single_line_set(obj, single_line);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_single_line_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 elm_entry_single_line_get(wd->entry);
-}
-
-
-/**
- * This sets the scrolled entry object to password mode.  All text entered
- * and/or displayed within the widget will be replaced with asterisks (*).
- *
- * @param obj The scrolled entry object
- * @param password If true, password mode is enabled.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_single_line_get(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_password_set(Evas_Object *obj, Eina_Bool password)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_password_set(wd->entry, password);
-}
-
-/**
- * This returns whether password mode is enabled.
- * See also elm_scrolled_entry_password_set().
- *
- * @param obj The scrolled entry object
- * @return If true, the scrolled entry is set to display all characters
- * as asterisks (*).
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{elm_entry_password_set(obj, password);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_password_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 elm_entry_password_get(wd->entry);
-}
-
-
-/**
- * This sets the text displayed within the scrolled entry to @p entry.
- *
- * @param obj The scrolled entry object
- * @param entry The text to be displayed
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_password_get(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_entry_set(Evas_Object *obj, const char *entry)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_entry_set(wd->entry, entry);
-}
-
-/**
- * This appends @p entry to the scrolled entry
- *
- * @param obj The scrolled entry object
- * @param entry The text to be displayed
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_entry_set(obj, entry);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_entry_append(Evas_Object *obj, const char *entry)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_entry_append(wd->entry, entry);
-}
-
-/**
- * This returns the text currently shown in object @p entry.
- * See also elm_scrolled_entry_entry_set().
- *
- * @param obj The scrolled entry object
- * @return The currently displayed text or NULL on failure
- *
- * @ingroup Scrolled_Entry
- */
-EAPI const char *
+{elm_entry_entry_append(obj, entry);}
+EINA_DEPRECATED EAPI const char *
 elm_scrolled_entry_entry_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_entry_entry_get(wd->entry);
-}
-
-/**
- * This returns EINA_TRUE if the entry is empty/there was an error
- * and EINA_FALSE if it is not empty.
- *
- * @param obj The entry object
- * @return If the entry is empty or not.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{return elm_entry_entry_get(obj);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_is_empty(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_TRUE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_TRUE;
-   return elm_entry_is_empty(wd->entry);
-}
-
-/**
- * This returns all selected text within the scrolled entry.
- *
- * @param obj The scrolled entry object
- * @return The selected text within the scrolled entry or NULL on failure
- *
- * @ingroup Scrolled_Entry
- */
-EAPI const char *
+{return elm_entry_is_empty(obj);}
+EINA_DEPRECATED EAPI const char *
 elm_scrolled_entry_selection_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_entry_selection_get(wd->entry);
-}
-
-/**
- * This inserts text in @p entry at the beginning of the scrolled entry
- * object.
- *
- * @param obj The scrolled entry object
- * @param entry The text to insert
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_selection_get(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_entry_insert(Evas_Object *obj, const char *entry)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_entry_insert(wd->entry, entry);
-}
-
-/**
- * This enables word line wrapping in the scrolled entry object.  It is the opposite
- * of elm_scrolled_entry_single_line_set().  Additionally, setting this disables
- * character line wrapping.
- * See also elm_scrolled_entry_line_char_wrap_set().
- *
- * @param obj The scrolled entry object
- * @param wrap wrap according to Elm_Wrap_Type
- * of the object. Wrapping will occur at the end of the word before the end of the
- * object.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_entry_insert(obj, entry);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_line_wrap_set(wd->entry, wrap);
-}
-
-/**
- * This sets the editable attribute of the scrolled entry.
- *
- * @param obj The scrolled entry object
- * @param editable If true, the scrolled entry will be editable by the user.
- * If false, it will be set to the disabled state.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_line_wrap_set(obj, wrap);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_editable_set(Evas_Object *obj, Eina_Bool editable)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_editable_set(wd->entry, editable);
-}
-
-/**
- * This gets the editable attribute of the scrolled entry.
- * See also elm_scrolled_entry_editable_set().
- *
- * @param obj The scrolled entry object
- * @return If true, the scrolled entry is editable by the user.
- * If false, it is not editable by the user
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{elm_entry_editable_set(obj, editable);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_editable_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 elm_entry_editable_get(wd->entry);
-}
-
-
-/**
- * This drops any existing text selection within the scrolled entry.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_editable_get(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_select_none(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_select_none(wd->entry);
-}
-
-/**
- * This selects all text within the scrolled entry.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_select_none(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_select_all(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_select_all(wd->entry);
-}
-
-/**
- * This moves the cursor one place to the right within the entry.
- *
- * @param obj The scrolled entry object
- * @return EINA_TRUE upon success, EINA_FALSE upon failure
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{return elm_entry_select_all(obj);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_cursor_next(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return elm_entry_cursor_next(wd->entry);
-}
-
-/**
- * This moves the cursor one place to the left within the entry.
- *
- * @param obj The scrolled entry object
- * @return EINA_TRUE upon success, EINA_FALSE upon failure
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{return elm_entry_cursor_next(obj);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_cursor_prev(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return elm_entry_cursor_prev(wd->entry);
-}
-
-/**
- * This moves the cursor one line up within the entry.
- *
- * @param obj The scrolled entry object
- * @return EINA_TRUE upon success, EINA_FALSE upon failure
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{return elm_entry_cursor_prev(obj);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_cursor_up(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return elm_entry_cursor_up(wd->entry);
-}
-
-/**
- * This moves the cursor one line down within the entry.
- *
- * @param obj The scrolled entry object
- * @return EINA_TRUE upon success, EINA_FALSE upon failure
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{return elm_entry_cursor_up(obj);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_cursor_down(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return elm_entry_cursor_down(wd->entry);
-}
-
-/**
- * This moves the cursor to the beginning of the entry.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_cursor_down(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_cursor_begin_set(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_cursor_begin_set(wd->entry);
-}
-
-/**
- * This moves the cursor to the end of the entry.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_cursor_begin_set(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_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;
-   elm_entry_cursor_end_set(wd->entry);
-   elm_widget_show_region_get(wd->entry, &x, &y, &w, &h);
-   elm_scroller_region_show(wd->scroller, x, y, w, h);
-}
-
-/**
- * This moves the cursor to the beginning of the current line.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_cursor_end_set(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_cursor_line_begin_set(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_cursor_line_begin_set(wd->entry);
-}
-
-/**
- * This moves the cursor to the end of the current line.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_cursor_line_begin_set(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_cursor_line_end_set(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_cursor_line_end_set(wd->entry);
-}
-
-/**
- * This begins a selection within the scrolled entry as though
- * the user were holding down the mouse button to make a selection.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_cursor_line_end_set(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_cursor_selection_begin(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_cursor_selection_begin(wd->entry);
-}
-
-/**
- * This ends a selection within the scrolled entry as though
- * the user had just released the mouse button while making a selection.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_cursor_selection_begin(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_cursor_selection_end(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_cursor_selection_end(wd->entry);
-}
-
-/**
- * TODO: fill this in
- *
- * @param obj The scrolled entry object
- * @return TODO: fill this in
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{return elm_entry_cursor_selection_end(obj);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_cursor_is_format_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 elm_entry_cursor_is_format_get(wd->entry);
-}
-
-/**
- * This returns whether the cursor is visible.
- *
- * @param obj The scrolled entry object
- * @return If true, the cursor is visible.
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{return elm_entry_cursor_is_format_get(obj);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_cursor_is_visible_format_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 elm_entry_cursor_is_visible_format_get(wd->entry);
-}
-
-/**
- * TODO: fill this in
- *
- * @param obj The scrolled entry object
- * @return TODO: fill this in
- *
- * @ingroup Scrolled_Entry
- */
-EAPI const char *
+{return elm_entry_cursor_is_visible_format_get(obj);}
+EINA_DEPRECATED EAPI const char *
 elm_scrolled_entry_cursor_content_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_entry_cursor_content_get(wd->entry);
-}
-
-/**
- * Sets the cursor position in the scrolled entry to the given value
- *
- * @param obj The scrolled entry object
- * @param pos the position of the cursor
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_cursor_content_get(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_cursor_pos_set(Evas_Object *obj, int pos)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_cursor_pos_set(wd->entry, pos);
-}
-
-/**
- * Retrieves the current position of the cursor in the scrolled entry
- *
- * @param obj The entry object
- * @return the cursor position
- *
- * @ingroup Scrolled_Entry
- */
-EAPI int
+{elm_entry_cursor_pos_set(obj, pos);}
+EINA_DEPRECATED EAPI int
 elm_scrolled_entry_cursor_pos_get(const Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) 0;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return 0;
-   return elm_entry_cursor_pos_get(wd->entry);
-}
-
-/**
- * This executes a "cut" action on the selected text in the scrolled entry.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_cursor_pos_get(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_selection_cut(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_selection_cut(wd->entry);
-}
-
-/**
- * This executes a "copy" action on the selected text in the scrolled entry.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_selection_cut(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_selection_copy(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_selection_copy(wd->entry);
-}
-
-/**
- * This executes a "paste" action in the scrolled entry.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_selection_copy(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_selection_paste(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_selection_paste(wd->entry);
-}
-
-/**
- * This clears and frees the items in a scrolled entry's contextual (right click) menu.
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_selection_paste(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_context_menu_clear(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_context_menu_clear(wd->entry);
-}
-
-/**
- * This adds an item to the scrolled entry's contextual menu.
- *
- * @param obj The scrolled entry object
- * @param label The item's text label
- * @param icon_file The item's icon file
- * @param icon_type The item's icon type
- * @param func The callback to execute when the item is clicked
- * @param data The data to associate with the item for related functions
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_context_menu_clear(obj);}
+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)
-{
-   Elm_Entry_Context_Menu_Item *ci;
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-
-   ci = malloc(sizeof(Elm_Entry_Context_Menu_Item));
-   if (!ci) return;
-   ci->func = func;
-   ci->data = (void *)data;
-   ci->obj = obj;
-   wd->items = eina_list_append(wd->items, ci);
-   elm_entry_context_menu_item_add(wd->entry, label, icon_file, icon_type, _context_item_wrap_cb, ci);
-}
-
-/**
- * This disables the scrolled entry's contextual (right click) menu.
- *
- * @param obj The scrolled entry object
- * @param disabled If true, the menu is disabled
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_context_menu_item_add(obj, label, icon_file, icon_type, func, data);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_context_menu_disabled_set(Evas_Object *obj, Eina_Bool disabled)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_context_menu_disabled_set(wd->entry, disabled);
-}
-
-/**
- * This returns whether the scrolled entry's contextual (right click) menu is disabled.
- *
- * @param obj The scrolled entry object
- * @return If true, the menu is disabled
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{elm_entry_context_menu_disabled_set(obj, disabled);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_context_menu_disabled_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 elm_entry_context_menu_disabled_get(wd->entry);
-}
-
-/**
- * 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 Scrolled_Entry
- */
-EAPI void
+{return elm_entry_context_menu_disabled_get(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_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);
-   if (!wd) return;
-   wd->policy_h = h;
-   wd->policy_v = v;
-   elm_scroller_policy_set(wd->scroller, h, 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 Scrolled_Entry
- */
-EAPI void
+{elm_entry_scrollbar_policy_set(obj, h, v);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_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_scroller_bounce_set(wd->scroller, h_bounce, v_bounce);
-}
-
-/**
- * Get the bounce mode
- *
- * @param obj The Scrolled_Entry object
- * @param h_bounce Allow bounce horizontally
- * @param v_bounce Allow bounce vertically
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_bounce_set(obj, h_bounce, v_bounce);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_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_scroller_bounce_get(wd->scroller, h_bounce, v_bounce);
-}
-
-/**
- * This appends a custom item provider to the list for that entry
- *
- * This appends the given callback. The list is walked from beginning to end
- * with each function called given the item href string in the text. If the
- * function returns an object handle other than NULL (it should create an
- * and object to do this), then this object is used to replace that item. If
- * not the next provider is called until one provides an item object, or the
- * default provider in entry does.
- *
- * @param obj The entry object
- * @param func The function called to provide the item object
- * @param data The data passed to @p func
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_bounce_get(obj, h_bounce, v_bounce);}
+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)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   EINA_SAFETY_ON_NULL_RETURN(func);
-   Elm_Entry_Item_Provider *ip = calloc(1, sizeof(Elm_Entry_Item_Provider));
-   if (!ip) return;
-   ip->func = func;
-   ip->data = data;
-   wd->item_providers = eina_list_append(wd->item_providers, ip);
-}
-
-/**
- * This prepends a custom item provider to the list for that entry
- *
- * This prepends the given callback. See elm_scrolled_entry_item_provider_append() for
- * more information
- *
- * @param obj The entry object
- * @param func The function called to provide the item object
- * @param data The data passed to @p func
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_item_provider_append(obj, func, data);}
+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)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   EINA_SAFETY_ON_NULL_RETURN(func);
-   Elm_Entry_Item_Provider *ip = calloc(1, sizeof(Elm_Entry_Item_Provider));
-   if (!ip) return;
-   ip->func = func;
-   ip->data = data;
-   wd->item_providers = eina_list_prepend(wd->item_providers, ip);
-}
-
-/**
- * This removes a custom item provider to the list for that entry
- *
- * This removes the given callback. See elm_scrolled_entry_item_provider_append() for
- * more information
- *
- * @param obj The entry object
- * @param func The function called to provide the item object
- * @param data The data passed to @p func
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_item_provider_prepend(obj, func, data);}
+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)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Eina_List *l;
-   Elm_Entry_Item_Provider *ip;
-   if (!wd) return;
-   EINA_SAFETY_ON_NULL_RETURN(func);
-   EINA_LIST_FOREACH(wd->item_providers, l, ip)
-     {
-        if ((ip->func == func) && (ip->data == data))
-          {
-             wd->item_providers = eina_list_remove_list(wd->item_providers, l);
-             free(ip);
-             return;
-          }
-     }
-}
-
-/**
- * Append a filter function for text inserted in the entry
- *
- * Append the given callback to the list. This functions will be called
- * whenever any text is inserted into the entry, with the text to be inserted
- * as a parameter. The callback function is free to alter the text in any way
- * it wants, but it must remember to free the given pointer and update it.
- * If the new text is to be discarded, the function can free it and set it text
- * parameter to NULL. This will also prevent any following filters from being
- * called.
- *
- * @param obj The entry object
- * @param func The function to use as text filter
- * @param data User data to pass to @p func
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_item_provider_remove(obj, func, data);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_text_filter_append(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data)
-{
-   Widget_Data *wd;
-   Elm_Entry_Text_Filter *tf;
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   wd = elm_widget_data_get(obj);
-
-   EINA_SAFETY_ON_NULL_RETURN(func);
-
-   tf = ELM_NEW(Elm_Entry_Text_Filter);
-   if (!tf) return;
-   tf->func = func;
-   tf->data = data;
-   wd->text_filters = eina_list_append(wd->text_filters, tf);
-}
-
-/**
- * Prepend a filter function for text insdrted in the entry
- *
- * Prepend the given callback to the list. See elm_scrolled_entry_text_filter_append()
- * for more information
- *
- * @param obj The entry object
- * @param func The function to use as text filter
- * @param data User data to pass to @p func
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_text_filter_append(obj, func, data);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_text_filter_prepend(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data)
-{
-   Widget_Data *wd;
-   Elm_Entry_Text_Filter *tf;
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   wd = elm_widget_data_get(obj);
-
-   EINA_SAFETY_ON_NULL_RETURN(func);
-
-   tf = ELM_NEW(Elm_Entry_Text_Filter);
-   if (!tf) return;
-   tf->func = func;
-   tf->data = data;
-   wd->text_filters = eina_list_prepend(wd->text_filters, tf);
-}
-
-/**
- * Remove a filter from the list
- *
- * Removes the given callback from the filter list. See elm_scrolled_entry_text_filter_append()
- * for more information.
- *
- * @param obj The entry object
- * @param func The filter function to remove
- * @param data The user data passed when adding the function
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_text_filter_prepend(obj, func, data);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Object *entry, char **text), void *data)
-{
-   Widget_Data *wd;
-   Eina_List *l;
-   Elm_Entry_Text_Filter *tf;
-   ELM_CHECK_WIDTYPE(obj, widtype);
-
-   wd = elm_widget_data_get(obj);
-
-   EINA_SAFETY_ON_NULL_RETURN(func);
-
-   EINA_LIST_FOREACH(wd->text_filters, l, tf)
-     {
-        if ((tf->func == func) && (tf->data == data))
-          {
-             wd->text_filters = eina_list_remove_list(wd->text_filters, l);
-             free(tf);
-             return;
-          }
-     }
-}
-
-/**
- * This sets the file (and implicitly loads it) for the text to display and
- * then edit. All changes are written back to the file after a short delay if
- * the entry object is set to autosave.
- *
- * @param obj The scrolled entry object
- * @param file The path to the file to load and save
- * @param format The file format
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_text_filter_remove(obj, func, data);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_file_set(wd->entry, file, format);
-}
-
-/**
- * Gets the file to load and save and the file format
- *
- * @param obj The scrolled entry object
- * @param file The path to the file to load and save
- * @param format The file format
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_file_set(obj, file, format);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *format)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_file_get(wd->entry, file, format);
-}
-
-/**
- * This function writes any changes made to the file set with
- * elm_scrolled_entry_file_set()
- *
- * @param obj The scrolled entry object
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_file_get(obj, file, format);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_file_save(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_file_save(wd->entry);
-}
-
-/**
- * This sets the entry object to 'autosave' the loaded text file or not.
- *
- * @param obj The scrolled entry object
- * @param autosave Autosave the loaded file or not
- *
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{elm_entry_file_save(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_autosave_set(Evas_Object *obj, Eina_Bool autosave)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_autosave_set(wd->entry, autosave);
-}
-
-/**
- * This gets the entry object's 'autosave' status.
- *
- * @param obj The scrolled entry object
- * @return Autosave the loaded file or not
- *
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{elm_entry_autosave_set(obj, autosave);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_autosave_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 elm_entry_autosave_get(wd->entry);
-}
-
-/**
- * Control pasting of text and images for the widget.
- *
- * Normally the scrolled entry allows both text and images to be pasted.
- * By setting textonly to be true, this prevents images from being pasted.
- *
- * Note this only changes the behaviour of text.
- *
- * @param obj The scrolled entry object
- * @param textonly paste mode - EINA_TRUE is text only, EINA_FALSE is text+image+other.
- *
- * @see elm_entry_cnp_textonly_set
- * @ingroup Scrolled_Entry
- */
-EAPI void
+{return elm_entry_autosave_get(obj);}
+EINA_DEPRECATED EAPI void
 elm_scrolled_entry_cnp_textonly_set(Evas_Object *obj, Eina_Bool textonly)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype);
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   elm_entry_cnp_textonly_set(wd->entry, textonly);
-}
-
-/**
- * Getting elm_scrolled_entry text paste/drop mode.
- *
- * In textonly mode, only text may be pasted or dropped into the widget.
- *
- * @param obj The scrolled entry object
- * @return If the widget only accepts text from pastes.
- *
- * @see elm_entry_cnp_textonly_get
- * @ingroup Scrolled_Entry
- */
-EAPI Eina_Bool
+{elm_entry_cnp_textonly_set(obj, textonly);}
+EINA_DEPRECATED EAPI Eina_Bool
 elm_scrolled_entry_cnp_textonly_get(Evas_Object *obj)
-{
-   ELM_CHECK_WIDTYPE(obj, widtype) EINA_FALSE;
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return EINA_FALSE;
-   return elm_entry_cnp_textonly_get(wd->entry);
-}
+{return elm_entry_cnp_textonly_get(obj);}
index 26f8f18..a3c80e0 100644 (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);
 }
 
@@ -604,6 +621,27 @@ _disable_hook(Evas_Object *obj)
 }
 
 static void
+_recalc_cursor_geometry(Evas_Object *obj)
+{
+   Widget_Data *wd = elm_widget_data_get(obj);
+   if (!wd) return;
+   evas_object_smart_callback_call(obj, SIG_CURSOR_CHANGED, NULL);
+   if (!wd->deferred_recalc_job)
+     {
+        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(obj, cx, cy, cw, ch);
+             wd->cur_changed = EINA_FALSE;
+          }
+     }
+   else
+      wd->deferred_cur = EINA_TRUE;
+}
+
+static void
 _elm_win_recalc_job(void *data)
 {
    Widget_Data *wd = elm_widget_data_get(data);
@@ -614,6 +652,8 @@ _elm_win_recalc_job(void *data)
    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. */
@@ -625,13 +665,15 @@ _elm_win_recalc_job(void *data)
      }
    evas_object_size_hint_min_set(data, minw, minh);
    if (wd->single_line)
-     evas_object_size_hint_max_set(data, -1, minh);
+      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);
+                                                  &cx, &cy, &cw, &ch);
         if (wd->cur_changed)
           {
              elm_widget_show_region_set(data, cx, cy, cw, ch);
@@ -641,51 +683,94 @@ _elm_win_recalc_job(void *data)
 }
 
 static void
-_recalc_cursor_geometry(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   evas_object_smart_callback_call(obj, SIG_CURSOR_CHANGED, NULL);
-   if (!wd->deferred_recalc_job)
-     {
-        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(obj, cx, cy, cw, ch);
-             wd->cur_changed = EINA_FALSE;
-          }
-     }
-   else
-     {
-        wd->deferred_cur = EINA_TRUE;
-     }
-}
-
-static void
 _sizing_eval(Evas_Object *obj)
 {
    Widget_Data *wd = elm_widget_data_get(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
@@ -746,6 +840,25 @@ _on_focus_region_hook(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas
 }
 
 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)
 {
    Widget_Data *wd = elm_widget_data_get(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);
+}