diff --git a/data/themes/default.edc b/data/themes/default.edc index 3992a8cc2..cf8b44191 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -36012,7 +36012,7 @@ collections { name: "clip"; mouse_events: 0; type: RECT; - clip_to: "base"; + /* clip_to: "base"; */ description { state: "default" 0.0; rel1.to: "base"; @@ -36129,6 +36129,85 @@ collections { color3: 20 20 20 40; } } + + part { + name: "over_clip"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 255; + rel1 { + relative: 0.0 0.0; + offset: 0 0; + } + rel2 { + relative: 1.0 1.0; + offset: -1 -1; + } + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + visible: 1; + } + description { + state: "hidden" 0.0; + inherit: "default" 0.0; + rel1.relative: -0.5 -0.5; + rel2.relative: 1.5 1.5; + color: 255 255 255 0; + visible: 1; + } + description { + state: "huge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 0; + rel1.relative: -1.5 -1.5; + rel2.relative: 2.5 2.5; + visible: 1; + } + } + + part { + name: "over"; + type: PROXY; + mouse_events: 0; + clip_to: "over_clip"; + description { + state: "default" 0.0; + source: "e.swallow.icon"; + rel1.to: "over_clip"; + rel2.to: "over_clip"; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "over2"; + type: PROXY; + mouse_events: 0; + clip_to: "over_clip"; + description { + state: "default" 0.0; + source: "e.swallow.thumb"; + rel1.to: "over_clip"; + rel2.to: "over_clip"; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "event"; type: RECT; @@ -36202,6 +36281,41 @@ collections { transition: DECELERATE 0.1; target: "clip"; } + program { + name: "go_big"; + action: STATE_SET "visible" 0.0; + target: "over_clip"; + target: "over"; + target: "over2"; + after: "go_big2"; + } + + program { + name: "go_big2"; + action: STATE_SET "huge" 0.0; + transition: DECELERATE 0.4; + target: "over_clip"; + after: "go_big3"; + } + + program { + name: "go_big3"; + action: STATE_SET "default" 0.0; + transition: DECELERATE 0.2; + target: "over_clip"; + target: "over"; + target: "over2"; + } + program { + name: "action_go"; + signal: "e,action,go"; + source: "e"; + action: ACTION_STOP; + target: "go_big"; + target: "go_big2"; + target: "go_big3"; + after: "go_big"; + } } } group { diff --git a/src/modules/everything/evry_view.c b/src/modules/everything/evry_view.c index d491fcf19..fb3a46f0c 100644 --- a/src/modules/everything/evry_view.c +++ b/src/modules/everything/evry_view.c @@ -89,6 +89,7 @@ _thumb_gen(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) e_icon_size_get(it->thumb, &w, &h); edje_extern_object_aspect_set(it->thumb, EDJE_ASPECT_CONTROL_BOTH, w, h); + edje_object_part_unswallow(it->frame, it->image); edje_object_part_swallow(it->frame, "e.swallow.thumb", it->thumb); evas_object_show(it->thumb); edje_object_signal_emit(it->frame, "e,action,thumb,show_delayed", "e"); @@ -1403,6 +1404,35 @@ _cb_item_changed(void *data, int type __UNUSED__, void *event) return ECORE_CALLBACK_PASS_ON; } +static Eina_Bool +_cb_action_performed(void *data, int type __UNUSED__, void *event) +{ + Evry_Event_Action_Performed *ev = event; + View *v = data; + Eina_List *l; + Item *it; + Smart_Data *sd; + + sd = evas_object_smart_data_get(v->span); + if (!sd) return ECORE_CALLBACK_PASS_ON; + + EINA_LIST_FOREACH(sd->items, l, it) + { + + if ((it->item == ev->it1) || + (it->item == ev->it2)) + break; + } + + if (it && it->visible) + { + evas_object_raise(it->frame); + edje_object_signal_emit(it->frame, "e,action,go", "e"); + } + + return ECORE_CALLBACK_PASS_ON; +} + static void _view_cb_mouse_wheel(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info) { @@ -1600,7 +1630,9 @@ _view_create(Evry_View *view, const Evry_State *s, const Evas_Object *swallow) h = evry_event_handler_add(EVRY_EVENT_ITEM_CHANGED, _cb_item_changed, v); v->handlers = eina_list_append(v->handlers, h); - + h = evry_event_handler_add(EVRY_EVENT_ACTION_PERFORMED, _cb_action_performed, v); + v->handlers = eina_list_append(v->handlers, h); + return EVRY_VIEW(v); }