efl/src/examples/edje/dynamic_multiseat.edc

281 lines
6.7 KiB
Plaintext

collections {
color_classes {
color_class {
name: "button_bg,1";
color: 200 200 200 255;
}
color_class {
name: "button_bg,2";
color: 200 200 200 255;
}
color_class {
name: "button_bg,3";
color: 200 200 200 255;
}
color_class {
name: "button_bg,4";
color: 200 200 200 255;
}
}
group {
name: "example/main";
min: 400 400;
parts {
part {
name: "bg";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
}
}
part {
name: "title";
type: TEXT;
mouse_events: 0;
description {
state: "default" 0.0;
color: 0 0 0 255;
rel1 {
relative: 0.0 0.0;
offset: 0 0;
to: "bg";
}
rel2 {
relative: 1.0 0.2;
offset: -1 -1;
to: "bg";
}
text {
text: "Dynamic Multiseat Example";
size: 16;
font: "sans";
min: 1 1;
}
}
}
part {
name: "buttons";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
rel1.relative: 0.2 0.3;
rel2.relative: 0.8 0.9;
color: 255 255 255 0;
}
}
part {
name: "button_bg,1";
type: RECT;
mouse_events: 1;
description {
state: "default" 0.0;
rel1 {
to: "buttons";
relative: 0.1 0.1;
}
rel2 {
to: "buttons";
relative: 0.45 0.45;
}
color_class: "button_bg,1";
}
}
part {
name: "button1";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
to: "button_bg,1";
offset: 10 10;
}
rel2 {
to: "button_bg,1";
offset: -11 -11;
}
color: 200 200 200 255;
}
}
part {
name: "button_bg,2";
type: RECT;
mouse_events: 1;
description {
state: "default" 0.0;
rel1 {
to: "buttons";
relative: 0.55 0.1;
}
rel2 {
to: "buttons";
relative: 0.9 0.45;
}
color_class: "button_bg,2";
}
}
part {
name: "button2";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
to: "button_bg,2";
offset: 10 10;
}
rel2 {
to: "button_bg,2";
offset: -11 -11;
}
color: 200 200 200 255;
}
}
part {
name: "button_bg,3";
type: RECT;
mouse_events: 1;
description {
state: "default" 0.0;
rel1 {
to: "buttons";
relative: 0.1 0.55;
}
rel2 {
to: "buttons";
relative: 0.45 0.9;
}
color_class: "button_bg,3";
}
}
part {
name: "button3";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
to: "button_bg,3";
offset: 10 10;
}
rel2 {
to: "button_bg,3";
offset: -11 -11;
}
color: 200 200 200 255;
}
}
part {
name: "button_bg,4";
type: RECT;
mouse_events: 1;
description {
state: "default" 0.0;
rel1 {
to: "buttons";
relative: 0.55 0.55;
}
rel2 {
to: "buttons";
relative: 0.9 0.9;
}
color_class: "button_bg,4";
}
}
part {
name: "button4";
type: RECT;
mouse_events: 0;
description {
state: "default" 0.0;
rel1 {
to: "button_bg,4";
offset: 10 10;
}
rel2 {
to: "button_bg,4";
offset: -11 -11;
}
color: 200 200 200 255;
}
}
}
script {
public red;
public green;
public blue;
public seat_count;
}
programs {
program {
name: "seat,added";
signal: "seat,added,*";
source: "";
script {
new seat_name[128];
new buf[256];
new r, g, b;
r = rand() * 255 / 65535;
append_int(red, r);
g = rand() * 255 / 65535;
append_int(green, g);
b = rand() * 255 / 65535;
append_int(blue, b);
set_int(seat_count, get_int(seat_count) + 1);
strncpy(seat_name, sig[strlen("seat,added,")],
strchr(sig[strlen("seat,added,")], ","));
snprintf(buf, sizeof(buf),
"seat,color,%s,r=%i,g=%i,b=%i", seat_name,
r, g, b);
emit(buf, "theme");
}
}
program {
name: "button,in";
signal: "seat,*,mouse,in";
source: "button_bg,*";
script {
new idx, r, g, b;
idx = atoi(sig[strlen("seat,seat")]) - 1;
r = fetch_int(red, idx);
g = fetch_int(green, idx);
b = fetch_int(blue, idx);
set_color_class(src, r, g, b, 255);
}
}
program {
name: "button,out";
signal: "seat,*,mouse,out";
source: "button_bg,*";
script {
set_color_class(src, 200, 200, 200, 255);
}
}
}
}
}