Emit different signals when changing states forward or backward.
This is used to perform diferent animations when going forward or backward. By: Otavio Pontes <otavio@profusion.mobi> SVN revision: 54190
This commit is contained in:
parent
8538a6fe3f
commit
90d1ad6b4c
|
@ -10437,6 +10437,16 @@ collections {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
program { name: "label_set,animation,forward";
|
||||||
|
signal: "elm,state,label_set,forward";
|
||||||
|
source: "elm";
|
||||||
|
after: "label_set,animation";
|
||||||
|
}
|
||||||
|
program { name: "label_set,animation,backward";
|
||||||
|
signal: "elm,state,label_set,backward";
|
||||||
|
source: "elm";
|
||||||
|
after: "label_set,animation";
|
||||||
|
}
|
||||||
program { name: "label_set,animation";
|
program { name: "label_set,animation";
|
||||||
signal: "elm,state,label_set";
|
signal: "elm,state,label_set";
|
||||||
source: "elm";
|
source: "elm";
|
||||||
|
@ -10456,6 +10466,16 @@ collections {
|
||||||
target: "elm.text.clipper";
|
target: "elm.text.clipper";
|
||||||
target: "elm.text_new.clipper";
|
target: "elm.text_new.clipper";
|
||||||
}
|
}
|
||||||
|
program { name: "icon_set,animation,forward";
|
||||||
|
signal: "elm,state,icon_set,forward";
|
||||||
|
source: "elm";
|
||||||
|
after: "icon_set,animation";
|
||||||
|
}
|
||||||
|
program { name: "icon_set,animation,backward";
|
||||||
|
signal: "elm,state,icon_set,backward";
|
||||||
|
source: "elm";
|
||||||
|
after: "icon_set,animation";
|
||||||
|
}
|
||||||
program { name: "icon_set,animation";
|
program { name: "icon_set,animation";
|
||||||
signal: "elm,state,icon_set";
|
signal: "elm,state,icon_set";
|
||||||
source: "elm";
|
source: "elm";
|
||||||
|
|
|
@ -69,7 +69,8 @@ static void _resize(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||||
static void _menu_move_resize(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
static void _menu_move_resize(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||||
static void _menu_hide(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
static void _menu_hide(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||||
static void _layout(Evas_Object *o, Evas_Object_Box_Data *priv, void *data);
|
static void _layout(Evas_Object *o, Evas_Object_Box_Data *priv, void *data);
|
||||||
static void _elm_toolbar_item_icon_obj_set(Evas_Object *obj, Elm_Toolbar_Item *item, Evas_Object *icon_obj, const char *icon_str, double icon_size);
|
static void _elm_toolbar_item_icon_obj_set(Evas_Object *obj, Elm_Toolbar_Item *item, Evas_Object *icon_obj, const char *icon_str, double icon_size, const char *signal);
|
||||||
|
static void _item_label_set(Elm_Toolbar_Item *item, const char *label, const char *signal);
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_item_icon_set(Evas_Object *icon_obj, const char *type, const char *icon)
|
_item_icon_set(Evas_Object *icon_obj, const char *type, const char *icon)
|
||||||
|
@ -839,11 +840,21 @@ elm_toolbar_item_state_set(Elm_Toolbar_Item *it, Elm_Toolbar_Item_State *state)
|
||||||
|
|
||||||
if (next_state == it->current_state) return EINA_TRUE;
|
if (next_state == it->current_state) return EINA_TRUE;
|
||||||
|
|
||||||
|
it_state = eina_list_data_get(next_state);
|
||||||
|
if (eina_list_data_find(it->current_state, state))
|
||||||
|
{
|
||||||
|
_item_label_set(it, it_state->label, "elm,state,label_set,forward");
|
||||||
|
_elm_toolbar_item_icon_obj_set(obj, it, it_state->icon, it_state->icon_str,
|
||||||
|
wd->icon_size, "elm,state,icon_set,forward");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_item_label_set(it, it_state->label, "elm,state,label_set,backward");
|
||||||
|
_elm_toolbar_item_icon_obj_set(obj, it, it_state->icon, it_state->icon_str,
|
||||||
|
wd->icon_size, "elm,state,icon_set,backward");
|
||||||
|
}
|
||||||
|
|
||||||
it->current_state = next_state;
|
it->current_state = next_state;
|
||||||
it_state = eina_list_data_get(it->current_state);
|
|
||||||
elm_toolbar_item_label_set(it, it_state->label);
|
|
||||||
_elm_toolbar_item_icon_obj_set(obj, it, it_state->icon, it_state->icon_str,
|
|
||||||
wd->icon_size);
|
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1266,16 +1277,8 @@ _elm_toolbar_item_label_set_cb (void *data, Evas_Object *obj, const char *emissi
|
||||||
edje_object_signal_emit (item->base.view, "elm,state,label,reset", "elm");
|
edje_object_signal_emit (item->base.view, "elm,state,label,reset", "elm");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
static void
|
||||||
* Set the label associated with @p item.
|
_item_label_set(Elm_Toolbar_Item *item, const char *label, const char *signal)
|
||||||
*
|
|
||||||
* @param item The toolbar item
|
|
||||||
* @param label The label of @p item
|
|
||||||
*
|
|
||||||
* @ingroup Toolbar
|
|
||||||
*/
|
|
||||||
EAPI void
|
|
||||||
elm_toolbar_item_label_set(Elm_Toolbar_Item *item, const char *label)
|
|
||||||
{
|
{
|
||||||
const char *s;
|
const char *s;
|
||||||
|
|
||||||
|
@ -1287,7 +1290,7 @@ elm_toolbar_item_label_set(Elm_Toolbar_Item *item, const char *label)
|
||||||
if ((s) && (atoi(s)))
|
if ((s) && (atoi(s)))
|
||||||
{
|
{
|
||||||
edje_object_part_text_set(item->base.view, "elm.text_new", item->label);
|
edje_object_part_text_set(item->base.view, "elm.text_new", item->label);
|
||||||
edje_object_signal_emit (item->base.view, "elm,state,label_set", "elm");
|
edje_object_signal_emit (item->base.view, signal, "elm");
|
||||||
edje_object_signal_callback_add(item->base.view,
|
edje_object_signal_callback_add(item->base.view,
|
||||||
"elm,state,label_set,done", "elm",
|
"elm,state,label_set,done", "elm",
|
||||||
_elm_toolbar_item_label_set_cb, item);
|
_elm_toolbar_item_label_set_cb, item);
|
||||||
|
@ -1296,6 +1299,20 @@ elm_toolbar_item_label_set(Elm_Toolbar_Item *item, const char *label)
|
||||||
_elm_toolbar_item_label_update(item);
|
_elm_toolbar_item_label_update(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the label associated with @p item.
|
||||||
|
*
|
||||||
|
* @param item The toolbar item
|
||||||
|
* @param label The label of @p item
|
||||||
|
*
|
||||||
|
* @ingroup Toolbar
|
||||||
|
*/
|
||||||
|
EAPI void
|
||||||
|
elm_toolbar_item_label_set(Elm_Toolbar_Item *item, const char *label)
|
||||||
|
{
|
||||||
|
_item_label_set(item, label, "elm,state,label_set");
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elm_toolbar_item_icon_update(Elm_Toolbar_Item *item)
|
_elm_toolbar_item_icon_update(Elm_Toolbar_Item *item)
|
||||||
{
|
{
|
||||||
|
@ -1393,7 +1410,7 @@ _elm_toolbar_item_icon_set_cb (void *data, Evas_Object *obj, const char *emissio
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elm_toolbar_item_icon_obj_set(Evas_Object *obj, Elm_Toolbar_Item *item, Evas_Object *icon_obj, const char *icon_str, double icon_size)
|
_elm_toolbar_item_icon_obj_set(Evas_Object *obj, Elm_Toolbar_Item *item, Evas_Object *icon_obj, const char *icon_str, double icon_size, const char *signal)
|
||||||
{
|
{
|
||||||
Evas_Object *old_icon;
|
Evas_Object *old_icon;
|
||||||
int ms = 0;
|
int ms = 0;
|
||||||
|
@ -1427,7 +1444,7 @@ _elm_toolbar_item_icon_obj_set(Evas_Object *obj, Elm_Toolbar_Item *item, Evas_Ob
|
||||||
}
|
}
|
||||||
edje_object_part_swallow(item->base.view, "elm.swallow.icon_new",
|
edje_object_part_swallow(item->base.view, "elm.swallow.icon_new",
|
||||||
item->icon);
|
item->icon);
|
||||||
edje_object_signal_emit (item->base.view, "elm,state,icon_set", "elm");
|
edje_object_signal_emit (item->base.view, signal, "elm");
|
||||||
edje_object_signal_callback_add(item->base.view,
|
edje_object_signal_callback_add(item->base.view,
|
||||||
"elm,state,icon_set,done", "elm",
|
"elm,state,icon_set,done", "elm",
|
||||||
_elm_toolbar_item_icon_set_cb, item);
|
_elm_toolbar_item_icon_set_cb, item);
|
||||||
|
@ -1460,10 +1477,12 @@ elm_toolbar_item_icon_set(Elm_Toolbar_Item *item, const char *icon)
|
||||||
icon_obj = elm_icon_add(obj);
|
icon_obj = elm_icon_add(obj);
|
||||||
if (!icon_obj) return;
|
if (!icon_obj) return;
|
||||||
if (_item_icon_set(icon_obj, "toolbar/", icon))
|
if (_item_icon_set(icon_obj, "toolbar/", icon))
|
||||||
_elm_toolbar_item_icon_obj_set(obj, item, icon_obj, icon, wd->icon_size);
|
_elm_toolbar_item_icon_obj_set(obj, item, icon_obj, icon, wd->icon_size,
|
||||||
|
"elm,state,icon_set");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_elm_toolbar_item_icon_obj_set(obj, item, NULL, NULL, 0);
|
_elm_toolbar_item_icon_obj_set(obj, item, NULL, NULL, 0,
|
||||||
|
"elm,state,icon_set");
|
||||||
evas_object_del(icon_obj);
|
evas_object_del(icon_obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue