group { name: "efl/pointer"; images { image: "pointer.png" COMP; image: "pointer_glow.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; aspect: 1.0 1.0; min: 32 32; /* force a specific aspect ratio so * when it gets scaled it wont squash * or stretch */ aspect_preference: BOTH; /* both axes control aspect - thus it * will be WITHIN the bounds the axes * of thre part describe */ image { normal: "pointer.png"; } } } part { name: "glow"; description { state: "default" 0.0; image.normal: "pointer_glow.png"; color: 255 255 255 0; } description { state: "visible" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } description { state: "faded" 0.0; inherit: "default" 0.0; color: 255 255 255 128; } } part { name: "elm.swallow.hotspot"; /* this is a "fake" swallow part * that is used by e to determine * the pointer hotspot - or where * the actual mouse events get * reported from on the cursor */ type: SWALLOW; description { state: "default" 0.0; visible: 0; fixed: 1 1; rel1 { /* the hotspot will scale with the cursor here */ to: "base"; relative: 0.1875 0.1875; offset: 0 0; } rel2 { to: "base"; relative: 0.1875 0.1875; offset: 0 0; } } } } programs { program { signal: "action,mouse,down"; source: "efl"; action: STATE_SET "visible" 0.0; target: "glow"; after: "fade"; } program { name: "fade"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.5; target: "glow"; } program { name: "pulse"; signal: "e,state,mouse,idle"; source: "e"; in: 10.0 0.0; action: STATE_SET "faded" 0.0; transition: SINUSOIDAL 0.25; target: "glow"; after: "pulse2"; } program { name: "pulse2"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.5; target: "glow"; after: "pulse"; } program { signal: "action,mouse,move"; source: "efl"; action: STATE_SET "default" 0.0; target: "glow"; after: "stop2"; } program { name: "stop2"; action: ACTION_STOP; target: "pulse"; target: "pulse2"; } } } group { name: "efl/pointer:bottom_right_corner"; inherit: "efl/pointer"; images.image: "mini_box_glow.png" COMP; parts { part { name: "box"; insert_after: "glow"; description { state: "default" 0.0; image.normal: "mini_box_glow.png"; image.border: 7 7 7 7; rel1.relative: 0.3 0.3; rel2.relative: 0.7 0.7; } description { state: "p1" 0.0; inherit: "default" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 1.0 1.0; } } } programs { program { name: "box1"; signal: "load"; source: ""; action: STATE_SET "p1" 0.0; transition: SINUSOIDAL 0.5; target: "box"; after: "box2"; } program { name: "box2"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.5; target: "box"; after: "box1"; } } } group { name: "efl/pointer:bottom_left_corner"; inherit: "efl/pointer:bottom_right_corner"; parts { part { name: "box"; description { state: "default" 0.0; rel1.relative: 0.7 0.3; rel2.relative: 1.0 0.7; } description { state: "p1" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 1.0 1.0; } } } } group { name: "efl/pointer:bottom_side"; inherit: "efl/pointer:bottom_right_corner"; parts { part { name: "box"; description { state: "default" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 1.0 0.7; } description { state: "p1" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 1.0 1.0; } } } } group { name: "efl/pointer:top_right_corner"; inherit: "efl/pointer:bottom_right_corner"; parts { part { name: "box"; description { state: "default" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 0.7 0.7; } description { state: "p1" 0.0; rel1.relative: 0.3 0.0; rel2.relative: 1.0 0.7; } } } } group { name: "efl/pointer:top_left_corner"; inherit: "efl/pointer:bottom_right_corner"; parts { part { name: "box"; description { state: "default" 0.0; rel1.relative: 0.6 0.6; rel2.relative: 1.0 1.0; } description { state: "p1" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 1.0 1.0; } } } } group { name: "efl/pointer:top_side"; inherit: "efl/pointer:bottom_right_corner"; parts { part { name: "box"; description { state: "default" 0.0; rel1.relative: 0.3 0.6; rel2.relative: 1.0 1.0; } description { state: "p1" 0.0; rel1.relative: 0.3 0.3; rel2.relative: 1.0 1.0; } } } }