rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=b7005ba837b649d90d382f46646bd5256200812c

commit b7005ba837b649d90d382f46646bd5256200812c
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Mon Dec 21 15:41:48 2015 +0200

    demo: use custom layout if no widgets are created
---
 src/bin/common/signals.h                           |  16 +++
 src/bin/ui/live_view/demo.c                        |  26 +---
 .../ui/live_view/elementary/live_custom_layout.c   | 141 +++------------------
 .../live_view/elementary/live_elementary_widgets.h |   4 +-
 .../ui/live_view/elementary/live_widget_common.c   |  44 +------
 src/bin/ui/live_view/live_view.c                   |   2 +-
 6 files changed, 45 insertions(+), 188 deletions(-)

diff --git a/src/bin/common/signals.h b/src/bin/common/signals.h
index 5132975..816b93b 100644
--- a/src/bin/common/signals.h
+++ b/src/bin/common/signals.h
@@ -354,4 +354,20 @@ typedef struct {
  */
 #define SIGNAL_DEMO_TEXT_SET "SIGNAL_DEMO_TEXT_SET"
 
+/**
+ * emited when part swallow is set with data in demo.
+ * eventinfo - part which contain important information like text, name, 
content.
+ *
+ * @ingroup Window
+ */
+#define SIGNAL_DEMO_SWALLOW_SET "SIGNAL_DEMO_SWALLOW_SET"
+
+/**
+ * emited when program's signal is sent into demo.
+ * eventinfo - NULL.
+ *
+ * @ingroup Window
+ */
+#define SIGNAL_DEMO_SIGNAL_SEND "SIGNAL_DEMO_SIGNAL_SEND"
+
 #endif /* SIGNALS_H*/
diff --git a/src/bin/ui/live_view/demo.c b/src/bin/ui/live_view/demo.c
index 2ee526f..d0ef53c 100644
--- a/src/bin/ui/live_view/demo.c
+++ b/src/bin/ui/live_view/demo.c
@@ -20,19 +20,6 @@
 #include "live_view.h"
 #include "live_view_prop.h"
 
-#include "signals.h"
-
-static void
-_set_text(void *data,
-          Evas_Object *obj __UNUSED__,
-          void *event_info)
-{
-   Part_ *part = (Part_ *) event_info;
-   Evas_Object *object = (Evas_Object *) data;
-
-   elm_object_part_text_set(object, part->name, part->content);
-}
-
 Evas_Object *
 demo_add(Evas_Object *parent, Group *group)
 {
@@ -53,18 +40,13 @@ demo_add(Evas_Object *parent, Group *group)
         }
      }
    /* if widget is not created, need use the layout */
-   obj = elm_layout_add(parent);
-   if (!elm_layout_file_set(obj, ap.project->dev, group->name))
+   if (!obj)
      {
-        ERR(N_("Could not load group '%s' from mapped file '%s'."), 
group->name, ap.project->dev)
-        evas_object_del(obj);
-        obj = NULL;
-        TODO("Add frame to container with info that need this state is 
unstable"
-             "and need to restart Eflete.");
+        ERR(N_("Widget live view isn't implemented yet. Using fallback to 
layout"))
+        obj = layout_custom_create(parent, group);
      }
 
-
-   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_TEXT_SET, _set_text, 
obj);
+   assert(obj != NULL);
 
    return obj;
 }
diff --git a/src/bin/ui/live_view/elementary/live_custom_layout.c 
b/src/bin/ui/live_view/elementary/live_custom_layout.c
index d06bb51..23899ea 100644
--- a/src/bin/ui/live_view/elementary/live_custom_layout.c
+++ b/src/bin/ui/live_view/elementary/live_custom_layout.c
@@ -19,135 +19,26 @@
 
 #include "live_view_prop.h"
 
