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 */

-- 


Reply via email to