forked from enlightenment/efl
notify: Add hide effect to notify.
As specified in task T149, the notify has show effect but does not have hide effect. This patch adds hide effect to notify.
This commit is contained in:
parent
c5b0d63838
commit
9b36fb6055
|
@ -1511,6 +1511,7 @@
|
|||
not entry. This prevents the asynchronous states between ime and
|
||||
conformant.
|
||||
|
||||
<<<<<<< HEAD
|
||||
2013-07-23 ChunEon Park (Hermet)
|
||||
|
||||
* File Selector : Support elm_object_part_text_set() for the ok, cancel
|
||||
|
@ -1562,3 +1563,7 @@
|
|||
2013-08-19 ChunEon Park (Hermet)
|
||||
|
||||
* Popup: Support "language,changed" smart callback.
|
||||
|
||||
2013-08-22 Thiep Ha
|
||||
|
||||
* Add hide effect for notify.
|
||||
|
|
|
@ -127,6 +127,7 @@ Improvements:
|
|||
* Change the method to calculate a distance which be scrolled from linear to sine curve.
|
||||
* Add support for URL in Elm_Image and Elm_Photocam.
|
||||
* Popup: Support "language,changed" smart callback.
|
||||
* Add hide effect for notify.
|
||||
|
||||
Fixes:
|
||||
* Now elm_datetime_field_limit_set() can set year limits wihtout problems.
|
||||
|
|
|
@ -19,6 +19,7 @@ group { name: "elm/notify/block_events/default";
|
|||
}
|
||||
group { name: "elm/notify/top/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "shad_circ.png" COMP;
|
||||
image: "bt_dis_base.png" COMP;
|
||||
|
@ -96,14 +97,21 @@ group { name: "elm/notify/top/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "elm/notify/center/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "bt_dis_base.png" COMP;
|
||||
}
|
||||
|
@ -145,10 +153,14 @@ group { name: "elm/notify/center/default";
|
|||
type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
color: 0 0 0 0 ;
|
||||
rel1.relative: 0.0 -1.0;
|
||||
rel2.relative: 1.0 0.0;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color: 255 255 255 255;
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -160,15 +172,22 @@ group { name: "elm/notify/center/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "clipper";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "elm/notify/bottom/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "shad_circ.png" COMP;
|
||||
image: "bt_dis_base.png" COMP;
|
||||
|
@ -246,14 +265,21 @@ group { name: "elm/notify/bottom/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "elm/notify/left/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "shad_circ.png" COMP;
|
||||
image: "bt_dis_base.png" COMP;
|
||||
|
@ -331,14 +357,21 @@ group { name: "elm/notify/left/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "elm/notify/right/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "shad_circ.png" COMP;
|
||||
image: "bt_dis_base.png" COMP;
|
||||
|
@ -416,14 +449,21 @@ group { name: "elm/notify/right/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "elm/notify/top_left/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "shad_circ.png" COMP;
|
||||
image: "bt_dis_base.png" COMP;
|
||||
|
@ -501,14 +541,21 @@ group { name: "elm/notify/top_left/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "elm/notify/top_right/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "shad_circ.png" COMP;
|
||||
image: "bt_dis_base.png" COMP;
|
||||
|
@ -586,14 +633,21 @@ group { name: "elm/notify/top_right/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "elm/notify/bottom_left/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "shad_circ.png" COMP;
|
||||
image: "bt_dis_base.png" COMP;
|
||||
|
@ -671,14 +725,21 @@ group { name: "elm/notify/bottom_left/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
group { name: "elm/notify/bottom_right/default";
|
||||
//this group is a design similar to the inwin group
|
||||
data.item: "emit_hide_finished_signal" "yes";
|
||||
images {
|
||||
image: "shad_circ.png" COMP;
|
||||
image: "bt_dis_base.png" COMP;
|
||||
|
@ -756,9 +817,15 @@ group { name: "elm/notify/bottom_right/default";
|
|||
transition: LINEAR 0.5;
|
||||
}
|
||||
program { name: "hide";
|
||||
signal: "hide";
|
||||
signal: "elm,state,hide";
|
||||
source: "elm";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
transition: LINEAR 0.5;
|
||||
after: "hide_finished";
|
||||
}
|
||||
program { name: "hide_finished";
|
||||
action: SIGNAL_EMIT "elm,action,hide,finished" "elm";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -241,6 +241,7 @@ _elm_notify_smart_move(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
|
|||
static Eina_Bool
|
||||
_timer_cb(void *data)
|
||||
{
|
||||
const char *hide_signal;
|
||||
Evas_Object *obj = data;
|
||||
|
||||
ELM_NOTIFY_DATA_GET(obj, sd);
|
||||
|
@ -248,7 +249,16 @@ _timer_cb(void *data)
|
|||
sd->timer = NULL;
|
||||
if (!evas_object_visible_get(obj)) goto end;
|
||||
|
||||
hide_signal = edje_object_data_get(sd->notify, "emit_hide_finished_signal");
|
||||
if ((hide_signal) && (!strcmp(hide_signal, "yes")))
|
||||
{
|
||||
sd->in_timeout = EINA_TRUE;
|
||||
edje_object_signal_emit(sd->notify, "elm,state,hide", "elm");
|
||||
}
|
||||
else //for backport supporting: edc without emitting hide finished signal
|
||||
{
|
||||
evas_object_hide(obj);
|
||||
}
|
||||
evas_object_smart_callback_call(obj, SIG_TIMEOUT, NULL);
|
||||
|
||||
end:
|
||||
|
@ -271,6 +281,8 @@ _elm_notify_smart_show(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
{
|
||||
Elm_Notify_Smart_Data *sd = _pd;
|
||||
|
||||
sd->had_hidden = EINA_FALSE;
|
||||
sd->in_timeout = EINA_FALSE;
|
||||
eo_do_super(obj, MY_CLASS, evas_obj_smart_show());
|
||||
|
||||
evas_object_show(sd->notify);
|
||||
|
@ -282,12 +294,24 @@ _elm_notify_smart_show(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
static void
|
||||
_elm_notify_smart_hide(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
||||
{
|
||||
const char *hide_signal;
|
||||
Elm_Notify_Smart_Data *sd = _pd;
|
||||
|
||||
if (sd->had_hidden && !sd->in_timeout)
|
||||
return;
|
||||
eo_do_super(obj, MY_CLASS, evas_obj_smart_hide());
|
||||
|
||||
hide_signal = edje_object_data_get(sd->notify, "emit_hide_finished_signal");
|
||||
if ((hide_signal) && (!strcmp(hide_signal, "yes")))
|
||||
{
|
||||
if (!sd->in_timeout)
|
||||
edje_object_signal_emit(sd->notify, "elm,state,hide", "elm");
|
||||
}
|
||||
else //for backport supporting: edc without emitting hide finished signal
|
||||
{
|
||||
evas_object_hide(sd->notify);
|
||||
if (!sd->allow_events) evas_object_hide(sd->block_events);
|
||||
if (sd->allow_events) evas_object_hide(sd->block_events);
|
||||
}
|
||||
ELM_SAFE_FREE(sd->timer, ecore_timer_del);
|
||||
}
|
||||
|
||||
|
@ -433,6 +457,18 @@ _elm_notify_smart_content_unset(Eo *obj, void *_pd, va_list *list)
|
|||
if (ret) *ret = content;
|
||||
}
|
||||
|
||||
static void
|
||||
_hide_finished_cb(void *data,
|
||||
Evas_Object *obj __UNUSED__,
|
||||
const char *emission __UNUSED__,
|
||||
const char *source __UNUSED__)
|
||||
{
|
||||
ELM_NOTIFY_DATA_GET(data, sd);
|
||||
sd->had_hidden = EINA_TRUE;
|
||||
evas_object_hide(sd->notify);
|
||||
if (!sd->allow_events) evas_object_hide(sd->block_events);
|
||||
}
|
||||
|
||||
static void
|
||||
_elm_notify_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
||||
{
|
||||
|
@ -448,6 +484,8 @@ _elm_notify_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
|
||||
evas_object_event_callback_add
|
||||
(obj, EVAS_CALLBACK_RESTACK, _restack_cb, obj);
|
||||
edje_object_signal_callback_add
|
||||
(priv->notify, "elm,action,hide,finished", "elm", _hide_finished_cb, obj);
|
||||
|
||||
elm_widget_can_focus_set(obj, EINA_FALSE);
|
||||
elm_notify_align_set(obj, 0.5, 0.0);
|
||||
|
@ -458,6 +496,8 @@ _elm_notify_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
|
|||
{
|
||||
Elm_Notify_Smart_Data *sd = _pd;
|
||||
|
||||
edje_object_signal_callback_del_full
|
||||
(sd->notify, "elm,action,hide,finished", "elm", _hide_finished_cb, obj);
|
||||
elm_notify_parent_set(obj, NULL);
|
||||
elm_notify_allow_events_set(obj, EINA_FALSE);
|
||||
if (sd->timer) ecore_timer_del(sd->timer);
|
||||
|
|
|
@ -28,6 +28,8 @@ struct _Elm_Notify_Smart_Data
|
|||
Ecore_Timer *timer;
|
||||
|
||||
Eina_Bool allow_events : 1;
|
||||
Eina_Bool had_hidden : 1;
|
||||
Eina_Bool in_timeout : 1;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue