naviframe: improve automatic previous button without breaking compatibility.

proper fix instead of r74428.



SVN revision: 74450
This commit is contained in:
Gustavo Sverzut Barbieri 2012-07-26 19:39:10 +00:00
parent de83b738fa
commit f97856f4e7
2 changed files with 21 additions and 188 deletions

View File

@ -1,5 +1,7 @@
group { name: "elm/button/base/default";
alias: "elm/button/base/popup_button/default";
alias: "elm/button/base/naviframe/back_btn/default";
images {
image: "bt_base1.png" COMP;
image: "bt_base2.png" COMP;
@ -1103,193 +1105,6 @@ group { name: "elm/button/base/anchor";
}
}
}
group { name: "elm/button/base/naviframe/back_btn/default";
images {
image: "bt_base1.png" COMP;
image: "bt_base2.png" COMP;
image: "bt_hilight.png" COMP;
image: "bt_shine.png" COMP;
image: "bt_glow.png" COMP;
image: "bt_dis_base.png" COMP;
image: "bt_dis_hilight.png" COMP;
image: "icon_left_arrow.png" COMP;
}
parts {
part { name: "button_image";
mouse_events: 1;
description { state: "default" 0.0;
min: 12 12;
image {
normal: "bt_base2.png";
border: 7 7 7 7;
}
image.middle: SOLID;
}
description { state: "clicked" 0.0;
inherit: "default" 0.0;
image.normal: "bt_base1.png";
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
image {
normal: "bt_dis_base.png";
border: 4 4 4 4;
}
}
}
part { name: "prev_image";
type: IMAGE;
scale: 1;
description { state: "default" 0.0;
min: 15 15;
max: 15 15;
fixed: 1 1;
align: 0.5 0.5;
image.normal: "icon_left_arrow.png";
}
}
part { name: "over1";
mouse_events: 0;
description { state: "default" 0.0;
rel2.relative: 1.0 0.5;
image {
normal: "bt_hilight.png";
border: 7 7 7 0;
}
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
image {
normal: "bt_dis_hilight.png";
border: 4 4 4 0;
}
}
}
part { name: "over2";
mouse_events: 1;
repeat_events: 1;
ignore_flags: ON_HOLD;
description { state: "default" 0.0;
image {
normal: "bt_shine.png";
border: 7 7 7 7;
}
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part { name: "over3";
mouse_events: 1;
repeat_events: 1;
description { state: "default" 0.0;
color: 255 255 255 0;
image {
normal: "bt_glow.png";
border: 12 12 12 12;
}
fill.smooth : 0;
}
description { state: "clicked" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255;
}
}
part { name: "disabler";
type: RECT;
description { state: "default" 0.0;
color: 0 0 0 0;
visible: 0;
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
visible: 1;
}
}
}
programs {
program {
name: "button_click";
signal: "mouse,down,1";
source: "over2";
action: SIGNAL_EMIT "elm,action,press" "";
after: "button_click_anim";
}
program {
name: "button_click_anim";
action: STATE_SET "clicked" 0.0;
target: "button_image";
}
program {
name: "button_unclick";
signal: "mouse,up,1";
source: "over3";
action: SIGNAL_EMIT "elm,action,unpress" "";
after: "button_unclick_anim";
}
program {
name: "button_pressed_anim";
signal: "elm,anim,activate";
source: "elm";
action: STATE_SET "clicked" 0.0;
target: "button_image";
target: "over3";
after: "button_unpressed_anim";
}
program {
name: "button_unpressed_anim";
action: STATE_SET "default" 0.0;
transition: DECELERATE 0.5;
target: "button_image";
target: "over3";
}
program {
name: "button_unclick_anim";
action: STATE_SET "default" 0.0;
target: "button_image";
}
program {
name: "button_click2";
signal: "mouse,down,1";
source: "over3";
action: STATE_SET "clicked" 0.0;
target: "over3";
}
program {
name: "button_unclick2";
signal: "mouse,up,1";
source: "over3";
action: STATE_SET "default" 0.0;
transition: DECELERATE 0.5;
target: "over3";
}
program {
name: "button_unclick3";
signal: "mouse,clicked,1";
source: "over2";
action: SIGNAL_EMIT "elm,action,click" "";
}
program { name: "disable";
signal: "elm,state,disabled";
source: "elm";
action: STATE_SET "disabled" 0.0;
target: "button_image";
target: "over1";
target: "over2";
target: "disabler";
}
program { name: "enable";
signal: "elm,state,enabled";
source: "elm";
action: STATE_SET "default" 0.0;
target: "button_image";
target: "over1";
target: "over2";
target: "disabler";
}
}
}
group { name: "elm/button/base/colorselector/left/default";
images {

View File

@ -632,7 +632,7 @@ _on_item_back_btn_clicked(void *data,
static Evas_Object *
_back_btn_new(Evas_Object *obj, const char *title_label)
{
Evas_Object *btn;
Evas_Object *btn, *ed;
char buf[1024];
btn = elm_button_add(obj);
@ -648,6 +648,24 @@ _back_btn_new(Evas_Object *obj, const char *title_label)
else
elm_object_domain_translatable_text_set(btn, PACKAGE, N_("Back"));
/* HACK NOTE: this explicit check only exists to avoid an ERR()
* message from elm_layout_content_set().
*
* The button was ALWAYS supposed to support an elm.swallow.content, but
* default naviframe/back_btn/default theme did not provide such, then
* old themes would emit such error message.
*
* Once we can break the theme API, remove this check and always
* set an icon.
*/
ed = elm_layout_edje_get(btn);
if (edje_object_part_exists(ed, "elm.swallow.content"))
{
Evas_Object *ico = elm_icon_add(btn);
elm_icon_standard_set(ico, "arrow_left");
elm_layout_content_set(btn, "elm.swallow.content", ico);
}
return btn;
}