rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=395aef6ce426b25fc0d9d724da45ae3351026403
commit 395aef6ce426b25fc0d9d724da45ae3351026403 Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Mon Apr 4 18:30:09 2016 +0300 demo: call SWALLOW_SET/TEXT_SET callbacks only for current workspace This require some little architecture changing, since before this comming it was this way: trying to set up content for secondly opened group in demo mode setting it into firstly opened group @fix --- src/bin/ui/live_view/elementary/live_check.c | 6 +-- src/bin/ui/live_view/elementary/live_radio.c | 43 +++++++--------------- .../ui/live_view/elementary/live_widget_common.c | 33 ++++++++--------- src/bin/ui/tabs.c | 34 +++++++++++++++++ src/bin/ui/workspace/workspace.c | 28 +++++++++++++- src/bin/ui/workspace/workspace.h | 10 +++++ 6 files changed, 103 insertions(+), 51 deletions(-) diff --git a/src/bin/ui/live_view/elementary/live_check.c b/src/bin/ui/live_view/elementary/live_check.c index f5a84ef..4f505a9 100644 --- a/src/bin/ui/live_view/elementary/live_check.c +++ b/src/bin/ui/live_view/elementary/live_check.c @@ -28,9 +28,9 @@ widget_check_create(Evas_Object *parent, const Group *group) Evas_Object *object = elm_check_add(parent); - evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SWALLOW_SET, on_swallow_check, object); - 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); + evas_object_smart_callback_add(object, SIGNAL_DEMO_SWALLOW_SET, on_swallow_check, NULL); + evas_object_smart_callback_add(object, SIGNAL_DEMO_TEXT_SET, on_text_check, NULL); + evas_object_smart_callback_add(object, SIGNAL_DEMO_SIGNAL_SEND, send_signal, NULL); evas_object_event_callback_add(object, EVAS_CALLBACK_DEL, demo_object_del, NULL); elm_object_style_set(object, group->style); diff --git a/src/bin/ui/live_view/elementary/live_radio.c b/src/bin/ui/live_view/elementary/live_radio.c index 271e61d..bf6b43b 100644 --- a/src/bin/ui/live_view/elementary/live_radio.c +++ b/src/bin/ui/live_view/elementary/live_radio.c @@ -21,12 +21,11 @@ static void _on_radio_swallow_check(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) + Evas_Object *obj, + void *ei) { Demo_Part *part = (Demo_Part *)ei; - Evas_Object *object = (Evas_Object *) data; - Eina_List* radio_list = elm_box_children_get(object); + Eina_List* radio_list = elm_box_children_get(obj); Evas_Object *content, *radio_obj; int content_type = part->swallow_content; @@ -43,7 +42,7 @@ _on_radio_swallow_check(void *data __UNUSED__, /* if NONE - delete object */ if (content_type != CONTENT_NONE) { - content = object_generate(part, object); + content = object_generate(part, obj); part->objects = eina_list_append(part->objects, content); elm_object_part_content_set(radio_obj, part->name, content); } @@ -69,12 +68,11 @@ _on_radio_swallow_check(void *data __UNUSED__, static void _on_radio_text_check(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) + Evas_Object *obj, + void *ei) { Demo_Part *part = (Demo_Part *)ei; - Evas_Object *object = (Evas_Object *) data; - Eina_List* radio_list = elm_box_children_get(object); + Eina_List* radio_list = elm_box_children_get(obj); Evas_Object *radio_obj; EINA_LIST_FREE(radio_list, radio_obj) @@ -82,13 +80,12 @@ _on_radio_text_check(void *data __UNUSED__, } static void -_radio_send_signal(void *data, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) +_radio_send_signal(void *data __UNUSED__, + Evas_Object *obj, + void *ei) { Demo_Signal *sig = (Demo_Signal *)ei; - Evas_Object *object = (Evas_Object *)data; - Eina_List* radio_list = elm_box_children_get(object); + Eina_List* radio_list = elm_box_children_get(obj); Evas_Object *radio_obj = NULL; assert(sig != NULL); @@ -99,17 +96,6 @@ _radio_send_signal(void *data, elm_layout_signal_emit(radio_obj, sig->sig_name, sig->source_name); } -void -_demo_radio_del(void *data __UNUSED__, - Evas *evas __UNUSED__, - Evas_Object *object, - void *event_info __UNUSED__) -{ - evas_object_smart_callback_del_full(ap.win, SIGNAL_DEMO_SWALLOW_SET, _on_radio_swallow_check, object); - evas_object_smart_callback_del_full(ap.win, SIGNAL_DEMO_TEXT_SET, _on_radio_text_check, object); - evas_object_smart_callback_del_full(ap.win, SIGNAL_DEMO_SIGNAL_SEND, _radio_send_signal, object); -} - Evas_Object * widget_radio_create(Evas_Object *parent, const Group *group) { @@ -137,10 +123,9 @@ widget_radio_create(Evas_Object *parent, const Group *group) elm_radio_value_set(rdg, 2); - evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SWALLOW_SET, _on_radio_swallow_check, object); - evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_TEXT_SET, _on_radio_text_check, object); - evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SIGNAL_SEND, _radio_send_signal, object); - evas_object_event_callback_add(object, EVAS_CALLBACK_DEL, _demo_radio_del, NULL); + evas_object_smart_callback_add(object, SIGNAL_DEMO_SWALLOW_SET, _on_radio_swallow_check, NULL); + evas_object_smart_callback_add(object, SIGNAL_DEMO_TEXT_SET, _on_radio_text_check, NULL); + evas_object_smart_callback_add(object, SIGNAL_DEMO_SIGNAL_SEND, _radio_send_signal, NULL); return object; } diff --git a/src/bin/ui/live_view/elementary/live_widget_common.c b/src/bin/ui/live_view/elementary/live_widget_common.c index 369e0be..5b16744 100644 --- a/src/bin/ui/live_view/elementary/live_widget_common.c +++ b/src/bin/ui/live_view/elementary/live_widget_common.c @@ -387,33 +387,32 @@ demo_object_del(void *data __UNUSED__, Evas_Object *object, void *event_info __UNUSED__) { - evas_object_smart_callback_del_full(ap.win, SIGNAL_DEMO_SWALLOW_SET, on_swallow_check, object); - evas_object_smart_callback_del_full(ap.win, SIGNAL_DEMO_TEXT_SET, on_text_check, object); - evas_object_smart_callback_del_full(ap.win, SIGNAL_DEMO_SIGNAL_SEND, send_signal, object); + evas_object_smart_callback_del_full(object, SIGNAL_DEMO_SWALLOW_SET, on_swallow_check, NULL); + evas_object_smart_callback_del_full(object, SIGNAL_DEMO_TEXT_SET, on_text_check, NULL); + evas_object_smart_callback_del_full(object, SIGNAL_DEMO_SIGNAL_SEND, send_signal, NULL); } void -on_swallow_check(void *data, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) +on_swallow_check(void *data __UNUSED__, + Evas_Object *obj, + void *ei) { Demo_Part *part = (Demo_Part *)ei; - Evas_Object *object = (Evas_Object *) data; Evas_Object *content; if (part->change) { if (part->object) { - content = elm_object_part_content_unset(object, part->name); + content = elm_object_part_content_unset(obj, part->name); evas_object_del(content); content = NULL; part->object = NULL; } - part->object = object_generate(part, object); + part->object = object_generate(part, obj); part->change = false; - elm_object_part_content_set(object, part->name, part->object); + elm_object_part_content_set(obj, part->name, part->object); } if (part->object) @@ -435,27 +434,25 @@ on_swallow_check(void *data, } void -on_text_check(void *data, - Evas_Object *obj __UNUSED__, +on_text_check(void *data __UNUSED__, + Evas_Object *obj, void *ei) { Demo_Part *part = (Demo_Part *)ei; - Evas_Object *object = (Evas_Object *) data; - elm_object_part_text_set(object, part->name, part->text_content); + elm_object_part_text_set(obj, part->name, part->text_content); } void -send_signal(void *data, - Evas_Object *obj __UNUSED__, +send_signal(void *data __UNUSED__, + Evas_Object *obj, void *ei) { Demo_Signal *sig = (Demo_Signal *)ei; - Evas_Object *object = (Evas_Object *)data; assert(sig != NULL); assert(sig->sig_name != NULL); assert(sig->source_name != NULL); - elm_layout_signal_emit(object, sig->sig_name, sig->source_name); + elm_layout_signal_emit(obj, sig->sig_name, sig->source_name); } diff --git a/src/bin/ui/tabs.c b/src/bin/ui/tabs.c index 2f6fcfd..937f0ea 100644 --- a/src/bin/ui/tabs.c +++ b/src/bin/ui/tabs.c @@ -324,6 +324,36 @@ _property_attribute_changed(void *data __UNUSED__, } static void +_demo_swallow_set(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *ei) +{ + assert(tabs.current_workspace != NULL); + + workspace_demo_swallow_set(tabs.current_workspace, (Demo_Part *)ei); +} + +static void +_demo_text_set(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *ei) +{ + assert(tabs.current_workspace != NULL); + + workspace_demo_text_set(tabs.current_workspace, (Demo_Part *)ei); +} + +static void +_demo_send_signal(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *ei) +{ + assert(tabs.current_workspace != NULL); + + workspace_demo_signal_set(tabs.current_workspace, (Demo_Signal *)ei); +} + +static void _part_renamed(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ei) @@ -924,6 +954,10 @@ tabs_add(void) elm_object_item_disabled_set(tabs.menu.item_text, true); elm_object_item_disabled_set(tabs.menu.item_colorclass, true); + evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SWALLOW_SET, _demo_swallow_set, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_TEXT_SET, _demo_text_set, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SIGNAL_SEND, _demo_send_signal, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_PART_RENAMED, _part_renamed, NULL); evas_object_smart_callback_add(ap.win, SIGNAL_PROJECT_CHANGED, _project_changed, NULL); evas_object_smart_callback_add(ap.win, SIGNAL_EDITOR_SAVED, _editor_saved, NULL); diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index 85d4cca..b4256fe 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -25,7 +25,6 @@ #include "group_navigator.h" #include "history.h" #include "demo.h" -#include "demo_group.h" #include "project_manager.h" #include "change.h" #include "syntax_color.h" @@ -1391,3 +1390,30 @@ workspace_part_unselect_request(Evas_Object *obj) group_navigator_part_select(wd->group_navi, NULL); } + +void +workspace_demo_swallow_set(Evas_Object *obj, Demo_Part *part) +{ + WS_DATA_GET(obj); + + if ((wd->demo.content) && (wd->mode == MODE_DEMO)) + evas_object_smart_callback_call(wd->demo.content, SIGNAL_DEMO_SWALLOW_SET, part); +} + +void +workspace_demo_text_set(Evas_Object *obj, Demo_Part *part) +{ + WS_DATA_GET(obj); + + if ((wd->demo.content) && (wd->mode == MODE_DEMO)) + evas_object_smart_callback_call(wd->demo.content, SIGNAL_DEMO_TEXT_SET, part); +} + +void +workspace_demo_signal_set(Evas_Object *obj, Demo_Signal *sig) +{ + WS_DATA_GET(obj); + + if ((wd->demo.content) && (wd->mode == MODE_DEMO)) + evas_object_smart_callback_call(wd->demo.content, SIGNAL_DEMO_SIGNAL_SEND, sig); +} diff --git a/src/bin/ui/workspace/workspace.h b/src/bin/ui/workspace/workspace.h index ce685ec..d165c2f 100644 --- a/src/bin/ui/workspace/workspace.h +++ b/src/bin/ui/workspace/workspace.h @@ -33,6 +33,7 @@ */ #include "eflete.h" +#include "demo_group.h" typedef enum { @@ -383,4 +384,13 @@ workspace_all_parts_showhide_request(Evas_Object *obj); void workspace_part_unselect_request(Evas_Object *obj); +void +workspace_demo_swallow_set(Evas_Object *obj, Demo_Part *part); + +void +workspace_demo_text_set(Evas_Object *obj, Demo_Part *part); + +void +workspace_demo_signal_set(Evas_Object *obj, Demo_Signal *sig); + #endif /* WORKSPACE_H */ --