rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=4bd8d11867d5ba1418880081ef30c7fbb1834c2a
commit 4bd8d11867d5ba1418880081ef30c7fbb1834c2a Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Tue Jan 12 18:29:38 2016 +0000 live_scroller: set swallow, text and send signal --- src/bin/ui/live_view/elementary/live_scroller.c | 73 ++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 8 deletions(-) diff --git a/src/bin/ui/live_view/elementary/live_scroller.c b/src/bin/ui/live_view/elementary/live_scroller.c index 39f5487..d737090 100644 --- a/src/bin/ui/live_view/elementary/live_scroller.c +++ b/src/bin/ui/live_view/elementary/live_scroller.c @@ -20,12 +20,69 @@ #include "live_elementary_widgets.h" static void -_on_scroller_swallow_check(void *data __UNUSED__, +_on_scroller_swallow_check(void *data, Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) + void *ei) { - TODO("Remake on_swallow_check, so that would be used everywhere.") - ERR(N_("Complex widgets are not implemented yet.")) + Demo_Part *part = (Demo_Part *)ei; + Evas_Object *content, *bt; + Evas_Object *object = (Evas_Object *)data; + + if (!strcmp(part->name, "elm.swallow.content")) + { + content = elm_table_add(object); + int i, j; + + for (j = 0; j < ELEMENTS_COUNT; j++) + { + for (i = 0; i < ELEMENTS_COUNT; i++) + { + bt = object_generate(part, content); + if (bt) + { + evas_object_color_set(part->object, + part->r, + part->g, + part->b, + part->a); + + evas_object_size_hint_min_set(part->object, + part->min_w, + part->min_h); + evas_object_size_hint_max_set(part->object, + part->max_w, + part->max_h); + } + else + return; + elm_table_pack(content, bt, i, j, 1, 1); + evas_object_show(bt); + } + } + elm_object_content_set(object, content); + part->object = content; + evas_object_show(content); + } + else + { + bt = object_generate(part, object); + if (bt) + { + evas_object_color_set(part->object, + part->r, + part->g, + part->b, + part->a); + + evas_object_size_hint_min_set(part->object, + part->min_w, + part->min_h); + evas_object_size_hint_max_set(part->object, + part->max_w, + part->max_h); + } + elm_object_part_content_set(object, part->name, part->object); + } } Evas_Object * @@ -41,7 +98,7 @@ widget_scroller_create(Evas_Object *parent, const Group *group) if ((strcmp(group->class, "entry") == 0) || (strcmp(group->class, "entry_single") == 0)) { object = elm_entry_add(parent); - evas_object_data_set(object, SWALLOW_FUNC, on_swallow_check); + evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SWALLOW_SET, on_swallow_check, object); elm_entry_scrollable_set(object, true); if (strcmp(group->class, "entry_single") == 0) elm_entry_single_line_set(object, true); @@ -49,15 +106,15 @@ widget_scroller_create(Evas_Object *parent, const Group *group) else { object = elm_scroller_add(parent); - evas_object_data_set(object, SWALLOW_FUNC, _on_scroller_swallow_check); + evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SWALLOW_SET, _on_scroller_swallow_check, object); } elm_object_style_set(object, group->style); elm_scroller_policy_set(object, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON); - evas_object_data_set(object, TEXT_FUNC, on_text_check); - evas_object_data_set(object, SIGNAL_FUNC, send_signal); + evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_TEXT_SET, on_text_check, object); + evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SIGNAL_SEND, send_signal, object); return object; } --