group { name: "e/modules/start/main"; alias: "e/gadget/start/main"; parts { part { name: "arrow_base"; type: RECT; description { state: "default" 0.0; color: 255 255 255 255; } description { state: "active" 0.0; inherit: "default" 0.0; color: 255 255 255 64; } } part { name: "arrow"; clip_to: "arrow_base"; description { state: "default" 0.0; image.normal: "i-arrow-u"; color: 160 160 160 255; rel1.relative: (5/40) (5/40); rel2.relative: (35/40) (35/40); } description { state: "down" 0.0; inherit: "default" 0.0; image.normal: "i-arrow-d"; } description { state: "left" 0.0; inherit: "default" 0.0; image.normal: "i-arrow-l"; } description { state: "right" 0.0; inherit: "default" 0.0; image.normal: "i-arrow-r"; } } part { name: "events"; type: RECT; description { state: "default" 0.0; color: 0 0 0 0; } } } programs { program { signal: "e,state,focused"; source: "e"; action: STATE_SET "active" 0.0; target: "arrow_base"; } program { signal: "e,state,unfocused"; source: "e"; action: STATE_SET "default" 0.0; target: "arrow_base"; } #define ORIENT_SATE(_ORIENT, _STATE) \ program { \ signal: "e,state,orientation,"_ORIENT; source: "e"; \ action: STATE_SET _STATE 0.0; \ target: "arrow"; \ } ORIENT_SATE("top", "down") ORIENT_SATE("top_left", "down") ORIENT_SATE("top_right", "down") ORIENT_SATE("bottom", "default") ORIENT_SATE("bottom_left", "default") ORIENT_SATE("bottom_right", "default") ORIENT_SATE("left", "right") ORIENT_SATE("left_top", "right") ORIENT_SATE("left_bottom", "right") ORIENT_SATE("right", "left") ORIENT_SATE("right_top", "left") ORIENT_SATE("right_bottom", "left") #undef ORIENT_SATE } }