terminology/data/themes/default/cursor.edc

707 lines
21 KiB
Plaintext

///////////////////////////////////////////////////////////////////////////
//// the cursor to show where text is typed
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";
}
}
#define KEY_RESPONSE(_to) \
part { name: "k0"; type: RECT; \
scale: 1; \
description { state: "default" 0.0; \
color: 255 255 255 0; /* no cc */ \
color_class: "GLOW"; \
rel.to: _to; \
rel1.relative: 0.0 0.0; \
rel1.offset: 0 0; \
rel2.relative: 1.0 0.0; \
rel2.offset: -1 0; \
align: 0.0 0.0; \
min: 1 1; \
offscale; \
} \
description { state: "on" 0.0; \
inherit: "default" 0.0; \
color: 255 255 255 255; /* no cc */ \
} \
description { state: "out" 0.0; \
inherit: "default" 0.0; \
color: 255 255 255 0; /* no cc */ \
rel1.relative: -1.0 -0.5; \
rel2.relative: 2.0 -0.5; \
} \
} \
part { name: "k1"; type: RECT; \
scale: 1; \
description { state: "default" 0.0; \
color: 255 255 255 0; /* no ccc */ \
color_class: "GLOW"; \
rel.to: _to; \
rel1.relative: 0.0 1.0; \
rel1.offset: 0 0; \
rel2.relative: 1.0 1.0; \
rel2.offset: -1 0; \
align: 0.0 0.0; \
min: 1 1; \
offscale; \
} \
description { state: "on" 0.0; \
inherit: "default" 0.0; \
color: 255 255 255 255; /* no cc */ \
} \
description { state: "out" 0.0; \
inherit: "default" 0.0; \
color: 255 255 255 0; /* no cc */ \
rel1.relative: -1.0 1.5; \
rel2.relative: 2.0 1.5; \
} \
} \
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: "k0"; \
target: "k1"; \
after: "key2"; \
} \
program { name: "key2"; \
action: STATE_SET "on" 0.0; \
target: "k0"; \
target: "k1"; \
after: "key3"; \
} \
program { name: "key3"; \
action: STATE_SET "out" 0.0; \
transition: DECELERATE 0.2; \
target: "k0"; \
target: "k1"; \
}
group { name: "terminology/cursor";
images.image: "grad-v-1.png" COMP;
images.image: "grad-v-2.png" COMP;
parts {
// key "things" that fly out above/below
part { name: "base"; type: SPACER;
description { state: "default" 0.0;
}
}
KEY_RESPONSE("base")
// base colored rect block always there
part { name: "b0"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 128; // no cc
color_class: "GLOW";
rel1.relative: 0.0 0.0;
rel1.offset: 0 0;
rel2.relative: 1.0 0.0;
rel2.offset: -1 0;
align: 0.0 0.0;
min: 1 1;
offscale;
}
}
part { name: "b1"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 128; // no cc
color_class: "GLOW";
rel1.relative: 0.0 1.0;
rel1.offset: 0 -1;
rel2.relative: 1.0 1.0;
rel2.offset: -1 -1;
align: 0.0 1.0;
min: 1 1;
offscale;
}
}
part { name: "b2"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 128; // no cc
color_class: "GLOW";
rel1.relative: 0.0 0.0;
rel1.offset: 0 1;
rel2.relative: 0.0 1.0;
rel2.offset: 0 -2;
align: 0.0 0.0;
min: 1 1;
offscale;
}
}
part { name: "b3"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 128; // no cc
color_class: "GLOW";
rel1.relative: 1.0 0.0;
rel1.offset: -1 1;
rel2.relative: 1.0 1.0;
rel2.offset: -1 -2;
align: 1.0 0.0;
min: 1 1;
offscale;
}
}
// light layered top + bottom lines and 2 gradient lines on left + right
part { name: "r0"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.relative: 0.0 0.0;
rel1.offset: 0 0;
rel2.relative: 1.0 0.0;
rel2.offset: -1 0;
align: 0.0 0.0;
min: 1 1;
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255; // no cc
visible: 1;
}
}
part { name: "r01";
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.relative: 0.0 0.0;
rel1.offset: 0 0;
rel2.relative: 0.0 1.0;
rel2.offset: 0 -1;
align: 0.0 0.0;
min: 1 0;
max: 1 0;
image.normal: "grad-v-1.png";
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
max: 1 0;
max: 1 99999;
color: 255 255 255 255; // no cc
visible: 1;
}
}
part { name: "r02";
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.relative: 1.0 0.0;
rel1.offset: -1 0;
rel2.relative: 1.0 1.0;
rel2.offset: -1 -1;
align: 1.0 0.0;
min: 1 0;
max: 1 0;
image.normal: "grad-v-1.png";
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
max: 1 99999;
color: 255 255 255 255; // no cc
visible: 1;
}
}
part { name: "r1"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.relative: 0.0 1.0;
rel1.offset: 0 -1;
rel2.relative: 1.0 1.0;
rel2.offset: -1 -1;
align: 0.0 1.0;
min: 1 1;
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255; // no cc
visible: 1;
}
}
part { name: "r11";
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.relative: 0.0 0.0;
rel1.offset: 0 0;
rel2.relative: 0.0 1.0;
rel2.offset: 0 -1;
align: 0.0 1.0;
min: 1 1;
max: 1 0;
image.normal: "grad-v-2.png";
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
max: 1 99999;
color: 255 255 255 255; // no cc
visible: 1;
}
}
part { name: "r12";
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.relative: 1.0 0.0;
rel1.offset: -1 0;
rel2.relative: 1.0 1.0;
rel2.offset: -1 -1;
align: 1.0 1.0;
min: 1 1;
max: 1 0;
image.normal: "grad-v-2.png";
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
max: 1 99999;
color: 255 255 255 255; // no cc
visible: 1;
}
}
programs {
program { signal: "focus,in,noblink"; source: "terminology";
action: STATE_SET "focused" 0.0;
target: "r0";
target: "r01";
target: "r02";
target: "r1";
target: "r11";
target: "r12";
}
program { name: "focus_in";
signal: "focus,in"; source: "terminology";
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.05 USE_DURATION_FACTOR 1;
target: "r0";
target: "r1";
after: "focus2";
}
program { name: "focus2";
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r01";
target: "r02";
target: "r11";
target: "r12";
after: "focus3";
}
program { name: "focus3";
in: 0.5 0.0;
action: STATE_SET "default" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r01";
target: "r02";
target: "r11";
target: "r12";
after: "focus4";
}
program { name: "focus4";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.05 USE_DURATION_FACTOR 1;
target: "r0";
target: "r1";
after: "focus5";
}
program { name: "focus5";
in: 0.5 0.0;
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r0";
target: "r1";
after: "focus2";
}
program { signal: "focus,out"; source: "terminology";
action: ACTION_STOP;
target: "focus_in";
target: "focus2";
target: "focus3";
target: "focus4";
target: "focus5";
after: "focus_out2";
}
program { name: "focus_out2";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r0";
target: "r01";
target: "r02";
target: "r1";
target: "r11";
target: "r12";
}
}
}
}
///////////////////////////////////////////////////////////////////////////
//// the cursor as a bar to show where text is typed
group { name: "terminology/cursor_bar";
images.image: "grad-v-1.png" COMP;
images.image: "grad-v-2.png" COMP;
parts {
// key "things" that fly out above/below
part { name: "base"; type: SPACER;
scale: 1;
description { state: "default" 0.0;
min: 3 0;
rel.to: "b0";
}
}
KEY_RESPONSE("base")
// base colored rect block always there
part { name: "b0"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 128; // no cc
color_class: "GLOW";
rel1.relative: 0.0 0.0;
rel1.offset: 0 0;
rel2.relative: 0.0 1.0;
rel2.offset: 0 -1;
align: 0.0 0.0;
min: 1 0;
offscale;
}
}
// light layered top + bottom lines and 2 gradient lines on left + right
part { name: "r0"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 255; // no cc
color_class: "CURSOR";
rel1.relative: 0.0 0.5;
rel1.offset: 0 0;
rel2.relative: 0.0 0.5;
rel2.offset: 0 -1;
align: 0.0 0.5;
min: 1 0;
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
rel1.relative: 0.0 0.0;
rel2.relative: 0.0 1.0;
}
}
part { name: "r01";
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.relative: 0.0 0.5;
rel1.offset: 0 0;
rel2.to: "r0";
rel2.relative: 0.0 0.5;
rel2.offset: 0 -1;
align: 0.0 1.0;
min: 1 0;
image.normal: "grad-v-2.png";
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255; // no cc
rel1.relative: 0.0 0.0;
visible: 1;
}
}
part { name: "r02";
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.to: "r0";
rel1.relative: 0.0 1.0;
rel1.offset: 0 0;
rel2.relative: 0.0 0.5;
rel2.offset: 0 -1;
align: 0.0 0.0;
min: 1 0;
image.normal: "grad-v-1.png";
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255; // no cc
rel2.relative: 0.0 1.0;
visible: 1;
}
}
programs {
program { signal: "focus,in,noblink"; source: "terminology";
action: STATE_SET "focused" 0.0;
target: "r0";
target: "r01";
target: "r02";
}
program { name: "focus_in";
signal: "focus,in"; source: "terminology";
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.05 USE_DURATION_FACTOR 1;
target: "r01";
target: "r02";
after: "focus2";
}
program { name: "focus2";
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r0";
after: "focus3";
}
program { name: "focus3";
in: 0.5 0.0;
action: STATE_SET "default" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r0";
after: "focus4";
}
program { name: "focus4";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.05 USE_DURATION_FACTOR 1;
target: "r01";
target: "r02";
after: "focus5";
}
program { name: "focus5";
in: 0.5 0.0;
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r01";
target: "r02";
after: "focus2";
}
program { signal: "focus,out"; source: "terminology";
action: ACTION_STOP;
target: "focus_in";
target: "focus2";
target: "focus3";
target: "focus4";
target: "focus5";
after: "focus_out2";
}
program { name: "focus_out2";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r0";
target: "r01";
target: "r02";
}
}
}
}
///////////////////////////////////////////////////////////////////////////
//// the cursor as an underline to show where text is typed
group { name: "terminology/cursor_underline";
images.image: "grad-h-1.png" COMP;
images.image: "grad-h-2.png" COMP;
parts {
// key "things" that fly out above/below
part { name: "base"; type: SPACER;
scale: 1;
description { state: "default" 0.0;
min: 3 0;
rel.to: "b0";
}
}
KEY_RESPONSE("base")
// base colored rect block always there
part { name: "b0"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 128; // no cc
color_class: "GLOW";
rel1.relative: 0.0 1.0;
rel1.offset: 0 -1;
rel2.relative: 1.0 1.0;
rel2.offset: -1 -1;
align: 0.0 0.0;
min: 0 1;
offscale;
}
}
// light layered top + bottom lines and 2 gradient lines on left + right
part { name: "r0"; type: RECT;
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 255; // no cc
color_class: "CURSOR";
rel1.relative: 0.5 1.0;
rel1.offset: 0 -1;
rel2.relative: 0.5 1.0;
rel2.offset: -1 -1;
align: 0.5 1.0;
min: 0 1;
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
rel1.relative: 0.0 1.0;
rel2.relative: 1.0 1.0;
}
}
part { name: "r01";
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.relative: 0.5 1.0;
rel1.offset: 0 -1;
rel2.to: "r0";
rel2.relative: 0.0 1.0;
rel2.offset: 0 -1;
align: 0.0 1.0;
min: 0 1;
image.normal: "grad-h-2.png";
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255; // no cc
rel1.relative: 0.0 1.0;
visible: 1;
}
}
part { name: "r02";
scale: 1;
description { state: "default" 0.0;
color: 255 255 255 0; // no cc
color_class: "CURSOR";
visible: 0;
rel1.to: "r0";
rel1.relative: 1.0 1.0;
rel1.offset: 0 -1;
rel2.relative: 0.5 1.0;
rel2.offset: -1 -1;
align: 0.0 0.0;
min: 1 0;
image.normal: "grad-h-1.png";
offscale;
}
description { state: "focused" 0.0;
inherit: "default" 0.0;
color: 255 255 255 255; // no cc
rel2.relative: 1.0 1.0;
visible: 1;
}
}
programs {
program { signal: "focus,in,noblink"; source: "terminology";
action: STATE_SET "focused" 0.0;
target: "r0";
target: "r01";
target: "r02";
}
program { name: "focus_in";
signal: "focus,in"; source: "terminology";
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.05 USE_DURATION_FACTOR 1;
target: "r01";
target: "r02";
after: "focus2";
}
program { name: "focus2";
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r0";
after: "focus3";
}
program { name: "focus3";
in: 0.5 0.0;
action: STATE_SET "default" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r0";
after: "focus4";
}
program { name: "focus4";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.05 USE_DURATION_FACTOR 1;
target: "r01";
target: "r02";
after: "focus5";
}
program { name: "focus5";
in: 0.5 0.0;
action: STATE_SET "focused" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r01";
target: "r02";
after: "focus2";
}
program { signal: "focus,out"; source: "terminology";
action: ACTION_STOP;
target: "focus_in";
target: "focus2";
target: "focus3";
target: "focus4";
target: "focus5";
after: "focus_out2";
}
program { name: "focus_out2";
action: STATE_SET "default" 0.0;
transition: LINEAR 0.1 USE_DURATION_FACTOR 1;
target: "r0";
target: "r01";
target: "r02";
}
}
}
}