[elm] Entry now a scrollable layout.

SVN revision: 75890
This commit is contained in:
Gustavo Lima Chaves 2012-08-30 16:45:15 +00:00
parent c0d48e6035
commit a9b1707fcd
17 changed files with 83783 additions and 81843 deletions

View File

@ -102,6 +102,7 @@ WGT_TREE = \
datetime \
dayselector \
diskselector \
entry \
fileselector \
fileselector_button \
flip \

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 KiB

After

Width:  |  Height:  |  Size: 334 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -25,7 +25,7 @@ test_conformant(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_single_line_set(en, EINA_TRUE);
elm_entry_bounce_set(en, EINA_TRUE, EINA_FALSE);
elm_scroller_bounce_set(en, EINA_TRUE, EINA_FALSE);
elm_object_text_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);
@ -42,7 +42,7 @@ test_conformant(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_single_line_set(en, EINA_TRUE);
elm_entry_bounce_set(en, EINA_TRUE, EINA_FALSE);
elm_scroller_bounce_set(en, EINA_TRUE, EINA_FALSE);
elm_object_text_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);
@ -58,7 +58,7 @@ test_conformant(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_bounce_set(en, EINA_FALSE, EINA_TRUE);
elm_scroller_bounce_set(en, EINA_FALSE, EINA_TRUE);
elm_object_text_set(en,
"This is a multi-line entry at the bottom<br/>"
"This can contain more than 1 line of text and be "
@ -105,7 +105,7 @@ test_conformant2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_single_line_set(en, EINA_TRUE);
elm_entry_bounce_set(en, EINA_TRUE, EINA_FALSE);
elm_scroller_bounce_set(en, EINA_TRUE, EINA_FALSE);
elm_object_text_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);
@ -140,7 +140,7 @@ test_conformant2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_bounce_set(en, EINA_FALSE, EINA_TRUE);
elm_scroller_bounce_set(en, EINA_FALSE, EINA_TRUE);
elm_object_text_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);
@ -172,7 +172,7 @@ test_conformant2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event
en = elm_entry_add(win);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_bounce_set(en, EINA_FALSE, EINA_TRUE);
elm_scroller_bounce_set(en, EINA_FALSE, EINA_TRUE);
elm_object_text_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);

View File