-void
-on_layout_swallow_check(void *data,
-                        Evas_Object *obj,
-                        void *ei __UNUSED__)
-{
-   Evas_Object *rect = NULL, *check = NULL, *ch;
-   Eina_List *item_list = NULL;
-   Eina_Bool all_checks = true;
-
-   Prop_Data *pd = (Prop_Data *)data;
-
-   assert(pd != NULL);
-
-   Evas_Object *object = pd->live_object;
-   const char *part_name = elm_object_part_text_get(obj, NULL);
-   check = elm_object_part_content_get(pd->prop_swallow.frame, 
"elm.swallow.check");
-
-   if (elm_check_state_get(obj))
-     {
-        if (edje_object_part_swallow_get(object, part_name))
-          return;
-        rect = evas_object_rectangle_add(object);
-        evas_object_color_set(rect, RECT_COLOR);
-        edje_object_part_swallow(object, part_name, rect);
-        item_list = elm_box_children_get(pd->prop_swallow.swallows);
-        EINA_LIST_FREE(item_list, ch)
-          {
-             if (elm_check_state_get(ch) == false)
-               all_checks = false;
-          }
-        if (all_checks)
-          elm_check_state_set(check, true);
-     }
-   else
-     {
-        rect = edje_object_part_swallow_get(object, part_name);
-        if (!rect) return;
-        edje_object_part_unswallow(object, rect);
-        evas_object_del(rect);
-        if (elm_check_state_get(check)) elm_check_state_set(check, false);
-     }
-}
-
-void
-on_layout_text_check(void *data,
-                     Evas_Object *obj,
-                     void *ei __UNUSED__)
-{
-   Evas_Object *check = NULL, *ch;
-   Eina_List *item_list = NULL;
-   Eina_Bool all_checks = true;
-   const char *default_text;
-
-   Prop_Data *pd = (Prop_Data *)data;
-
-   assert(pd != NULL);
-
-   Evas_Object *object = pd->live_object;
-   const char *part_name = elm_object_part_text_get(obj, NULL);
-   check = elm_object_part_content_get(pd->prop_text.frame, 
"elm.swallow.check");
-
-   if (elm_check_state_get(obj))
-     {
-        default_text = edje_object_part_text_get(object, part_name);
-        if (default_text)
-          eina_hash_add(pd->prop_text.default_text, part_name, 
eina_stringshare_add(default_text));
-        edje_object_part_text_set(object, part_name,
-                                  _("Look at it! This is absolutely and 
totally text"));
-        item_list = elm_box_children_get(pd->prop_text.texts);
-
-        EINA_LIST_FREE(item_list, ch)
-          {
-             if (elm_check_state_get(ch) == false)
-               all_checks = false;
-          }
-        if (all_checks)
-          elm_check_state_set(check, true);
-     }
-   else
-     {
-        default_text = eina_hash_find(pd->prop_text.default_text, part_name);
-        eina_hash_del(pd->prop_text.default_text, part_name, NULL);
-        edje_object_part_text_set(object, part_name, default_text);
-        if (elm_check_state_get(check)) elm_check_state_set(check, false);
-     }
-}
-
-void
-send_layout_signal(void *data,
-                   Evas_Object *obj,
-                   void *ei __UNUSED__)
-{
-   Evas_Object *object = (Evas_Object *)data;
-
-   assert(object != NULL);
-
-   const char *name = evas_object_data_get(obj, SIGNAL_NAME);
-   const char *source = evas_object_data_get(obj, SIGNAL_SOURCE);
-
-   assert(name != NULL);
-   assert(source != NULL);
-
-   edje_object_signal_emit(object, name, source);
-}
-
-static void
-_on_swallow_clean(const char *part_name, Evas_Object *object)
-{
-   Evas_Object *rect = NULL;
-
-   assert(part_name != NULL);
-   assert(object != NULL);
-
-   rect = edje_object_part_swallow_get(object, part_name);
-   edje_object_part_unswallow(object, rect);
-   evas_object_del(rect);
-}
-
 Evas_Object *
-layout_custom_create(Evas_Object *parent)
+layout_custom_create(Evas_Object *parent, const Group *group)
 {
    assert(parent != NULL);
 
-   Evas_Object *object = edje_object_add(evas_object_evas_get(parent));
+   Evas_Object *obj = elm_layout_add(parent);
+   if (!elm_layout_file_set(obj, ap.project->dev, group->name))
+     {
+        ERR(N_("Could not load group '%s' from mapped file '%s'."), 
group->name, ap.project->dev)
+        evas_object_del(obj);
+        obj = NULL;
+        TODO("Add frame to container with info that need this state is 
unstable"
+             "and need to restart Eflete.");
+        return NULL;
+     }
 
-   evas_object_data_set(object, SWALLOW_FUNC, on_layout_swallow_check);
-   evas_object_data_set(object, SWALLOW_CLEAN_FUNC, _on_swallow_clean);
-   evas_object_data_set(object, TEXT_FUNC, on_layout_text_check);
-   evas_object_data_set(object, SIGNAL_FUNC, send_layout_signal);
+   TODO("DO swallow after text and signal (means free => SWALLOW_CLEAN_FUNC)")
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SWALLOW_SET, 
on_swallow_check, obj);
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_TEXT_SET, on_text_check, 
obj);
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SIGNAL_SEND, 
send_signal, obj);
 
