group { name: "elm/pointer/base/default"; images { image: "pointer.png" COMP; image: "pointer_glow.png" COMP; image: "pointer_glint_01.png" COMP; image: "pointer_glint_02.png" COMP; image: "pointer_glint_03.png" COMP; image: "pointer_glint_04.png" COMP; image: "pointer_glint_05.png" COMP; image: "pointer_glint_06.png" COMP; image: "pointer_glint_07.png" COMP; image: "pointer_glint_08.png" COMP; image: "pointer_glint_09.png" COMP; image: "pointer_glint_10.png" COMP; image: "pointer_glint_11.png" COMP; image: "pointer_glint_12.png" COMP; } parts { part { name: "base"; mouse_events: 0; description { state: "default" 0.0; aspect: 0.71875 0.71875; min: 23 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"; /* this overlay is used to put a white glow * around the pointer, so when the pointer is * idle every now and again it will pulsate * with this glow to just remind you where the * pointer is (if you lose a black-ish * pointer on a black background) */ mouse_events: 0; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; visible: 0; color: 255 255 255 0; image.normal: "pointer_glow.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; color: 255 255 255 255; } } part { name: "glint"; /* this overlay flips a series of small images * over the pointer. they look like a white * light/refelection when put over the pointer * base image - and produce a "glinting" effect * when played back fast */ mouse_events: 0; description { state: "default" 0.0; rel1.to: "base"; rel2.to: "base"; visible: 0; image.normal: "pointer_glint_12.png"; } description { state: "visible" 0.0; inherit: "default" 0.0; visible: 1; image.tween: "pointer_glint_01.png"; image.tween: "pointer_glint_02.png"; image.tween: "pointer_glint_03.png"; image.tween: "pointer_glint_04.png"; image.tween: "pointer_glint_05.png"; image.tween: "pointer_glint_06.png"; image.tween: "pointer_glint_07.png"; image.tween: "pointer_glint_08.png"; image.tween: "pointer_glint_09.png"; image.tween: "pointer_glint_10.png"; image.tween: "pointer_glint_11.png"; image.normal: "pointer_glint_12.png"; } } 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; rel1 { /* the hotspot will scale with the cursor here */ to: "base"; relative: 0.27 0.125; offset: 0 0; } rel2 { to: "base"; relative: 0.27 0.125; offset: 0 0; } } } } programs { program { name: "mouse_down"; /* called every time elm detects a mouse * press */ signal: "elm,action,mouse,down"; source: "elm"; action: STATE_SET "visible" 0.0; transition: LINEAR 0.3; target: "glint"; after: "mouse_down2"; } program { name: "mouse_down2"; action: STATE_SET "default" 0.0; target: "glint"; } program { name: "mouse_idle"; /* called when e thinks the mouse went * idle and isn't moving */ signal: "elm,state,mouse,idle"; source: "elm"; action: STATE_SET "visible" 0.0; in: 5.0 0.0; transition: SINUSOIDAL 1.0; target: "glow"; after: "mouse_idle2"; } program { name: "mouse_idle2"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 2.0; target: "glow"; after: "mouse_idle"; } program { name: "mouse_active"; /* called when e sees the mouse become * active again */ signal: "elm,state,mouse,active"; source: "elm"; action: STATE_SET "default" 0.0; target: "glow"; after: "mouse_active2"; } program { name: "mouse_active2"; action: ACTION_STOP; target: "mouse_idle"; target: "mouse_idle2"; } // when mouse button is released. not used here // program { name: "xx"; // signal: "e,action,mouse,up"; // source: "e"; // } // when mouse button is moved. not used here // program { name: "xx"; // signal: "e,action,mouse,move"; // source: "e"; // } // when mouse wheel is scrolled. not used here // program { name: "xx"; // signal: "e,action,mouse,wheel"; // source: "e"; // } } }