Imported Upstream version 1.7.1
[platform/upstream/edje.git] / src / examples / signals-messages.edc
1 #define MSG_COLOR 1
2 #define MSG_TEXT 2
3
4 collections {
5    group {
6       name: "example_group";
7
8       parts {
9          part {
10             name: "part_right";
11             type: RECT;
12             clip_to: "part_right_clipper";
13             description {
14                min: 50 50;
15                max: 50 50;
16                state: "default" 0.0;
17                color: 0 0 255 255; /* blue */
18                rel1.relative: 1.0 0.5;
19                rel1.offset: -49 0;
20                rel2.relative: 1.0 0.5;
21             }
22          }
23
24          part {
25             name: "part_left";
26             type: RECT;
27             description {
28                color_class: "cc";
29                min: 50 50;
30                max: 50 50;
31                state: "default" 0.0;
32                rel1.relative: 0.0 0.5;
33                rel2.relative: 0.0 0.5;
34                rel2.offset: 50 -1;
35             }
36          }
37
38          part {
39             name: "text";
40             type: TEXT;
41             description {
42                min: 150 50;
43                max: 150 50;
44                fixed: 1 1;
45                color: 0 0 0 255;
46                state: "default" 0.0;
47                rel1.relative: 0.5 0.5;
48                rel2.relative: 0.5 0.5;
49                text {
50                   font:     "Sans";
51                   size:     20;
52                   min:      1 1;
53                   align:    0.5 0.5;
54                }
55             }
56          }
57
58          part {
59             name: "part_right_clipper";
60             type: RECT;
61             repeat_events: 1;
62
63             description {
64                min: 50 50;
65                max: 50 50;
66
67                state: "default" 0.0;
68                rel1.relative: 1.0 0.5;
69                rel1.offset: -49 0;
70                rel2.relative: 1.0 0.5;
71             }
72
73             description {
74                state: "hidden" 0.0;
75                inherit: "default" 0.0;
76                visible: 0;
77             }
78          }
79       }
80
81       script {
82         public global_str0;
83         public global_str1;
84         public global_str2;
85         public str_idx;
86
87         public set_text_string() {
88            new tmp[1024];
89            new idx;
90            idx = get_int(str_idx);
91
92            if (idx == 0)
93               get_str(global_str0, tmp, 1024);
94            else if (idx == 1)
95               get_str(global_str1, tmp, 1024);
96            else if (idx == 2)
97               get_str(global_str2, tmp, 1024);
98               else return;
99
100            set_text(PART:"text", tmp);
101            send_message(MSG_STRING, MSG_TEXT, tmp);
102         }
103
104         public message(Msg_Type:type, id, ...) {
105            if ((type == MSG_INT_SET) && (id == MSG_COLOR)) {
106                new r, g, b, a;
107
108                r = getarg(2);
109                g = getarg(3);
110                b = getarg(4);
111                a = getarg(5);
112
113                set_color_class("cc", r, g, b, a);
114            }
115         }
116       }
117
118       programs {
119          program {
120             name: "bootstrap";
121             signal: "load";
122             source: "";
123             script {
124                set_str(global_str0, "String one");
125                set_str(global_str1, "String two");
126                set_str(global_str2, "String three");
127                set_int(str_idx, 0);
128                set_text_string();
129             }
130          }
131
132          program { /* custom signal */
133             name: "part_right,hovered";
134             signal: "mouse,move";
135             source: "part_right";
136             action: SIGNAL_EMIT "mouse,over" "part_right";
137          }
138
139          program { /* hide right rectangle */
140             name: "part_right,hide";
141             signal: "part_right,hide";
142             source: "";
143             action: STATE_SET "hidden" 0.0;
144             target: "part_right_clipper";
145          }
146
147          program {
148             name: "part_right,show";
149             signal: "part_right,show";
150             source: "";
151             action: STATE_SET "default" 0.0;
152             target: "part_right_clipper";
153          }
154
155          program { /* change text part's string value */
156             name: "text,change";
157             signal: "mouse,clicked,1";
158             source: "part_left";
159             script {
160                new idx;
161                idx = get_int(str_idx);
162                idx = idx + 1;
163
164                if (idx > 2)
165                   set_int(str_idx, 0);
166                else
167                   set_int(str_idx, idx);
168
169                set_text_string();
170             }
171          }
172       }
173    }
174 }