@ -286,7 +286,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
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_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_object_text_set(en, "Disabled entry");
elm_entry_single_line_set(en, EINA_TRUE);
elm_object_disabled_set(en, EINA_TRUE);
@ -298,7 +298,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
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_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_password_set(en, EINA_TRUE);
elm_entry_single_line_set(en, EINA_TRUE);
elm_object_text_set(en, "Access denied, give up!");
@ -311,7 +311,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
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_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
elm_object_disabled_set(en, EINA_TRUE);
elm_entry_context_menu_item_add(en, "Hello", NULL, ELM_ICON_NONE, NULL, NULL);
elm_entry_context_menu_item_add(en, "World", NULL, ELM_ICON_NONE, NULL, NULL);
@ -335,7 +335,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "This is a single line");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
elm_entry_select_all(en);
evas_object_show(en);
@ -347,7 +347,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "01234");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
elm_box_pack_end(bx, en);
@ -362,7 +362,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "No numbers here");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
elm_box_pack_end(bx, en);
@ -377,7 +377,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "Just 20 chars");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
elm_box_pack_end(bx, en);
@ -392,7 +392,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "And now only 30 bytes");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
elm_box_pack_end(bx, en);
@ -406,7 +406,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
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_entry_scrollbar_policy_set(en_p, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en_p, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_object_text_set(en_p, "Password here");
elm_entry_single_line_set(en_p, EINA_TRUE);
elm_entry_password_set(en_p, EINA_TRUE);
@ -416,7 +416,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
/* entry with icon/end widgets*/
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_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_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);
@ -441,7 +441,7 @@ test_entry_scrolled(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
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_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
elm_object_text_set(en,
"This is an entry widget in this window that<br/>"
"uses markup <b>like this</> for styling and<br/>"
@ -792,7 +792,7 @@ test_entry3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
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_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_object_text_set(en, "This is a single line");
elm_entry_single_line_set(en, EINA_TRUE);
elm_box_pack_end(bx, en);
@ -1350,7 +1350,7 @@ test_entry4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
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_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_object_text_set(en, "This is a single line");
elm_entry_single_line_set(en, EINA_TRUE);
elm_object_part_content_set(ly, "element1", en);
@ -2008,8 +2008,8 @@ horizontal_bounce_changed_cb(void *data, Evas_Object *obj, void *event_info __UN
Eina_Bool bounce = elm_check_state_get(obj);
en = (Evas_Object*)data;
elm_entry_bounce_get(en, NULL, &vb);
elm_entry_bounce_set(en, bounce, bounce);
elm_scroller_bounce_get(en, NULL, &vb);
elm_scroller_bounce_set(en, bounce, bounce);
}
static void
@ -2020,8 +2020,8 @@ vertical_bounce_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUS
Eina_Bool bounce = elm_check_state_get(obj);
en = (Evas_Object*)data;
elm_entry_bounce_get(en, &hb, NULL);
elm_entry_bounce_set(en, hb, bounce);
elm_scroller_bounce_get(en, &hb, NULL);
elm_scroller_bounce_set(en, hb, bounce);
}
void
@ -2049,7 +2049,7 @@ test_entry8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
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_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_text_set(en, "Markup Filter Prepend Test");
@ -2070,7 +2070,7 @@ test_entry8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
en2 = elm_entry_add(win);
elm_entry_scrollable_set(en2, EINA_TRUE);
elm_entry_scrollbar_policy_set(en2, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en2, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
evas_object_size_hint_weight_set(en2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en2, EVAS_HINT_FILL, EVAS_HINT_FILL);
limit_filter_data.max_char_count = 20;
@ -2094,7 +2094,7 @@ test_entry8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
en3 = elm_entry_add(win);
elm_entry_scrollable_set(en3, EINA_TRUE);
elm_entry_scrollbar_policy_set(en3, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en3, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en3, EINA_TRUE);
evas_object_size_hint_weight_set(en3, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en3, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -2141,7 +2141,7 @@ test_entry8(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
en4 = elm_entry_add(win);
elm_object_part_text_set(en4, "guide", "Type in here");
elm_entry_scrollable_set(en4, EINA_TRUE);
elm_entry_bounce_set(en4, EINA_TRUE, EINA_TRUE);
elm_scroller_bounce_set(en4, EINA_TRUE, EINA_TRUE);
elm_entry_autocapital_type_set(en4, EINA_TRUE);
evas_object_size_hint_weight_set(en4, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(en4, EVAS_HINT_FILL, EVAS_HINT_FILL);

View File

@ -74,7 +74,7 @@ test_focus2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
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_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_object_text_set(en, "Entry that should get focus");
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
@ -102,7 +102,7 @@ test_focus2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info
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_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_object_text_set(en, "Scrolled Entry that should get focus");
elm_entry_single_line_set(en, EINA_TRUE);
elm_object_part_content_set(ly, "element2", en);

View File

@ -471,7 +471,7 @@ test_tooltip(void *data __UNUSED__,
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_entry_scrollbar_policy_set(se, ELM_SCROLLER_POLICY_OFF,
elm_scroller_policy_set(se, ELM_SCROLLER_POLICY_OFF,
ELM_SCROLLER_POLICY_OFF);
elm_object_text_set(se, "Hello, some entry here!");
elm_object_tooltip_text_set(se, "Type something here!");

View File

@ -31,7 +31,7 @@ fill(Evas_Object *win, Eina_Bool do_bg)
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "This is a single line");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
elm_box_pack_end(bx, en);
@ -41,7 +41,7 @@ fill(Evas_Object *win, Eina_Bool do_bg)
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "Entry 2");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
elm_box_pack_end(bx, en);

View File

@ -38,7 +38,7 @@ fill(Evas_Object *win, Eina_Bool do_bg)
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "This is a single line");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
elm_box_pack_end(bx, en);
@ -48,7 +48,7 @@ fill(Evas_Object *win, Eina_Bool do_bg)
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
elm_object_text_set(en, "Entry 2");
elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_scroller_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
elm_entry_single_line_set(en, EINA_TRUE);
evas_object_show(en);
elm_box_pack_end(bx, en);

View File

@ -66,14 +66,14 @@ external_entry_state_set(void *data __UNUSED__, Evas_Object *obj, const void *fr
if (p->password_exists)
elm_entry_password_set(obj, p->password);
if (p->horizontal_bounce_exists && p->vertical_bounce_exists)
elm_entry_bounce_set(obj, p->horizontal_bounce, p->vertical_bounce);
elm_scroller_bounce_set(obj, p->horizontal_bounce, p->vertical_bounce);
else if (p->horizontal_bounce_exists || p->vertical_bounce_exists)
{
elm_entry_bounce_get(obj, &hbounce, &vbounce);
elm_scroller_bounce_get(obj, &hbounce, &vbounce);
if (p->horizontal_bounce_exists)
elm_entry_bounce_set(obj, p->horizontal_bounce, vbounce);
elm_scroller_bounce_set(obj, p->horizontal_bounce, vbounce);
else
elm_entry_bounce_set(obj, hbounce, p->vertical_bounce);
elm_scroller_bounce_set(obj, hbounce, p->vertical_bounce);
}
if (p->editable_exists)
elm_entry_editable_set(obj, p->editable);
@ -141,9 +141,9 @@ external_entry_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_Ext
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
Eina_Bool hbounce, vbounce;
elm_entry_bounce_get(obj, NULL, &vbounce);
elm_scroller_bounce_get(obj, NULL, &vbounce);
hbounce = !!param->i;
elm_entry_bounce_set(obj, hbounce, vbounce);
elm_scroller_bounce_set(obj, hbounce, vbounce);
return EINA_TRUE;
}
}
@ -152,9 +152,9 @@ external_entry_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_Ext
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
Eina_Bool hbounce, vbounce;
elm_entry_bounce_get(obj, &hbounce, NULL);
elm_scroller_bounce_get(obj, &hbounce, NULL);
vbounce = !!param->i;
elm_entry_bounce_set(obj, hbounce, vbounce);
elm_scroller_bounce_set(obj, hbounce, vbounce);
return EINA_TRUE;
}
}
@ -237,7 +237,7 @@ external_entry_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_Ext
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
Eina_Bool hbounce;
elm_entry_bounce_get(obj, &hbounce, NULL);
elm_scroller_bounce_get(obj, &hbounce, NULL);
param->i = hbounce;
return EINA_TRUE;
}
@ -247,7 +247,7 @@ external_entry_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_Ext
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
Eina_Bool vbounce;
elm_entry_bounce_get(obj, NULL, &vbounce);
elm_scroller_bounce_get(obj, NULL, &vbounce);
param->i = vbounce;
return EINA_TRUE;
}

