group { name: "elm/menu/item/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; } script { public menu_text_visible; //0:hide (default), 1:visible public menu_disable; //0:enable, 1:disable } parts { part { name: "item_image"; mouse_events: 1; description { state: "default" 0.0; color: 255 255 255 0; image { normal: "bt_base2.png"; border: 7 7 7 7; } image.middle: SOLID; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } description { state: "clicked" 0.0; inherit: "default" 0.0; inherit: "visible" 0.0; image.normal: "bt_base1.png"; image.middle: SOLID; } description { state: "disabled" 0.0; inherit: "default" 0.0; } } part { name: "item_image_disabled"; mouse_events: 1; description { state: "default" 0.0; color: 255 255 255 0; image { normal: "bt_dis_base.png"; border: 4 4 4 4; } image.middle: SOLID; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "elm.swallow.content"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 0; visible: 1; align: 0.0 0.5; rel1.offset: 4 4; rel2.offset: 3 -5; rel2.relative: 0.0 1.0; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel2.offset: 4 -5; } } part { name: "elm.text"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; visible: 0; rel1.to_x: "elm.swallow.content"; rel1.relative: 1.0 0.0; rel1.offset: 5 7; rel2.offset: -10 -8; color: 0 0 0 255; text { font: "Sans,Edje-Vera"; size: 10; min: 1 1; align: 0.0 0.5; text_class: "menu_item"; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; text.min: 1 1; } description { state: "selected" 0.0; inherit: "default" 0.0; inherit: "visible" 0.0; color: 254 254 254 255; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 0 0 0 128; } description { state: "disabled_visible" 0.0; inherit: "default" 0.0; inherit: "visible" 0.0; color: 0 0 0 128; } } part { name: "over1"; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; rel2.relative: 1.0 0.5; image { normal: "bt_hilight.png"; border: 7 7 7 0; } } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } description { state: "disabled" 0.0; inherit: "default" 0.0; } } part { name: "over_disabled"; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; rel2.relative: 1.0 0.5; image { normal: "bt_dis_hilight.png"; border: 4 4 4 0; } } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } 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; visible: 1; 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: "item_mouse_in"; signal: "mouse,in"; source: "over2"; action: SIGNAL_EMIT "elm,action,activate" ""; after: "item_mouse_in_2"; after: "item_mouse_in_3"; } program { name: "item_mouse_in_2"; transition: DECELERATE 0.5; script { new v, d; v = get_int(menu_text_visible); d = get_int(menu_disable); if (v==1 && d==0) run_program(PROGRAM:"selected_text"); } } program { name: "item_mouse_in_3"; action : STATE_SET "visible" 0.0; target: "item_image"; target: "over1"; transition: DECELERATE 0.5; } program { name: "selected_text"; action: STATE_SET "selected" 0.0; target: "elm.text"; transition: DECELERATE 0.5; } // // program { name: "item_mouse_out"; signal: "mouse,out"; source: "over2"; action: SIGNAL_EMIT "elm,action,inactivate" ""; after: "item_mouse_out_2"; after: "item_mouse_out_3"; } program { name: "item_mouse_out_2"; transition: DECELERATE 0.5; script { new v, d; v = get_int(menu_text_visible); d = get_int(menu_disable); if (v==1 && d==0) run_program(PROGRAM:"visible_text"); } } program { name: "item_mouse_out_3"; action: STATE_SET "default" 0.0; target: "item_image"; target: "over1"; transition: DECELERATE 0.5; } program { name: "visible_text"; action: STATE_SET "visible" 0.0; target: "elm.text"; transition: DECELERATE 0.5; } // program { name: "item_unclick"; signal: "mouse,up,1"; source: "over2"; action: STATE_SET "visible" 0.0; target: "item_image"; } program { name: "item_click2"; signal: "mouse,down,1"; source: "over3"; action: STATE_SET "clicked" 0.0; target: "over3"; } program { name: "item_unclick2"; signal: "mouse,up,1"; source: "over3"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "over3"; } program { name: "item_unclick3"; signal: "mouse,up,1"; source: "over2"; action: SIGNAL_EMIT "elm,action,click" ""; } program { name: "text_show"; signal: "elm,state,text,visible"; source: "elm"; script { set_int(menu_text_visible, 1); set_state(PART:"elm.text", "visible", 0.0); } } program { name: "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; script { set_int(menu_text_visible, 0); set_state(PART:"elm.text", "default", 0.0); } } program { name: "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "item_image"; target: "item_image_disabled"; target: "over1"; target: "over2"; target: "over_disabled"; target: "disabler"; after: "disable_text"; } program { name: "disable_text"; script { new v; v = get_int(menu_text_visible); if (v==1) set_state(PART:"elm.text", "disabled_visible", 0.0); else if (v==0) set_state(PART:"elm.text", "disabled", 0.0); set_int(menu_disable, 1); } } program { name: "item_select"; signal: "elm,state,selected"; source: "elm"; after: "item_mouse_in_2"; after: "item_mouse_in_3"; } program { name: "item_unselect"; signal: "elm,state,unselected"; source: "elm"; after: "item_mouse_out_2"; after: "item_mouse_out_3"; } program { name: "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "item_image"; target: "item_image_disabled"; target: "over1"; target: "over2"; target: "over_disabled"; target: "disabler"; after: "enable_text"; } program { name: "enable_text"; script { new v; v = get_int(menu_text_visible); if (v==1) set_state(PART:"elm.text", "visible", 0.0); else if (v==0) set_state(PART:"elm.text", "default", 0.0); set_int(menu_disable, 0); } } } } group { name: "elm/menu/item_with_submenu/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: "arrow_right.png" COMP; image: "arrow_left.png" COMP; } script { public menu_text_visible; //0:hide (default), 1:visible public menu_disable; //0:enable, 1:disable } parts { part { name: "item_image"; mouse_events: 1; description { state: "default" 0.0; color: 255 255 255 0; image { normal: "bt_base2.png"; border: 7 7 7 7; } image.middle: SOLID; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } description { state: "clicked" 0.0; inherit: "default" 0.0; inherit: "visible" 0.0; image.normal: "bt_base1.png"; image.middle: SOLID; } description { state: "disabled" 0.0; inherit: "default" 0.0; } } part { name: "item_image_disabled"; mouse_events: 1; description { state: "default" 0.0; color: 255 255 255 0; image { normal: "bt_dis_base.png"; border: 4 4 4 4; } image.middle: SOLID; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } part { name: "arrow"; mouse_events: 1; description { state: "default" 0.0; color: 255 255 255 255; align: 1.0 0.5; aspect: 1 1; aspect_preference: BOTH; image { normal: "arrow_right.png"; } } description { state: "rtl" 0.0; inherit: "default" 0.0; image.normal: "arrow_left.png"; } } part { name: "elm.swallow.content"; type: SWALLOW; description { state: "default" 0.0; fixed: 1 0; visible: 1; align: 0.0 0.5; rel1.offset: 4 4; rel2.offset: 3 -5; rel2.relative: 0.0 1.0; aspect: 1.0 1.0; aspect_preference: VERTICAL; rel2.offset: 4 -5; } } part { name: "elm.text"; type: TEXT; mouse_events: 0; scale: 1; description { state: "default" 0.0; visible: 0; rel1.to_x: "elm.swallow.content"; rel1.relative: 1.0 0.0; rel1.offset: 5 7; rel2.to_x: "arrow"; rel2.relative: 0.0 1.0; rel2.offset: -10 -8; color: 0 0 0 255; text { font: "Sans,Edje-Vera"; size: 10; min: 1 1; align: 0.0 0.5; text_class: "menu_item"; } } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; text.min: 1 1; } description { state: "selected" 0.0; inherit: "default" 0.0; inherit: "visible" 0.0; color: 254 254 254 255; } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 0 0 0 128; } description { state: "disabled_visible" 0.0; inherit: "default" 0.0; inherit: "visible" 0.0; color: 0 0 0 128; } } part { name: "over1"; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; rel2.relative: 1.0 0.5; image { normal: "bt_hilight.png"; border: 7 7 7 0; } } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } description { state: "disabled" 0.0; inherit: "default" 0.0; } } part { name: "over_disabled"; mouse_events: 0; description { state: "default" 0.0; color: 255 255 255 0; rel2.relative: 1.0 0.5; image { normal: "bt_dis_hilight.png"; border: 4 4 4 0; } } description { state: "disabled" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } 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; visible: 1; 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: "item_mouse_in"; signal: "mouse,in"; source: "over2"; action: SIGNAL_EMIT "elm,action,activate" ""; after: "item_mouse_in_2"; after: "item_mouse_in_3"; } program { name: "item_mouse_in_2"; transition: DECELERATE 0.5; script { new v, d; v = get_int(menu_text_visible); d = get_int(menu_disable); if (v==1 && d==0) run_program(PROGRAM:"selected_text"); } } program { name: "item_mouse_in_3"; action : STATE_SET "visible" 0.0; target: "item_image"; target: "over1"; transition: DECELERATE 0.5; } program { name: "selected_text"; action: STATE_SET "selected" 0.0; target: "elm.text"; transition: DECELERATE 0.5; } // // program { name: "item_mouse_out"; signal: "mouse,out"; source: "over2"; after: "item_mouse_out_2"; after: "item_mouse_out_3"; } program { name: "item_mouse_out_2"; transition: DECELERATE 0.5; script { new v, d; v = get_int(menu_text_visible); d = get_int(menu_disable); if (v==1 && d==0) run_program(PROGRAM:"visible_text"); } } program { name: "item_mouse_out_3"; action: STATE_SET "default" 0.0; target: "item_image"; target: "over1"; transition: DECELERATE 0.5; } program { name: "visible_text"; action: STATE_SET "visible" 0.0; target: "elm.text"; transition: DECELERATE 0.5; } // program { name: "item_unclick"; signal: "mouse,up,1"; source: "over2"; action: STATE_SET "visible" 0.0; target: "item_image"; } program { name: "item_click2"; signal: "mouse,down,1"; source: "over3"; action: STATE_SET "clicked" 0.0; target: "over3"; } program { name: "item_unclick2"; signal: "mouse,up,1"; source: "over3"; action: STATE_SET "default" 0.0; transition: DECELERATE 0.5; target: "over3"; } program { name: "item_unclick3"; signal: "mouse,up,1"; source: "over2"; action: SIGNAL_EMIT "elm,action,click" ""; } program { name: "menu_open"; signal: "mouse,in"; source: "over2"; action: SIGNAL_EMIT "elm,action,open" ""; } program { name: "text_show"; signal: "elm,state,text,visible"; source: "elm"; script { set_int(menu_text_visible, 1); set_state(PART:"elm.text", "visible", 0.0); } } program { name: "text_hide"; signal: "elm,state,text,hidden"; source: "elm"; script { set_int(menu_text_visible, 0); set_state(PART:"elm.text", "default", 0.0); } } program { name: "disable"; signal: "elm,state,disabled"; source: "elm"; action: STATE_SET "disabled" 0.0; target: "item_image"; target: "item_image_disabled"; target: "over1"; target: "over2"; target: "over_disabled"; target: "disabler"; after: "disable_text"; } program { name: "disable_text"; script { new st[31]; new Float:vl; get_state(PART:"elm.text", st, 30, vl); if (!strcmp(st, "visible")) set_state(PART:"elm.text", "disabled_visible", 0.0); else if (!strcmp(st, "default")) set_state(PART:"elm.text", "disabled", 0.0); } } program { name: "enable"; signal: "elm,state,enabled"; source: "elm"; action: STATE_SET "default" 0.0; target: "item_image"; target: "item_image_disabled"; target: "over1"; target: "over2"; target: "over_disabled"; target: "disabler"; after: "enable_text"; } program { name: "enable_text"; script { new v; v = get_int(menu_text_visible); if (v==1) set_state(PART:"elm.text", "visible", 0.0); else if (v==0) set_state(PART:"elm.text", "default", 0.0); set_int(menu_disable, 0); } } program { name: "to_rtl"; signal: "edje,state,rtl"; source: "edje"; action: STATE_SET "rtl" 0.0; target: "arrow"; } program { name: "to_ltr"; signal: "edje,state,ltr"; source: "edje"; action: STATE_SET "default" 0.0; target: "arrow"; } } } group { name: "elm/menu/separator/default"; images { image: "separator_h.png" COMP; } parts { part { name: "separator"; // separator group description { state: "default" 0.0; min: 2 2; rel1.offset: 4 4; rel2.offset: -5 -5; image { normal: "separator_h.png"; } fill { smooth: 0; } } } } }