-   return object;
+   return obj;
 }
diff --git a/src/bin/ui/live_view/elementary/live_elementary_widgets.h 
b/src/bin/ui/live_view/elementary/live_elementary_widgets.h
index dcf8216..1ac49e5 100644
--- a/src/bin/ui/live_view/elementary/live_elementary_widgets.h
+++ b/src/bin/ui/live_view/elementary/live_elementary_widgets.h
@@ -30,6 +30,8 @@
 #include "live_widgets.h"
 #include <Elementary.h>
 
+#include "signals.h"
+
 /**
  * Common Swallow callback that is used in most of simple widgets.
  *
@@ -74,7 +76,7 @@ send_signal(void *data, Evas_Object *obj, void *event_info);
  * !  !  !  !  !  !  !  !  !  !  !  !  !  !  !  !  ! *
  *****************************************************/
 Evas_Object *
-layout_custom_create(Evas_Object *parent);
+layout_custom_create(Evas_Object *parent, const Group *group);
 
 Evas_Object *
 widget_actionslider_create(Evas_Object *parent, const Group *group);
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 742e918..ea926c0 100644
--- a/src/bin/ui/live_view/elementary/live_widget_common.c
+++ b/src/bin/ui/live_view/elementary/live_widget_common.c
@@ -95,47 +95,13 @@ on_swallow_check(void *data,
 
 void
 on_text_check(void *data,
-              Evas_Object *obj,
-              void *ei __UNUSED__)
+              Evas_Object *obj __UNUSED__,
+              void *ei)
 {
-   Evas_Object *check = NULL, *ch;
-   Eina_List *item_list = NULL, *it;
-   Eina_Bool all_checks = true;
-   const char *default_text;
-
-   Prop_Data *pd = (Prop_Data *)data;
+   Part_ *part = (Part_ *)ei;
+   Evas_Object *object = (Evas_Object *) data;
 
-   assert(pd != NULL);
-
-   Evas_Object *object = pd->live_object;
-   const char *part_name = elm_object_part_text_get(obj, NULL);
-   check = elm_object_part_content_get(pd->prop_text.frame, 
"elm.swallow.check");
-
-   if (elm_check_state_get(obj))
-     {
-        default_text = elm_object_part_text_get(object, part_name);
-        if (default_text)
-          eina_hash_add(pd->prop_text.default_text, part_name, 
eina_stringshare_add(default_text));
-        elm_object_part_text_set(object, part_name,
-                                 _("Look at it! This is absolutely and totally 
text"));
-        item_list = elm_box_children_get(pd->prop_text.texts);
-
-        EINA_LIST_FOREACH(item_list, it, ch)
-          {
-             if (elm_check_state_get(ch) == false)
-               all_checks = false;
-          }
-        if (all_checks)
-          elm_check_state_set(check, true);
-        eina_list_free(item_list);
-     }
-   else
-     {
-        default_text = eina_hash_find(pd->prop_text.default_text, part_name);
-        eina_hash_del(pd->prop_text.default_text, part_name, NULL);
-        elm_object_part_text_set(object, part_name, default_text);
-        if (elm_check_state_get(check)) elm_check_state_set(check, false);
-     }
+   elm_object_part_text_set(object, part->name, part->content);
 }
 
 void
diff --git a/src/bin/ui/live_view/live_view.c b/src/bin/ui/live_view/live_view.c
index aefa522..4e3f19a 100644
--- a/src/bin/ui/live_view/live_view.c
+++ b/src/bin/ui/live_view/live_view.c
@@ -110,7 +110,7 @@ _live_view_load_object(Live_View *live, Group *group)
      {
         if (!live->in_prog_edit)
           {
-             live->object = layout_custom_create(live->layout);
+             live->object = layout_custom_create(live->layout, NULL);
           }
         else
           {

-- 


Reply via email to