del show event cb after show event for fixing setup wizard bs issue
authorHyungdeuk Kim <hd3.kim@samsung.com>
Thu, 17 Jan 2013 08:14:24 +0000 (17:14 +0900)
committerHyungdeuk Kim <hd3.kim@samsung.com>
Thu, 17 Jan 2013 08:14:24 +0000 (17:14 +0900)
include/ug-dbg.h
packaging/ui-gadget-1.spec
ug-efl-engine/ug-efl-engine.c

index 749c8ac14401805954f094ea32ced9bdd9c37397..00167b0727a356d2e36f3d4999b7199abc5c2f0f 100755 (executable)
@@ -30,8 +30,8 @@
 
 #define LOG_TAG "UI_GADGET"
 
-#define _ERR(fmt, arg...) LOGE("\x1b[33m" fmt "\x1b[0m", ##arg)
+#define _ERR(fmt, arg...) LOGE("\x1b[31m" fmt "\x1b[0m", ##arg)
 #define _DBG(fmt, arg...) LOGD("\x1b[32m" fmt "\x1b[0m", ##arg)
-#define _INFO(fmt, arg...) LOGI("\x1b[31m" fmt "\x1b[0m", ##arg)
+#define _INFO(fmt, arg...) LOGI("\x1b[33m" fmt "\x1b[0m", ##arg)
 
 #endif                         /* __UG_DBG_H__ */
index 40e6af6278917e36fc910e8a6dfb7b14d8b3c9e3..c2a75faa650d84e5fc471177cb5954aac908002b 100755 (executable)
@@ -1,7 +1,7 @@
 
 Name:       ui-gadget-1
 Summary:    UI Gadget Library
-Version:    0.1.13
+Version:    0.1.14
 Release:    1
 Group:      System/Libraries
 License:    Apache License, Version 2.0
index b9141997f523558dda23bee52e8e444dace7c4f7..f4bf697cb33729a29703542cd5af7db0f7a1bd88 100755 (executable)
@@ -38,11 +38,11 @@ struct cb_data {
        void (*transition_cb)(ui_gadget_h ug);
 };
 static void __hide_finished(void *data, Evas_Object *obj, void *event_info);
+static void on_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
 
 static void _on_hideonly_cb(void *data, Evas_Object *obj)
 {
        ui_gadget_h ug = (ui_gadget_h)data;
-       Elm_Object_Item *navi_top;
 
        if (!ug)
                return;
@@ -51,6 +51,13 @@ static void _on_hideonly_cb(void *data, Evas_Object *obj)
 
        evas_object_intercept_hide_callback_del(ug->layout, _on_hideonly_cb);
 
+       struct cb_data *cb_d;
+       cb_d = (struct cb_data *)calloc(1, sizeof(struct cb_data));
+       cb_d->ug = ug;
+       cb_d->transition_cb = NULL;
+
+       evas_object_event_callback_add(ug->layout, EVAS_CALLBACK_SHOW, on_show_cb, cb_d);
+
        if (ug->layout_state == UG_LAYOUT_NOEFFECT) {
                ;
        }
@@ -64,8 +71,7 @@ static void _on_hideonly_cb(void *data, Evas_Object *obj)
                elm_object_signal_emit(conform, "elm,state,indicator,nooverlap", "");
        }
 
-       navi_top = elm_naviframe_top_item_get(navi);
-       if (navi_top == ug->effect_layout) {
+       if (elm_naviframe_top_item_get(navi) == ug->effect_layout) {
                elm_naviframe_item_pop(navi);
        } else {
                elm_object_item_del(ug->effect_layout);
@@ -159,9 +165,6 @@ static int __find_child(ui_gadget_h p, ui_gadget_h ug)
 static void on_destroy(ui_gadget_h ug, ui_gadget_h t_ug,
                       void (*hide_end_cb) (ui_gadget_h ug))
 {
-       struct cb_data *cb_d;
-       Elm_Object_Item *navi_top;
-
        if (!ug)
                return;
        _DBG("\t ug=%p tug=%p state=%d", ug, t_ug, ug->layout_state);
@@ -170,6 +173,7 @@ static void on_destroy(ui_gadget_h ug, ui_gadget_h t_ug,
                                                _on_hideonly_cb);
 
        if (ug != t_ug) {
+               _DBG("requested ug(%p) is not top ug(%p)", ug, t_ug);
                _del_effect_layout(ug);
                hide_end_cb(ug);
                return;
@@ -224,7 +228,8 @@ static void __show_finished(void *data, Evas_Object *obj, void *event_info)
        else
                ug->layout_state = UG_LAYOUT_SHOW;
 
-       cb_d->transition_cb(ug);
+       if(cb_d->transition_cb)
+               cb_d->transition_cb(ug);
        free(cb_d);
 }
 
@@ -237,7 +242,9 @@ static void on_show_cb(void *data, Evas *e, Evas_Object *obj,
        ui_gadget_h ug = cb_d->ug;
        if (!ug)
                return;
-       _DBG("\tobj=%p ug=%p state=%d", obj, ug, ug->layout_state);
+       _DBG("\tobj=%p ug=%p layout=%p state=%d", obj, ug, ug->layout, ug->layout_state);
+
+       evas_object_event_callback_del(ug->layout, EVAS_CALLBACK_SHOW, on_show_cb);
 
        evas_object_intercept_hide_callback_add(ug->layout,
                                                _on_hideonly_cb, ug);
@@ -246,7 +253,7 @@ static void on_show_cb(void *data, Evas *e, Evas_Object *obj,
 
        if (ug->layout_state == UG_LAYOUT_HIDE
            || ug->layout_state == UG_LAYOUT_INIT) {
-               _DBG("\t UG_LAYOUT_Init obj=%p", obj);
+               _DBG("\t UG_LAYOUT_Init(%d) obj=%p", ug->layout_state, obj);
                ug->layout_state = UG_LAYOUT_SHOWEFFECT;
 
                if (GET_OPT_OVERLAP_VAL(ug->opt)) {
@@ -271,7 +278,8 @@ static void on_show_cb(void *data, Evas *e, Evas_Object *obj,
                                navi_top, NULL, NULL, NULL, ug->layout, NULL);
 
                //ug start cb
-               cb_d->transition_cb(ug);
+               if(cb_d->transition_cb)
+                       cb_d->transition_cb(ug);
                free(cb_d);
        } else {
                _ERR("\tlayout state error!! state=%d\n", ug->layout_state);
@@ -282,11 +290,8 @@ static void on_show_cb(void *data, Evas *e, Evas_Object *obj,
 static void *on_create(void *win, ui_gadget_h ug,
                                        void (*show_end_cb) (void* data))
 {
-       const Eina_List *l;
-       Evas_Object *subobj;
        Evas_Object *navi_bg;
        Evas_Object *con = NULL;
-       static const char *ug_effect_edj_name = "/usr/share/edje/ug_effect.edj";
 
        if (!ug)
                return NULL;