View File

@ -58,6 +58,7 @@ elm_widget_container.h \
elm_widget_datetime.h \
elm_widget_dayselector.h \
elm_widget_diskselector.h \
elm_widget_entry.h \
elm_widget_fileselector.h \
elm_widget_fileselector_button.h \
elm_widget_flip.h \

View File

@ -145,13 +145,13 @@ elm_scrolled_entry_context_menu_disabled_get(const Evas_Object *obj)
{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_entry_scrollbar_policy_set(obj, h, v);}
{elm_scroller_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_entry_bounce_set(obj, h_bounce, v_bounce);}
{elm_scroller_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_entry_bounce_get(obj, h_bounce, v_bounce);}
{elm_scroller_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_entry_item_provider_append(obj, func, data);}

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,9 @@
* @defgroup Entry Entry
* @ingroup Elementary
*
* @image html entry_inheritance_tree.png
* @image latex entry_inheritance_tree.eps
*
* @image html img/widget/entry/preview-00.png
* @image latex img/widget/entry/preview-00.eps width=\textwidth
* @image html img/widget/entry/preview-01.png
@ -24,6 +27,19 @@
* elm_entry_markup_filter_append() and related functions, inline "items" and
* formatted markup text.
*
* This widget inherits from the @ref Layout one, so that all the
* functions acting on it also work for entry objects.
*
* This widget implements the @b @ref elm-scrollable-interface
* interface, so that all (non-deprecated) functions for the base @ref
* Scroller widget also work for entries.
*
* Some calls on the entry's API are marked as @b deprecated, as they
* just wrap the scrollable widgets counterpart functions. Use the
* ones we point you to, for each case of deprecation here, instead --
* eventually the deprecated ones will be discarded (next major
* release).
*
* @section entry-markup Formatted text
*
* The markup tags supported by the Entry are defined by the theme, but
@ -189,8 +205,8 @@
*
* @section entry-signals Emitted signals
*
* This widget emits the following signals:
*
* This widget emits the following signals, besides the ones sent from
* @ref Layout:
* @li "changed": The text within the entry was changed.
* @li "changed,user": The text within the entry was changed because of user interaction.
* @li "activated": The enter key was pressed on a single line entry.
@ -1298,9 +1314,11 @@ EAPI void elm_entry_end_visible_set(Evas_Object *obj, Eina_Bool se
* @param h The horizontal scrollbar policy to apply
* @param v The vertical scrollbar policy to apply
*
* @deprecated Use elm_scroller_policy_set() instead.
*
* @ingroup Entry
*/
EAPI void elm_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v);
EINA_DEPRECATED EAPI void elm_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v);
/**
* This enables/disables bouncing within the entry.
@ -1312,9 +1330,11 @@ EAPI void elm_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scr
* @param h_bounce The horizontal bounce state
* @param v_bounce The vertical bounce state
*
* @deprecated Use elm_scroller_bounce_set() instead.
*
* @ingroup Entry
*/
EAPI void elm_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
EINA_DEPRECATED EAPI void elm_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
/**
* Get the bounce mode
@ -1323,9 +1343,11 @@ EAPI void elm_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounc
* @param h_bounce Allow bounce horizontally
* @param v_bounce Allow bounce vertically
*
* @deprecated Use elm_scroller_bounce_get() instead.
*
* @ingroup Entry
*/
EAPI void elm_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
EINA_DEPRECATED EAPI void elm_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
/**
* Set the input panel layout of the entry

View File

@ -0,0 +1,268 @@
#ifndef ELM_WIDGET_ENTRY_H
#define ELM_WIDGET_ENTRY_H
#include "elm_interface_scrollable.h"
#include "elm_widget_layout.h"
/**
* @addtogroup Widget
* @{
*
* @section elm-entry-class The Elementary Entry Class
*
* Elementary, besides having the @ref Entry widget, exposes its
* foundation -- the Elementary Entry Class -- in order to create
* other widgets which are a entry with some more logic on top.
*/
/**
* @def ELM_ENTRY_CLASS
*
* Use this macro to cast whichever subclass of
* #Elm_Entry_Smart_Class into it, so to access its fields.
*
* @ingroup Widget
*/
#define ELM_ENTRY_CLASS(x) ((Elm_Entry_Smart_Class *)x)
/**
* @def ELM_ENTRY_DATA
*
* Use this macro to cast whichever subdata of
* #Elm_Entry_Smart_Data into it, so to access its fields.
*
* @ingroup Widget
*/
#define ELM_ENTRY_DATA(x) ((Elm_Entry_Smart_Data *)x)
/**
* @def ELM_ENTRY_SMART_CLASS_VERSION
*
* Current version for Elementary entry @b base smart class, a value
* which goes to _Elm_Entry_Smart_Class::version.
*
* @ingroup Widget
*/
#define ELM_ENTRY_SMART_CLASS_VERSION 1
/**
* @def ELM_ENTRY_SMART_CLASS_INIT
*
* Initializer for a whole #Elm_Entry_Smart_Class structure, with
* @c NULL values on its specific fields.
*
* @param smart_class_init initializer to use for the "base" field
* (#Evas_Smart_Class).
*
* @see EVAS_SMART_CLASS_INIT_NULL
* @see EVAS_SMART_CLASS_INIT_NAME_VERSION
* @see ELM_ENTRY_SMART_CLASS_INIT_NULL
* @see ELM_ENTRY_SMART_CLASS_INIT_NAME_VERSION
*
* @ingroup Widget
*/
#define ELM_ENTRY_SMART_CLASS_INIT(smart_class_init) \
{smart_class_init, ELM_ENTRY_SMART_CLASS_VERSION}
/**
* @def ELM_ENTRY_SMART_CLASS_INIT_NULL
*
* Initializer to zero out a whole #Elm_Entry_Smart_Class structure.
*
* @see ELM_ENTRY_SMART_CLASS_INIT_NAME_VERSION
* @see ELM_ENTRY_SMART_CLASS_INIT
*
* @ingroup Widget
*/
#define ELM_ENTRY_SMART_CLASS_INIT_NULL \
ELM_ENTRY_SMART_CLASS_INIT(EVAS_SMART_CLASS_INIT_NULL)
/**
* @def ELM_ENTRY_SMART_CLASS_INIT_NAME_VERSION
*
* Initializer to zero out a whole #Elm_Entry_Smart_Class structure and
* set its name and version.
*
* This is similar to #ELM_ENTRY_SMART_CLASS_INIT_NULL, but it will
* also set the version field of #Elm_Entry_Smart_Class (base field)
* to the latest #ELM_ENTRY_SMART_CLASS_VERSION and name it to the
* specific value.
*
* It will keep a reference to the name field as a <c>"const char *"</c>,
* i.e., the name must be available while the structure is
* used (hint: static or global variable!) and must not be modified.
*
* @see ELM_ENTRY_SMART_CLASS_INIT_NULL
* @see ELM_ENTRY_SMART_CLASS_INIT
*
* @ingroup Widget
*/
#define ELM_ENTRY_SMART_CLASS_INIT_NAME_VERSION(name) \
ELM_ENTRY_SMART_CLASS_INIT \
(ELM_LAYOUT_SMART_CLASS_INIT_NAME_VERSION(name))
/**
* Elementary entry base smart class. This inherits directly from
* #Elm_Layout_Smart_Class and is meant to build widgets extending the
* behavior of a entry.
*
* All of the functions listed on @ref Entry namespace will work for
* objects deriving from #Elm_Entry_Smart_Class.
*/
typedef struct _Elm_Entry_Smart_Class
{
Elm_Layout_Smart_Class base;
int version; /**< Version of this smart class definition */
} Elm_Entry_Smart_Class;
typedef struct _Mod_Api Mod_Api;
/**
* Base widget smart data extended with entry instance data.
*/
typedef struct _Elm_Entry_Smart_Data Elm_Entry_Smart_Data;
struct _Elm_Entry_Smart_Data
{
Elm_Layout_Smart_Data base; /* base widget smart data as
* first member obligatory, as
* we're inheriting from it */
Evas_Object *hit_rect, *entry_edje, *scr_edje;
const Elm_Scrollable_Smart_Interface *s_iface;
Evas_Object *hoversel;
Ecore_Job *deferred_recalc_job;
Ecore_Event_Handler *sel_notify_handler;
Ecore_Event_Handler *sel_clear_handler;
Ecore_Timer *longpress_timer;
Ecore_Timer *delay_write;
/* for deferred appending */
Ecore_Idler *append_text_idler;
char *append_text_left;
int append_text_position;
int append_text_len;
/* Only for clipboard */
const char *cut_sel;
const char *text;
const char *file;
Elm_Text_Format format;
Evas_Coord last_w, ent_mw, ent_mh;
Evas_Coord downx, downy;
Eina_List *items;
Eina_List *item_providers;
Eina_List *text_filters;
Eina_List *markup_filters;
Ecore_Job *hov_deljob;
Mod_Api *api; // module api if supplied
int cursor_pos;
Elm_Scroller_Policy policy_h, policy_v;
Elm_Wrap_Type line_wrap;
Elm_Input_Panel_Layout input_panel_layout;
Elm_Autocapital_Type autocapital_type;
Elm_Input_Panel_Lang input_panel_lang;
Elm_Input_Panel_Return_Key_Type input_panel_return_key_type;
void *input_panel_imdata;
int input_panel_imdata_len;
struct
{
Evas_Object *hover_parent;
Evas_Object *pop, *hover;
const char *hover_style;
} anchor_hover;
Elm_Cnp_Mode cnp_mode;
Eina_Bool input_panel_return_key_disabled : 1;
Eina_Bool drag_selection_asked : 1;
Eina_Bool input_panel_enable : 1;
Eina_Bool prediction_allow : 1;
Eina_Bool selection_asked : 1;
Eina_Bool auto_return_key : 1;
Eina_Bool have_selection : 1;
Eina_Bool deferred_cur : 1;
Eina_Bool context_menu : 1;
Eina_Bool cur_changed : 1;
Eina_Bool single_line : 1;
Eina_Bool can_write : 1;
Eina_Bool auto_save : 1;
Eina_Bool password : 1;
Eina_Bool editable : 1;
Eina_Bool disabled : 1;
Eina_Bool h_bounce : 1;
Eina_Bool v_bounce : 1;
Eina_Bool has_text : 1;
Eina_Bool use_down : 1;
Eina_Bool sel_mode : 1;
Eina_Bool changed : 1;
Eina_Bool scroll : 1;
};
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_Markup_Filter Elm_Entry_Markup_Filter;
struct _Elm_Entry_Context_Menu_Item
{
Evas_Object *obj;
const char *label;
const char *icon_file;
const char *icon_group;
Elm_Icon_Type icon_type;
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_Markup_Filter
{
Elm_Entry_Filter_Cb func;
void *data;
};
typedef enum _Length_Unit
{
LENGTH_UNIT_CHAR,
LENGTH_UNIT_BYTE,
LENGTH_UNIT_LAST
} Length_Unit;
/**
* @}
*/
EAPI extern const char ELM_ENTRY_SMART_NAME[];
EAPI const Elm_Entry_Smart_Class *elm_entry_smart_class_get(void);
#define ELM_ENTRY_DATA_GET(o, sd) \
Elm_Entry_Smart_Data * sd = evas_object_smart_data_get(o)
#define ELM_ENTRY_DATA_GET_OR_RETURN(o, ptr) \
ELM_ENTRY_DATA_GET(o, ptr); \
if (!ptr) \
{ \
CRITICAL("No widget data for object %p (%s)", \
o, evas_object_type_get(o)); \
return; \
}
#define ELM_ENTRY_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
ELM_ENTRY_DATA_GET(o, ptr); \
if (!ptr) \
{ \
CRITICAL("No widget data for object %p (%s)", \
o, evas_object_type_get(o)); \
return val; \
}
#define ELM_ENTRY_CHECK(obj) \
if (!obj || !elm_widget_type_check \
((obj), ELM_ENTRY_SMART_NAME, __func__)) \
return
#endif