apply new elementary version
authorHyungdeuk Kim <hd3.kim@samsung.com>
Fri, 7 Dec 2012 06:42:32 +0000 (15:42 +0900)
committerHyungdeuk Kim <hd3.kim@samsung.com>
Fri, 7 Dec 2012 06:42:32 +0000 (15:42 +0900)
client/ug-client.c
client/ug-client.h
include/ui-gadget-engine.h
packaging/ui-gadget-1.spec
src/manager.c
ug-efl-engine/ug-efl-engine.c
ug-efl-engine/ug_effect.edc

index 5fccba0120711ab0a60e94d1772150bbea8785fb..5d36b062e590c9a02117193ed89266c348fc6a57 100755 (executable)
@@ -26,6 +26,7 @@
 #include <dlog.h>
 #include <aul.h>
 #include <appsvc.h>
+#include <app.h>
 #include <runtime_info.h>
 
 #include "ug-client.h"
@@ -122,8 +123,8 @@ void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
        case UG_MODE_FULLVIEW:
                evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
                                                 EVAS_HINT_EXPAND);
-               elm_win_resize_object_add(ad->win, base);
                ug_disable_effect(ug);
+               elm_object_content_set(ad->ly_main, base);
                evas_object_show(base);
                break;
        case UG_MODE_FRAMEVIEW:
@@ -157,6 +158,16 @@ void destroy_cb(ui_gadget_h ug, void *priv)
        elm_exit();
 }
 
+static void profile_changed_cb(void *data, Evas_Object * obj, void *event)
+{
+       const char *profile = elm_config_profile_get();
+
+       if (strcmp(profile, "desktop") == 0)
+               elm_win_indicator_mode_set (obj, ELM_WIN_INDICATOR_HIDE);
+       else
+               elm_win_indicator_mode_set (obj, ELM_WIN_INDICATOR_SHOW);
+}
+
 static Evas_Object *create_win(const char *name)
 {
        Evas_Object *eo;
@@ -165,9 +176,9 @@ static Evas_Object *create_win(const char *name)
        eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
        if (eo) {
                elm_win_title_set(eo, name);
-               elm_win_borderless_set(eo, EINA_TRUE);
                evas_object_smart_callback_add(eo, "delete,request",
                                               win_del, NULL);
+               evas_object_smart_callback_add(eo, "profile,changed", profile_changed_cb, NULL);
                ecore_x_window_size_get(ecore_x_window_root_first_get(),
                                        &w, &h);
                evas_object_resize(eo, w, h);
@@ -181,7 +192,6 @@ static Evas_Object *load_edj(Evas_Object *parent, const char *file,
 {
        Evas_Object *eo;
        int r;
-
        eo = elm_layout_add(parent);
        if (eo) {
                r = elm_layout_file_set(eo, file, group);
@@ -189,12 +199,10 @@ static Evas_Object *load_edj(Evas_Object *parent, const char *file,
                        evas_object_del(eo);
                        return NULL;
                }
-
                evas_object_size_hint_weight_set(eo,
                                                 EVAS_HINT_EXPAND,
                                                 EVAS_HINT_EXPAND);
        }
-
        return eo;
 }
 
@@ -219,6 +227,8 @@ static int app_create(void *data)
        enum appcore_rm rm;
        Evas_Object *win;
        Evas_Object *ly;
+       Evas_Object *conform;
+       Evas_Object *bg;
 
        /* create window */
        win = create_win(PACKAGE);
@@ -227,25 +237,37 @@ static int app_create(void *data)
        ad->win = win;
        UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
 
+       bg = elm_bg_add(win);
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(win, bg);
+       evas_object_show(bg);
+
+       conform = elm_conformant_add(win);
+       evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       ad->conform = conform;
+
        /* load edje */
-       ly = load_edj(win, EDJ_FILE, GRP_MAIN);
+       ly = load_edj(conform, EDJ_FILE, GRP_MAIN);
        if (ly == NULL)
                return -1;
-       elm_win_resize_object_add(win, ly);
+       elm_win_resize_object_add(win, conform);
+
+       evas_object_show(conform);
+       elm_object_content_set(conform, ly);
        edje_object_signal_callback_add(elm_layout_edje_get(ly),
                                        "EXIT", "*", main_quit_cb, NULL);
        ad->ly_main = ly;
-
+       elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW);
        lang_changed(ad);
 
+       if (appcore_get_rotation_state(&rm) == 0)
+               rotate(rm, ad);
+
        appcore_set_rotation_cb(rotate, ad);
        appcore_set_event_callback(APPCORE_EVENT_LOW_MEMORY, low_memory, ad);
        appcore_set_event_callback(APPCORE_EVENT_LOW_BATTERY, low_battery, ad);
        appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, lang_changed, ad);
 
-       if (appcore_get_rotation_state(&rm) == 0)
-               rotate(rm, ad);
-
        return 0;
 }
 
