rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=325dd258bfa32bedffbef4aff4058db2d31c7ce6
commit 325dd258bfa32bedffbef4aff4058db2d31c7ce6 Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Mon Apr 4 20:04:17 2016 +0300 workspace: move local callbacks to API that will be called from tabs Because all callbacks registered to ap.win should be deleted, and we can't (and shoudn't) make it inside of workspace --- src/bin/ui/tabs.c | 23 +++++++++++++++ src/bin/ui/workspace/workspace.c | 63 ++++++++++++++++++---------------------- src/bin/ui/workspace/workspace.h | 6 ++++ 3 files changed, 57 insertions(+), 35 deletions(-) diff --git a/src/bin/ui/tabs.c b/src/bin/ui/tabs.c index b04b4a0..abe9ca9 100644 --- a/src/bin/ui/tabs.c +++ b/src/bin/ui/tabs.c @@ -322,6 +322,26 @@ _property_attribute_changed(void *data __UNUSED__, } } +void +_on_save(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + assert(tabs.current_group != NULL); + assert(tabs.current_workspace != NULL); + workspace_code_reload(tabs.current_workspace); +} + +void +_on_project_changed(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + assert(tabs.current_group != NULL); + assert(tabs.current_workspace != NULL); + workspace_code_changed(tabs.current_workspace); +} + static void _demo_swallow_set(void *data __UNUSED__, Evas_Object *obj __UNUSED__, @@ -971,6 +991,9 @@ 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_EDITOR_SAVED, _on_save, NULL); + evas_object_smart_callback_add(ap.win, SIGNAL_PROJECT_CHANGED, _on_project_changed, NULL); + 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); diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index 7e7221f..11bc884 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -243,39 +243,6 @@ _code_reload(void *data, evas_object_del(layout); } -static void -_on_save(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - assert(data != NULL); - - _code_reload(data, NULL, NULL); -} - -static void -_on_project_changed(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - assert(data != NULL); - - Workspace_Data *wd = data; - Evas_Object *layout, *btn; - - layout = elm_object_part_content_get(wd->code.obj, "elm.swallow.overlay"); - if (layout) return; - - layout = elm_layout_add(wd->code.obj); - elm_layout_theme_set(layout, "layout", "entry", "overlay"); - elm_object_text_set(layout, _("Project is changed")); - btn = elm_button_add(layout); - elm_object_text_set(btn, _("Reload")); - evas_object_smart_callback_add(btn, "clicked", _code_reload, wd); - elm_object_content_set(layout, btn); - - elm_object_part_content_set(wd->code.obj, "elm.swallow.overlay", layout); -} /******************************************************************************/ static void @@ -1098,8 +1065,6 @@ workspace_add(Evas_Object *parent, Group *group) elm_entry_editable_set(wd->code.obj, false); elm_object_part_content_set(wd->panes_h, "right", wd->code.obj); wd->code.color_data = color_init(eina_strbuf_new()); - evas_object_smart_callback_add(ap.win, SIGNAL_EDITOR_SAVED, _on_save, wd); - evas_object_smart_callback_add(ap.win, SIGNAL_PROJECT_CHANGED, _on_project_changed, wd); _scroll_area_add(wd, &wd->normal, true); elm_object_part_content_set(wd->panes_h, "left", wd->normal.layout); @@ -1616,3 +1581,31 @@ workspace_demo_signal_set(Evas_Object *obj, Demo_Signal *sig) if ((wd->demo.content) && (wd->mode == MODE_DEMO)) evas_object_smart_callback_call(wd->demo.content, SIGNAL_DEMO_SIGNAL_SEND, sig); } + +void +workspace_code_reload(Evas_Object *obj) +{ + WS_DATA_GET(obj); + + _code_reload(wd, NULL, NULL); +} + +void +workspace_code_changed(Evas_Object *obj) +{ + WS_DATA_GET(obj); + Evas_Object *layout, *btn; + + layout = elm_object_part_content_get(wd->code.obj, "elm.swallow.overlay"); + if (layout) return; + + layout = elm_layout_add(wd->code.obj); + elm_layout_theme_set(layout, "layout", "entry", "overlay"); + elm_object_text_set(layout, _("Project is changed")); + btn = elm_button_add(layout); + elm_object_text_set(btn, _("Reload")); + evas_object_smart_callback_add(btn, "clicked", _code_reload, wd); + elm_object_content_set(layout, btn); + + elm_object_part_content_set(wd->code.obj, "elm.swallow.overlay", layout); +} diff --git a/src/bin/ui/workspace/workspace.h b/src/bin/ui/workspace/workspace.h index c82f4b1..3390d9c 100644 --- a/src/bin/ui/workspace/workspace.h +++ b/src/bin/ui/workspace/workspace.h @@ -399,4 +399,10 @@ workspace_demo_text_set(Evas_Object *obj, Demo_Part *part); void workspace_demo_signal_set(Evas_Object *obj, Demo_Signal *sig); +void +workspace_code_reload(Evas_Object *obj); + +void +workspace_code_changed(Evas_Object *obj); + #endif /* WORKSPACE_H */ --