rimmed pushed a commit to branch master.

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

commit ecd555fd5b8e28717197175c26b49b1c3183df80
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Thu May 12 10:32:44 2016 +0300

    group_navigator: add dummy object
    
    This object will be setted instead the real group navi, taked from
    workspace.
    
    Change-Id: I84a7b771b560df925cbf8edb5ce85dcb8c547301
---
 src/bin/ui/workspace/group_navigator.c | 54 ++++++++++++++++++++++++++--------
 src/bin/ui/workspace/group_navigator.h |  3 ++
 src/bin/ui/workspace/workspace.c       |  2 ++
 3 files changed, 46 insertions(+), 13 deletions(-)

diff --git a/src/bin/ui/workspace/group_navigator.c 
b/src/bin/ui/workspace/group_navigator.c
index 3e12e30..860d94b 100644
--- a/src/bin/ui/workspace/group_navigator.c
+++ b/src/bin/ui/workspace/group_navigator.c
@@ -29,6 +29,8 @@
 
 #define GROUP_NAVIGATOR_DATA "group_navigator_data"
 
+static Evas_Object *dummy_navi = NULL;
+
 typedef struct
 {
    Group *group;
@@ -95,6 +97,14 @@ static const char *program_actions[] = {
 
 static const unsigned int part_types_count = 12;
 
+#define BTN_ADD(LAYOUT, BTN, SWALLOW, ICON_NAME) \
+   BTN = elm_button_add(LAYOUT); \
+   ICON_STANDARD_ADD(BTN, icon, true, ICON_NAME); \
+   elm_layout_content_set(BTN, NULL, icon); \
+   elm_object_style_set(BTN, "anchor"); \
+   elm_object_part_content_set(LAYOUT, SWALLOW, BTN);
+
+
 static char *
 _resource_label_get(void *data,
                     Evas_Object *obj __UNUSED__,
@@ -1900,24 +1910,19 @@ group_navigator_add(Evas_Object *parent, Group *group)
 
    pl->group = group;
 
-#define BTN_ADD(BTN, SWALLOW, ICON_NAME, CALLBACK) \
-   pl->BTN = elm_button_add(pl->layout); \
-   ICON_STANDARD_ADD(pl->BTN, icon, true, ICON_NAME); \
-   elm_object_part_content_set(pl->BTN, NULL, icon); \
-   evas_object_smart_callback_add(pl->BTN, "clicked", CALLBACK, pl); \
-   elm_object_style_set(pl->BTN, "anchor"); \
-   elm_object_part_content_set(pl->layout, SWALLOW, pl->BTN);
-
-   BTN_ADD(btn_add, "elm.swallow.btn3", "plus", _on_btn_plus_clicked);
-   BTN_ADD(btn_del, "elm.swallow.btn2", "minus", _on_btn_minus_clicked);
-   BTN_ADD(btn_down, "elm.swallow.btn1", "arrow_down", _on_btn_down_clicked);
-   BTN_ADD(btn_up, "elm.swallow.btn0", "arrow_up", _on_btn_up_clicked);
+   BTN_ADD(pl->layout, pl->btn_add, "elm.swallow.btn3", "plus");
+   evas_object_smart_callback_add(pl->btn_add, "clicked", 
_on_btn_plus_clicked, pl);
+   BTN_ADD(pl->layout, pl->btn_del, "elm.swallow.btn2", "minus");
+   evas_object_smart_callback_add(pl->btn_del, "clicked", 
_on_btn_minus_clicked, pl);
+   BTN_ADD(pl->layout, pl->btn_down, "elm.swallow.btn1", "arrow_down");
+   evas_object_smart_callback_add(pl->btn_down, "clicked", 
_on_btn_down_clicked, pl);
+   BTN_ADD(pl->layout, pl->btn_up, "elm.swallow.btn0", "arrow_up");
+   evas_object_smart_callback_add(pl->btn_up, "clicked", _on_btn_up_clicked, 
pl);
 
    elm_object_disabled_set(pl->btn_del, true);
    elm_object_disabled_set(pl->btn_down, true);
    elm_object_disabled_set(pl->btn_up, true);
 
-#undef BTN_ADD
    pl->itc_part = elm_genlist_item_class_new();
    pl->itc_part->item_style = "part";
    pl->itc_part->func.text_get = _resource_label_get;
@@ -2013,6 +2018,29 @@ group_navigator_add(Evas_Object *parent, Group *group)
    return pl->layout;
 }
 
+Evas_Object *
+group_navigator_dummy_get(void)
+{
+   Evas_Object *btn, *genlist, *icon;
+
+   if (dummy_navi) goto exit;
+
+   dummy_navi = elm_layout_add(ap.win);
+   elm_layout_theme_set(dummy_navi, "layout", "navigator", "default");
+   BTN_ADD(dummy_navi, btn, "elm.swallow.btn3", "plus");
+   BTN_ADD(dummy_navi, btn, "elm.swallow.btn2", "minus");
+   BTN_ADD(dummy_navi, btn, "elm.swallow.btn1", "arrow_down");
+   BTN_ADD(dummy_navi, btn, "elm.swallow.btn0", "arrow_up");
+
+   genlist = elm_genlist_add(dummy_navi);
+   elm_layout_content_set(dummy_navi, NULL, genlist);
+
+   elm_object_disabled_set(dummy_navi, true);
+exit:
+   evas_object_show(dummy_navi);
+   return dummy_navi;
+}
+
 void
 group_navigator_part_select(Evas_Object *obj, Part *part)
 {
diff --git a/src/bin/ui/workspace/group_navigator.h 
b/src/bin/ui/workspace/group_navigator.h
index b03105e..a1381af 100644
--- a/src/bin/ui/workspace/group_navigator.h
+++ b/src/bin/ui/workspace/group_navigator.h
@@ -50,6 +50,9 @@
 Evas_Object *
 group_navigator_add(Evas_Object *parent, Group *group);
 
+Evas_Object *
+group_navigator_dummy_get(void);
+
 /**
  * @ingroup Partlist
  */
diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c
index 9b606ec..eee639a 100644
--- a/src/bin/ui/workspace/workspace.c
+++ b/src/bin/ui/workspace/workspace.c
@@ -1613,6 +1613,8 @@ workspace_code_changed(Evas_Object *obj)
 Evas_Object *
 workspace_group_navigator_get(Evas_Object *obj)
 {
+   if (!obj) return group_navigator_dummy_get();
+
    WS_DATA_GET(obj);
    return wd->group_navi;
 }

-- 


Reply via email to