diff --git a/legacy/elementary/data/themes/widgets/button.edc b/legacy/elementary/data/themes/widgets/button.edc index fde4d20814..ca432460c5 100644 --- a/legacy/elementary/data/themes/widgets/button.edc +++ b/legacy/elementary/data/themes/widgets/button.edc @@ -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 { diff --git a/legacy/elementary/src/lib/elc_naviframe.c b/legacy/elementary/src/lib/elc_naviframe.c index f9113d2bec..6a4f866bf1 100644 --- a/legacy/elementary/src/lib/elc_naviframe.c +++ b/legacy/elementary/src/lib/elc_naviframe.c @@ -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; }