/////////////////////////////////////////////////////////////////////////// //// the cursor to show where text is typed group { name: "terminology/cursor"; images { image: "cr_key.png" COMP; image: "cr_out.png" COMP; image: "cr_pulse.png" COMP; image: "cr_glow.png" COMP; } sounds { sample { name: "key-tap1" LOSSY 64; source: "kbd-tap.wav"; } sample { name: "key-tap2" LOSSY 64; source: "kbd-tap2.wav"; } sample { name: "key-tap3" LOSSY 64; source: "kbd-tap3.wav"; } sample { name: "key-tap4" LOSSY 64; source: "kbd-tap4.wav"; } sample { name: "key-tap5" LOSSY 64; source: "kbd-tap5.wav"; } } parts { part { name: "key"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -5 -5; } rel2 { to: "outline"; offset: 4 4; } image { normal: "cr_key.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -7 -15; rel2.offset: 6 14; } } part { name: "pulse"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -4 -4; } rel2 { to: "outline"; offset: 3 3; } image { normal: "cr_pulse.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -8 -8; rel2.offset: 7 7; } } part { name: "glow"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_glow.png"; border: 9 9 9 9; } color: 51 153 255 40; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "outline"; mouse_events: 0; description { state: "default" 0.0; image { normal: "cr_out.png"; border: 3 3 3 3; } color: 51 153 255 80; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } programs { program { signal: "focus,in,noblink"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; } program { name: "focus_in"; signal: "focus,in"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "focus2"; in: 0.5 0.0; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "glow"; target: "outline"; after: "focus3"; } program { name: "focus3"; in: 0.5 0.0; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "pulse"; action: STATE_SET "on" 0.0; target: "pulse"; after: "pulse2"; } program { name: "pulse2"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.4; target: "pulse"; } program { signal: "focus,out"; source: "terminology"; action: ACTION_STOP; target: "focus_in"; target: "focus2"; target: "focus3"; target: "pulse"; target: "pulse2"; after: "focus_out2"; } program { name: "focus_out2"; action: STATE_SET "default" 0.0; target: "glow"; target: "outline"; } program { signal: "key,down"; source: "terminology"; script { new buf[32]; snprintf(buf, 31, "key-down%i", (rand() % 5) + 1); run_program(get_program_id(buf)); } } program { name: "key-down1"; action: PLAY_SAMPLE "key-tap1" 1.0 INPUT; } program { name: "key-down2"; action: PLAY_SAMPLE "key-tap2" 1.0 INPUT; } program { name: "key-down3"; action: PLAY_SAMPLE "key-tap3" 1.0 INPUT; } program { name: "key-down4"; action: PLAY_SAMPLE "key-tap4" 1.0 INPUT; } program { name: "key-down5"; action: PLAY_SAMPLE "key-tap5" 1.0 INPUT; } program { signal: "key,down"; source: "terminology"; action: STATE_SET "default" 0.0; target: "key"; after: "key2"; } program { name: "key2"; action: STATE_SET "on" 0.0; target: "key"; after: "key3"; } program { name: "key3"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.3; target: "key"; } } } } /////////////////////////////////////////////////////////////////////////// //// the cursor as a bar to show where text is typed group { name: "terminology/cursor_bar"; images { image: "cr_key.png" COMP; image: "cr_bar_out.png" COMP; image: "cr_bar_pulse.png" COMP; image: "cr_bar_glow.png" COMP; } sounds { sample { name: "key-tap1" LOSSY 64; source: "kbd-tap.wav"; } sample { name: "key-tap2" LOSSY 64; source: "kbd-tap2.wav"; } sample { name: "key-tap3" LOSSY 64; source: "kbd-tap3.wav"; } sample { name: "key-tap4" LOSSY 64; source: "kbd-tap4.wav"; } sample { name: "key-tap5" LOSSY 64; source: "kbd-tap5.wav"; } } parts { part { name: "key"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -5 -5; } rel2 { to: "outline"; offset: 4 4; } image { normal: "cr_key.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -7 -15; rel2.offset: 6 14; } } part { name: "pulse"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -4 -4; } rel2 { to: "outline"; offset: 3 3; } image { normal: "cr_bar_pulse.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -8 -8; rel2.offset: 7 7; } } part { name: "glow"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_bar_glow.png"; border: 9 9 9 9; } color: 51 153 255 40; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "outline"; mouse_events: 0; description { state: "default" 0.0; image { normal: "cr_bar_out.png"; border: 3 3 3 3; } color: 51 153 255 80; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } programs { program { signal: "focus,in,noblink"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; } program { name: "focus_in"; signal: "focus,in"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "focus2"; in: 0.5 0.0; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "glow"; target: "outline"; after: "focus3"; } program { name: "focus3"; in: 0.5 0.0; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "pulse"; action: STATE_SET "on" 0.0; target: "pulse"; after: "pulse2"; } program { name: "pulse2"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.4; target: "pulse"; } program { signal: "focus,out"; source: "terminology"; action: ACTION_STOP; target: "focus_in"; target: "focus2"; target: "focus3"; target: "pulse"; target: "pulse2"; after: "focus_out2"; } program { name: "focus_out2"; action: STATE_SET "default" 0.0; target: "glow"; target: "outline"; } program { signal: "key,down"; source: "terminology"; script { new buf[32]; snprintf(buf, 31, "key-down%i", (rand() % 5) + 1); run_program(get_program_id(buf)); } } program { name: "key-down1"; action: PLAY_SAMPLE "key-tap1" 1.0 INPUT; } program { name: "key-down2"; action: PLAY_SAMPLE "key-tap2" 1.0 INPUT; } program { name: "key-down3"; action: PLAY_SAMPLE "key-tap3" 1.0 INPUT; } program { name: "key-down4"; action: PLAY_SAMPLE "key-tap4" 1.0 INPUT; } program { name: "key-down5"; action: PLAY_SAMPLE "key-tap5" 1.0 INPUT; } program { signal: "key,down"; source: "terminology"; action: STATE_SET "default" 0.0; target: "key"; after: "key2"; } program { name: "key2"; action: STATE_SET "on" 0.0; target: "key"; after: "key3"; } program { name: "key3"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.3; target: "key"; } } } } /////////////////////////////////////////////////////////////////////////// //// the cursor as an underline to show where text is typed group { name: "terminology/cursor_underline"; images { image: "cr_key.png" COMP; image: "cr_underline_out.png" COMP; image: "cr_underline_pulse.png" COMP; image: "cr_underline_glow.png" COMP; } sounds { sample { name: "key-tap1" LOSSY 64; source: "kbd-tap.wav"; } sample { name: "key-tap2" LOSSY 64; source: "kbd-tap2.wav"; } sample { name: "key-tap3" LOSSY 64; source: "kbd-tap3.wav"; } sample { name: "key-tap4" LOSSY 64; source: "kbd-tap4.wav"; } sample { name: "key-tap5" LOSSY 64; source: "kbd-tap5.wav"; } } parts { part { name: "key"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -5 -5; } rel2 { to: "outline"; offset: 4 4; } image { normal: "cr_key.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -7 -15; rel2.offset: 6 14; } } part { name: "pulse"; mouse_events: 0; description { state: "default" 0.0; rel1 { to: "outline"; offset: -4 -4; } rel2 { to: "outline"; offset: 3 3; } image { normal: "cr_underline_pulse.png"; border: 4 4 4 4; } color: 51 153 255 0; } description { state: "on" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } description { state: "out" 0.0; inherit: "default" 0.0; color: 51 153 255 0; rel1.offset: -8 -8; rel2.offset: 7 7; } } part { name: "glow"; mouse_events: 0; description { state: "default" 0.0; rel1.offset: -4 -4; rel2.offset: 3 3; image { normal: "cr_underline_glow.png"; border: 9 9 9 9; } color: 51 153 255 40; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 51 153 255 255; } } part { name: "outline"; mouse_events: 0; description { state: "default" 0.0; image { normal: "cr_underline_out.png"; border: 3 3 3 3; } color: 51 153 255 80; } description { state: "focused" 0.0; inherit: "default" 0.0; color: 255 255 255 255; } } programs { program { signal: "focus,in,noblink"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; } program { name: "focus_in"; signal: "focus,in"; source: "terminology"; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "focus2"; in: 0.5 0.0; action: STATE_SET "default" 0.0; transition: DECELERATE 0.2; target: "glow"; target: "outline"; after: "focus3"; } program { name: "focus3"; in: 0.5 0.0; action: STATE_SET "focused" 0.0; target: "glow"; target: "outline"; after: "focus2"; after: "pulse"; } program { name: "pulse"; action: STATE_SET "on" 0.0; target: "pulse"; after: "pulse2"; } program { name: "pulse2"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.4; target: "pulse"; } program { signal: "focus,out"; source: "terminology"; action: ACTION_STOP; target: "focus_in"; target: "focus2"; target: "focus3"; target: "pulse"; target: "pulse2"; after: "focus_out2"; } program { name: "focus_out2"; action: STATE_SET "default" 0.0; target: "glow"; target: "outline"; } program { signal: "key,down"; source: "terminology"; script { new buf[32]; snprintf(buf, 31, "key-down%i", (rand() % 5) + 1); run_program(get_program_id(buf)); } } program { name: "key-down1"; action: PLAY_SAMPLE "key-tap1" 1.0 INPUT; } program { name: "key-down2"; action: PLAY_SAMPLE "key-tap2" 1.0 INPUT; } program { name: "key-down3"; action: PLAY_SAMPLE "key-tap3" 1.0 INPUT; } program { name: "key-down4"; action: PLAY_SAMPLE "key-tap4" 1.0 INPUT; } program { name: "key-down5"; action: PLAY_SAMPLE "key-tap5" 1.0 INPUT; } program { signal: "key,down"; source: "terminology"; action: STATE_SET "default" 0.0; target: "key"; after: "key2"; } program { name: "key2"; action: STATE_SET "on" 0.0; target: "key"; after: "key3"; } program { name: "key3"; action: STATE_SET "out" 0.0; transition: DECELERATE 0.3; target: "key"; } } } }