@@ -265,7 +287,13 @@ static int app_terminate(void *data)
 
 static int app_pause(void *data)
 {
+       struct appdata *ad = data;
+
        ug_pause();
+       if (!ad->is_transient) {
+               LOGD("app_pause received. close ug service\n");
+               elm_exit();
+       }
        return 0;
 }
 
@@ -281,18 +309,20 @@ static int svc_cb(void *data)
        return 0;
 }
 
-extern int service_create_event(bundle *data, service_h *service);
-extern int appsvc_request_transient_app(bundle *b, Ecore_X_Window callee_id, appsvc_host_res_fn cbfunc, void *data);
-
 static int app_reset(bundle *b, void *data)
 {
        struct appdata *ad = data;
        struct ug_cbs cbs = { 0, };
        service_h service;
        enum ug_mode mode = UG_MODE_FULLVIEW;
-
+       int ret;
        Ecore_X_Window id2 = elm_win_xwindow_get(ad->win);
-       appsvc_request_transient_app(b, id2, svc_cb, "svc test");
+
+       ret = appsvc_request_transient_app(b, id2, svc_cb, "svc test");
+       if (ret)
+               LOGD("fail to request transient app: return value(%d)\n", ret);
+       else
+               ad->is_transient = 1;
 
        if (ad->win) {
                elm_win_activate(ad->win);
@@ -311,6 +341,8 @@ static int app_reset(bundle *b, void *data)
        cbs.result_cb = result_cb;
        cbs.priv = ad;
 
+       mode = ad->is_frameview ? UG_MODE_FRAMEVIEW : UG_MODE_FULLVIEW;
+
        ad->ug = ug_create(NULL, ad->name, mode, service, &cbs);
        if (ad->ug == NULL) {
                LOGE("ug_create fail: %s\n", ad->name);
@@ -367,6 +399,12 @@ int main(int argc, char *argv[])
                                if (optarg)
                                        ad.name = strdup(optarg);
                                break;
+                       case 'f':
+                               ad.is_frameview = 1;
+                               break;
+                       case 'F':
+                               ad.is_frameview = 0;
+                               break;
                        case 'd':
                                if (update_argument(optarg, &ad)) {
                                        if (ad.data)
index a684bed345a0668bb93d80e0db355e87c9b4b1e1..7c496fd1b2f94588fadb9aea7870b4462df4d14c 100755 (executable)
 struct appdata {
        Evas_Object *win;
        Evas_Object *ly_main;
+       Evas_Object *conform;
 
        ui_gadget_h ug;
        const char *name;
        int is_frameview;
+       int is_transient;
 
        bundle *data;
        service_h request;
index da462dae87c86ab18a778bbd46e08d5aa46e0100..e5c999c3579758ac9b43d5f42a6506c0fd7a376c 100755 (executable)
@@ -51,9 +51,9 @@ extern "C" {
  */
 struct ug_engine_ops {
        /** create operation */
-       void *(*create)(void *win, ui_gadget_h ug, void(*hide_end_cb)(ui_gadget_h ug));
+       void *(*create)(void *win, ui_gadget_h ug);
        /** destroy operation */
-       void (*destroy)(ui_gadget_h ug, ui_gadget_h fv_top);
+       void (*destroy)(ui_gadget_h ug, ui_gadget_h fv_top, void(*hide_end_cb)(ui_gadget_h ug));
        /** reserved operations */
        void *reserved[4];
 };
index d54671459385a59299b20c929968583fcfad9e9a..5ddffcfae2ddab37b5e308b099ba639bad423169 100755 (executable)
@@ -1,7 +1,7 @@
 
 Name:       ui-gadget-1
 Summary:    UI Gadget Library
-Version:    0.1.3
+Version:    0.1.4
 Release:    1
 Group:      TO_BE/FILLED_IN
 License:    TO BE FILLED IN
index 5c581c8446374aa4f0c7776f12815c19ee617ad0..7ff73fddac9d0e9da34c8a5c36109c5e69892d75 100755 (executable)
@@ -423,7 +423,7 @@ static int ugman_ug_create(void *data)
                }
                if (ug->mode == UG_MODE_FULLVIEW) {
                        if (eng_ops && eng_ops->create)
-                               ug->effect_layout = eng_ops->create(ug_man.win, ug, ug_hide_end_cb);
+                               eng_ops->create(ug_man.win, ug);
                }
                cbs = &ug->cbs;
 
@@ -579,10 +579,9 @@ int ugman_ug_del(ui_gadget_h ug)
 
        if (eng_ops && eng_ops->destroy)
                if (ug->mode == UG_MODE_FULLVIEW)
-                       eng_ops->destroy(ug, ug_man.fv_top);
+                       eng_ops->destroy(ug, ug_man.fv_top, ug_hide_end_cb);
                else {
-                       eng_ops->destroy(ug, NULL);
-                       g_idle_add(ugman_ug_destroy, ug);
+                       eng_ops->destroy(ug, NULL, ug_hide_end_cb);
                }
        else
                g_idle_add(ugman_ug_destroy, ug);
index 60f16af3f7b25baf9303eb5e945ff7137b95186f..97c9f838ddf13fa63fd2c74d2eee009b1f3587ca 100755 (executable)
@@ -19,8 +19,6 @@
  *
  */
 
-
-
 #include <glib.h>
 #include <Elementary.h>
 #include <ui-gadget-engine.h>
 #define UG_ENGINE_API __attribute__ ((visibility("default")))
 #endif
 
+static Evas_Object *navi = NULL;
+static Evas_Object *conform = NULL;
 struct cb_data {
        ui_gadget_h ug;
-       void(*hide_end_cb)(ui_gadget_h ug);
+       void (*hide_end_cb)(ui_gadget_h ug);
 };
-
+static void __hide_finished(void *data, Evas_Object *obj, void *event_info);
 
 static void _on_hideonly_cb(void *data, Evas_Object *obj)
 {
        ui_gadget_h ug = (ui_gadget_h)data;
-       if (!ug)
-               return;
-
-       if (ug->layout_state == UG_LAYOUT_SHOW) {
-               ug->layout_state = UG_LAYOUT_HIDEEFFECT;
-               edje_object_signal_emit(elm_layout_edje_get(ug->effect_layout),
-                                       "elm,state,hideonly", "");
-       }
-}
+       Elm_Object_Item *navi_top;
 
-static void _signal_hideonly_finished(void *data, Evas_Object *obj,
-                                     const char *emission, const char *source)
-{
-       ui_gadget_h ug = (ui_gadget_h)data;
        if (!ug)
                return;
 
-       evas_object_intercept_hide_callback_del(ug->layout, _on_hideonly_cb);
+       _DBG("\t[%s][%d] obj=%p ug=%p state=%d\n", __FUNCTION__, __LINE__, obj,
+               ug, ug->layout_state);
 
-       evas_object_hide(ug->layout);
-       elm_object_part_content_unset(ug->effect_layout, "elm.swallow.content");
+       evas_object_intercept_hide_callback_del(ug->layout, _on_hideonly_cb);
 
-       if (ug->layout_state == UG_LAYOUT_NOEFFECT)
-               return;
+       if (ug->layout_state == UG_LAYOUT_NOEFFECT) {
+               ;
+       }
 
-       evas_object_hide(ug->effect_layout);
+       if (ug->layout_state == UG_LAYOUT_SHOW) {
+               ug->layout_state = UG_LAYOUT_HIDEEFFECT;
+       }
 
-       if (ug->layout_state == UG_LAYOUT_DESTROY)
-               edje_object_signal_emit(elm_layout_edje_get(ug->effect_layout),
-                                       "elm,state,hidealready", "");
-       else
-               ug->layout_state = UG_LAYOUT_HIDE;
+       navi_top = elm_naviframe_top_item_get(navi);
+       if (navi_top == ug->effect_layout) {
+               elm_naviframe_item_pop(navi);
+       } else {
+               elm_object_item_del(ug->effect_layout);
+               ug->effect_layout = NULL;
+       }
 }
 
 static void _del_effect_layout(ui_gadget_h ug)
 {
-       if (!ug || !ug->effect_layout)
+       GSList *child, *trail;
+
+       if (!ug)
                return;
 
+       _DBG("\t[%s][%d] ug=%p state=%d\n", __FUNCTION__, __LINE__, ug,
+               ug->layout_state);
+
        evas_object_intercept_hide_callback_del(ug->layout, _on_hideonly_cb);
 
+       if (ug->children) {
+               child = ug->children;
+               while (child) {
+                       trail = g_slist_next(child);
+                       _del_effect_layout(child->data);
+                       child = trail;
+               }
+       }
+
+       /* effect_layout of frameview is null */
+       /* remove navi item */
+       if (ug->effect_layout) {
+               _DBG("\t[%s][%d] remove navi tiem: ug=%p\n", __FUNCTION__,
+                       __LINE__,ug);
+               if (ug->layout_state == UG_LAYOUT_HIDEEFFECT) {
+                       _DBG("\t del cb, ug=%p\n", ug);
+                       evas_object_smart_callback_del(navi, "transition,finished",
+                                                       __hide_finished);
+               }
+               elm_object_item_del(ug->effect_layout);
+               ug->effect_layout = NULL;
+       }
+
+       if (navi) {
+               Elm_Object_Item *t = elm_naviframe_top_item_get(navi);
+               Elm_Object_Item *b = elm_naviframe_bottom_item_get(navi);
+               if (t == b) {
+                       _DBG("\t[%s][%d]remove navi\n", __FUNCTION__, __LINE__);
+                       evas_object_del(navi);
+                       navi = NULL;
+               }
+       }
        evas_object_hide(ug->layout);
-       elm_object_part_content_unset(ug->effect_layout, "elm.swallow.content");
-       evas_object_hide(ug->effect_layout);
-       evas_object_del(ug->effect_layout);
-       ug->effect_layout = NULL;
 }
 
-static void _signal_hide_finished(void *data, Evas_Object *obj,
-                                 const char *emission, const char *source)
+static void __hide_finished(void *data, Evas_Object *obj, void *event_info)
 {
-       struct cb_data *cb_d = (struct cb_data*)data;
+       struct cb_data *cb_d = (struct cb_data *)data;
 
        if (!cb_d)
                return;
 
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                       __hide_finished);
+
        ui_gadget_h ug = cb_d->ug;
+       _DBG("\t[%s][%d] obj=%p ug=%p state=%d\n", __FUNCTION__, __LINE__, obj,
+               ug, ug->layout_state);
 
+       ug->effect_layout = NULL;
        _del_effect_layout(ug);
        cb_d->hide_end_cb(ug);
        free(cb_d);
 }
 
-static void _signal_hidealready_finished(void *data, Evas_Object *obj,
-                               const char *emission, const char *source)
+static int __find_child(ui_gadget_h p, ui_gadget_h ug)
 {
-       struct cb_data *cb_d = (struct cb_data*)data;
-
-       if (!cb_d)
-               return;
-
-       ui_gadget_h ug = cb_d->ug;
+       GSList *child = NULL;
+
+       if (!p || !ug)
+               return 0;
+       child = p->children;
+
+       while (child) {
+               if (child->data == ug)
+                       return 1;
+               if (__find_child(child->data, ug))
+                       return 1;
+               child = g_slist_next(child);
+       }
 
-       _del_effect_layout(ug);
-       cb_d->hide_end_cb(ug);
-       free(cb_d);
+       return 0;
 }
 
-static void _do_destroy(ui_gadget_h ug, ui_gadget_h fv_top)
+static void on_destroy(ui_gadget_h ug, ui_gadget_h t_ug,
+                      void (*hide_end_cb) (ui_gadget_h ug))
 {
-       GSList *child;
-       GSList *trail;
-       static int depth = 0;
+       struct cb_data *cb_d;
+       Elm_Object_Item *navi_top;
 
-       if (ug->children) {
-               child = ug->children;
-               while (child) {
-                       trail = g_slist_next(child);
-                       depth++;
-                       _do_destroy(child->data, fv_top);
-                       depth--;
-                       child = trail;
-               }
-       }
+       if (!ug)
+               return;
+       _DBG("\t[%s][%d] ug=%p tug=%p state=%d\n", __FUNCTION__, __LINE__, ug,
+               t_ug, ug->layout_state);
 
-       _DBG("[UG Effect Plug-in] : start destroy. ug(%p), fv_top(%p),"
-                                       " depth(%d), layout_state(%d)\n",
-                                        ug, fv_top, depth, ug->layout_state);
+       evas_object_intercept_hide_callback_del(ug->layout,
+                                               _on_hideonly_cb);
 
-       /* fv_top is null while destroying frameview ug */
-       if (fv_top == NULL) {
+       if (ug != t_ug) {
                _del_effect_layout(ug);
+               hide_end_cb(ug);
                return;
        }
-       /* only show transition effect of top view UG */
-       if (ug != fv_top) {
-               if (depth) {
-                       _del_effect_layout(ug);
-                       return;
-               }
-       }
 
        if (ug->layout_state == UG_LAYOUT_SHOW) {
-               evas_object_intercept_hide_callback_del(ug->layout,
-                                                       _on_hideonly_cb);
-               edje_object_signal_emit(elm_layout_edje_get(ug->effect_layout),
-                                       "elm,state,hide", "");
+               struct cb_data *cb_d;
+               cb_d = (struct cb_data *)calloc(1, sizeof(struct cb_data));
+               cb_d->ug = ug;
+               cb_d->hide_end_cb = hide_end_cb;
+
+               _DBG("\t[%s][%d]cb add ug=%p\n", __FUNCTION__, __LINE__, ug);
+
+               evas_object_smart_callback_add(navi, "transition,finished",
+                                       __hide_finished, cb_d);
+               elm_naviframe_item_pop(navi);
+               ug->layout_state = UG_LAYOUT_HIDEEFFECT;
        } else if (ug->layout_state == UG_LAYOUT_HIDE
                   || ug->layout_state == UG_LAYOUT_NOEFFECT) {
-               edje_object_signal_emit(elm_layout_edje_get(ug->effect_layout),
-                                       "elm,state,hidealready", "");
+               _del_effect_layout(ug);
+               hide_end_cb(ug);
        } else if (ug->layout_state == UG_LAYOUT_HIDEEFFECT
                   || ug->layout_state == UG_LAYOUT_SHOWEFFECT) {
                ug->layout_state = UG_LAYOUT_DESTROY;
@@ -171,26 +199,22 @@ static void _do_destroy(ui_gadget_h ug, ui_gadget_h fv_top)
        }
 }
 
-static void on_destroy(ui_gadget_h ug, ui_gadget_h fv_top)
+static void __show_finished(void *data, Evas_Object *obj, void *event_info)
 {
+       ui_gadget_h ug = (ui_gadget_h) data;
        if (!ug)
                return;
-       _do_destroy(ug, fv_top);
-}
+       _DBG("\t[%s][%d] obj=%p ug=%p state=%d\n", __FUNCTION__, __LINE__, obj,
+               ug, ug->layout_state);
 
-static void _signal_show_finished(void *data, Evas_Object *obj,
-                                 const char *emission, const char *source)
-{
-       ui_gadget_h ug = (ui_gadget_h )data;
-       if (!ug)
-               return;
+       evas_object_smart_callback_del(obj, "transition,finished",
+                                       __show_finished);
 
        if (ug->layout_state == UG_LAYOUT_NOEFFECT)
                return;
 
        if (ug->layout_state == UG_LAYOUT_DESTROY)
-               edje_object_signal_emit(elm_layout_edje_get(ug->effect_layout),
-                                       "elm,state,hide", "");
+               ;
        else
                ug->layout_state = UG_LAYOUT_SHOW;
 }
@@ -198,71 +222,75 @@ static void _signal_show_finished(void *data, Evas_Object *obj,
 static void on_show_cb(void *data, Evas *e, Evas_Object *obj,
                       void *event_info)
 {
-       ui_gadget_h ug = (ui_gadget_h )data;
+       ui_gadget_h ug = (ui_gadget_h)data;
        if (!ug)
                return;
+       _DBG("\t[%s][%d] obj=%p ug=%p state=%d\n", __FUNCTION__, __LINE__, obj,
+               ug, ug->layout_state);
 
-       if (ug->layout_state == UG_LAYOUT_NOEFFECT) {
-               evas_object_hide(ug->effect_layout);
-               evas_object_show(ug->layout);
-               return;
-       }
+       evas_object_intercept_hide_callback_add(ug->layout,
+                                               _on_hideonly_cb, ug);
+
+       elm_object_part_content_set(conform, "elm.swallow.ug", navi);
 
        if (ug->layout_state == UG_LAYOUT_HIDE
            || ug->layout_state == UG_LAYOUT_INIT) {
+               _DBG("\t UG_LAYOUT_Init obj=%p\n", obj);
                ug->layout_state = UG_LAYOUT_SHOWEFFECT;
-               evas_object_show(ug->effect_layout);
-               elm_object_part_content_set(ug->effect_layout, "elm.swallow.content",
-                                      ug->layout);
-               evas_object_intercept_hide_callback_add(ug->layout,
-                                                       _on_hideonly_cb, ug);
-               edje_object_signal_emit(elm_layout_edje_get(ug->effect_layout),
-                                       "elm,state,show", "");
+               evas_object_smart_callback_add(navi, "transition,finished",
+                                               __show_finished, ug);
+               ug->effect_layout = elm_naviframe_item_push(navi, NULL, NULL, NULL,
+                                                   ug->layout, NULL);
+       } else if (ug->layout_state == UG_LAYOUT_NOEFFECT) {
+               _DBG("\t UG_LAYOUT_NOEFFECT obj=%p\n", obj);
+               Elm_Object_Item *navi_top = elm_naviframe_top_item_get(navi);
+               ug->effect_layout = elm_naviframe_item_insert_after(navi,
+                               navi_top, NULL, NULL, NULL, ug->layout, NULL);
+       } else {
+               _ERR("\t [%s][%d] layout state error!! state=%d\n",
+                       __FUNCTION__, __LINE__, ug->layout_state);
        }
 }
 
-static void *on_create(void *win, ui_gadget_h ug,
-                      void (*hide_end_cb) (ui_gadget_h ug))
+static void *on_create(void *win, ui_gadget_h ug)
 {
+       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";
-       struct cb_data *cb_d;
-
-       Evas_Object *ly = elm_layout_add((Evas_Object *) win);
 
-       if (!ly)
-               return NULL;
+       _DBG("[%s][%d] START==========>\n", __FUNCTION__, __LINE__);
 
-       evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND,
-                                        EVAS_HINT_EXPAND);
-       elm_win_resize_object_add((Evas_Object *) win, ly);
-       elm_layout_file_set(ly, ug_effect_edj_name, "ug_effect");
-       evas_object_show(ly);
+       con = evas_object_data_get(win, "\377 elm,conformant");
+       if (con) {
+               conform = con;
+               _DBG("\t There is conformant\n");
+       }
+       else
+               _DBG("\t There is NO conformant\n");
+
+       if (!navi) {
+               navi = elm_naviframe_add(conform);
+               elm_object_style_set(navi, "uglib");
+               elm_naviframe_content_preserve_on_pop_set(navi, EINA_TRUE);
+               _DBG("\t new navi first navi=%p\n", navi);
+               elm_naviframe_prev_btn_auto_pushed_set(navi, EINA_FALSE);
+
+               navi_bg = evas_object_rectangle_add(evas_object_evas_get(navi));
+               evas_object_size_hint_fill_set(navi_bg, EVAS_HINT_FILL,
+                                               EVAS_HINT_FILL);
+               evas_object_color_set(navi_bg, 0, 0, 0, 0);
+               elm_naviframe_item_push(navi, NULL, NULL, NULL, navi_bg, NULL);
+       }
 
        evas_object_hide(ug->layout);
-
-       cb_d = calloc(1, sizeof(struct cb_data));
-       cb_d->ug = ug;
-       cb_d->hide_end_cb = hide_end_cb;
-
-       edje_object_signal_callback_add(elm_layout_edje_get(ly),
-                                       "elm,action,hide,finished", "",
-                                       _signal_hide_finished, cb_d);
-       edje_object_signal_callback_add(elm_layout_edje_get(ly),
-                                       "elm,action,hidealready,finished", "",
-                                       _signal_hidealready_finished, cb_d);
-       edje_object_signal_callback_add(elm_layout_edje_get(ly),
-                                       "elm,action,hideonly,finished", "",
-                                       _signal_hideonly_finished, ug);
-       edje_object_signal_callback_add(elm_layout_edje_get(ly),
-                                       "elm,action,show,finished", "",
-                                       _signal_show_finished, ug);
-
        evas_object_event_callback_add(ug->layout, EVAS_CALLBACK_SHOW,
                                       on_show_cb, ug);
 
        ug->layout_state = UG_LAYOUT_INIT;
 
-       return ly;
+       return NULL;
 }
 
 UG_ENGINE_API int UG_ENGINE_INIT(struct ug_engine_ops *ops)
index 8e931259e607c0fafbbf4f2de57e6a17f01c6d45..0be0ed330aafbeeb313d62acf16f85bbccc0580a 100644 (file)
  */
 
 //TRANSLATION EFFECT
-collections {
-       group {
-               name: "ug_effect";
-               parts {
-                       part {
-                               name: "clip";
-                               type: RECT;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1 { relative: 1 0; }
-                                       rel2 { relative: 2 1; }
-                                       color: 255 255 255 0;
-                               }
-                               description {
-                                       state: "show" 0.0;
-                                       rel1 { relative: 0 0; }
-                                       rel2 { relative: 1 1; }
-                                       color: 255 255 255 255;
-                               }
-                       }
-                       part {
-                               name: "elm.swallow.content";
-                               type: SWALLOW;
-                               clip_to: "clip";
-                               description {
-                                       rel1.to: "clip";
-                                       rel2.to: "clip";
-                               }
-                       }
-                       part {
-                               name: "event_blocker";
-                               description {
-                                       state: "default" 0.0;
-                                       visible: 1;
-                               }
-                               description {
-                                       state: "show" 0.0;
-                                       inherit: "default" 0.0;
-                               }
-                               description {
-                                       state: "disabled" 0.0;
-                                       inherit: "default" 0.0;
-                                       visible: 0;
-                               }
-                       }
-               }
-               programs {
-                       program {
-                               name: "show";
-                               signal: "elm,state,show";
-                               action: STATE_SET "show" 0.0;
-                               target: "clip";
-                               target: "event_blocker";
-                               transition: "DECELERATE" 0.2;
-                               after: "show_end";
-                       }
-                       program {
-                               name: "hide";
-                               signal: "elm,state,hide";
-                               action: STATE_SET "default" 0.0;
-                               target: "clip";
-                               target: "event_blocker";
-                               transition: "DECELERATE" 0.2;
-                               after: "hide_end";
-                       }
-                       program {
-                               name: "disable_event_blocker";
-                               signal: "elm,state,blocker,disabled";
-                               action: STATE_SET "disabled" 0.0;
-                               target: "event_blocker";
-                       }
-                       program {
-                               name: "disable_blocker";
-                               action: SIGNAL_EMIT "elm,state,blocker,disabled" "";
-                       }
-                       program {
-                               name: "show_end";
-                               action: SIGNAL_EMIT "elm,action,show,finished" "";
-                               after: "disable_blocker";
-                       }
-                       program {
-                               name: "hide_end";
-                               action: SIGNAL_EMIT "elm,action,hide,finished" "";
-                               after: "disable_blocker";
-                       }
-
-                       program {
-                               name: "hide_already";
-                               signal: "elm,state,hidealready";
-                               after: "hide_already_end";
-                       }
-                       program {
-                               name: "hide_already_end";
-                               action: SIGNAL_EMIT "elm,action,hidealready,finished" "";
-                       }
+#define NAVIFRAME_VIEW_TRANS_TIME 0.1
 
-                       program {
-                               name: "hide_only";
-                               signal: "elm,state,hideonly";
-                               action: STATE_SET "default" 0.0;
-                               target: "clip";
-                               target: "event_blocker";
-                               transition: "DECELERATE" 0.2;
-                               after: "hide_only_end";
-                       }
-                       program {
-                               name: "hide_only_end";
-                               action: SIGNAL_EMIT "elm,action,hideonly,finished" "";
-                               after: "disable_blocker";
-                       }
-               }
-       }
+collections {
+/*  group { name:"elm/naviframe/item/basic/uglib";
+      parts {
+         part { name: "base";
+            type: RECT;
+            mouse_events:  0;
+            description { state: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "right" 0.0;
+               inherit: "default" 0.0;
+               rel1.relative: 1.0 0.0;
+               rel2.relative: 2.0 1.0;
+               color: 255 255 255 0;
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            scale: 1;
+            repeat_events: 0;
+            clip_to: "base";
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel1.relative: 0.0 0.0;
+               rel1.to: "base";
+               rel2.relative: 1.0 1.0;
+               rel2.to: "base";
+            }
+         }
+      }
+      programs {
+         program { name: "content_new_pushed";
+            signal: "elm,state,new,pushed,internal";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "show_finished";
+         }
+         program { name: "content_cur_pushed";
+            signal: "elm,state,cur,pushed,internal";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "pushed_finished";
+         }
+         program { name: "content_prev_popped";
+            signal: "elm,state,prev,popped,internal";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "show_finished";
+         }
+         program { name: "content_cur_popped";
+            signal: "elm,state,cur,popped,internal";
+            source: "";
+            action: STATE_SET "right" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "popped_finished";
+         }
+         program { name: "cur_pushed";
+            signal: "elm,state,cur,pushed";
+            source: "elm";
+            script {
+               set_state(PART:"base", "default", 0.0);
+               emit("elm,state,cur,pushed,internal", "");
+            }
+         }
+         program { name: "new_pushed";
+            signal: "elm,state,new,pushed";
+            source: "elm";
+            script {
+               set_state(PART:"base", "right", 0.0);
+               emit("elm,state,new,pushed,internal", "");
+            }
+         }
+         program { name: "prev_popped";
+            signal: "elm,state,prev,popped";
+            source: "elm";
+            script {
+               set_state(PART:"base", "default", 0.0);
+               emit("elm,state,prev,popped,internal", "");
+            }
+         }
+         program { name: "cur_popped";
+            signal: "elm,state,cur,popped";
+            source: "elm";
+            script {
+               set_state(PART:"base", "default", 0.0);
+               emit("elm,state,cur,popped,internal", "");
+            }
+         }
+         program { name: "visible";
+            signal: "elm,state,visible";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+         }
+         program { name: "show_finished";
+            action: SIGNAL_EMIT "elm,action,show,finished" "";
+         }
+         program { name: "pushed_finished";
+            action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+         }
+         program { name: "popped_finished";
+            action: SIGNAL_EMIT "elm,action,popped,finished" "";
+         }
+      }
+   }*/
 }