efl
190 строк · 5.8 Кб
1collections {
2group { "efl/button:custom";
3alias: "efl/button";
4parts {
5rect { "border";
6desc { "default";
7color: 0 0 0 255;
8}
9desc { "in";
10color: 50 180 180 255;
11}
12}
13rect { "base";
14mouse_events: 1;
15desc { "default";
16rel1.to: "border";
17rel1.offset: 1 1;
18rel2.to: "border";
19rel2.offset: -2 -2;
20}
21desc { "disabled";
22inherit: "default";
23color: 230 230 230 255;
24}
25}
26swallow { "efl.swallow.content";
27mouse_events: 0;
28desc { "default";
29fixed: 1 0;
30hid;
31align: 0.0 0.5;
32rel1.offset: 4 4;
33rel2.offset: 3 -5;
34rel2.relative: 0.0 1.0;
35}
36desc { "visible";
37inherit: "default";
38vis;
39aspect: 1.0 1.0;
40aspect_preference: VERTICAL;
41rel2.offset: 4 -5;
42}
43desc { "icononly";
44inherit: "default";
45fixed: 0 0;
46vis;
47align: 0.5 0.5;
48aspect: 1.0 1.0;
49aspect_preference: VERTICAL;
50rel2.offset: -5 -5;
51rel2.relative: 1.0 1.0;
52}
53}
54text { "efl.text";
55mouse_events: 0;
56scale: 1;
57desc { "default";
58vis;
59rel1.to_x: "efl.swallow.content";
60rel1.relative: 1.0 0.0;
61rel1.offset: 0 4;
62rel2.offset: -5 -5;
63color: 0 0 0 255;
64text {
65font: "Sans";
66size: 10;
67min: 0 0;
68text_class: "button";
69}
70}
71desc { "visible";
72inherit: "default";
73vis;
74text.min: 1 1;
75text.ellipsis: -1;
76}
77desc { "disabled";
78inherit: "default";
79}
80desc { "disabled_visible";
81inherit: "default";
82vis;
83text.min: 1 1;
84text.ellipsis: -1;
85}
86}
87programs {
88program { "button_mouse_in";
89signal: "mouse,in";
90source: "base";
91action: STATE_SET "in" 0.0;
92target: "border";
93}
94program { "button_mouse_out";
95signal: "mouse,out";
96source: "base";
97action: STATE_SET "default" 0.0;
98target: "border";
99}
100program { "button_unclick";
101signal: "mouse,up,1";
102source: "base";
103action: SIGNAL_EMIT "efl,action,click" "";
104}
105program { "button_click";
106signal: "mouse,down,1";
107source: "base";
108}
109program { "text_show";
110signal: "efl,state,text,visible";
111source: "efl";
112script {
113new st[31];
114new Float:vl;
115get_state(PART:"efl.swallow.content", st, 30, vl);
116if (!strcmp(st, "icononly"))
117set_state(PART:"efl.swallow.content", "visible", 0.0);
118set_state(PART:"efl.text", "visible", 0.0);
119}
120}
121program { "text_hide";
122signal: "efl,state,text,hidden";
123source: "efl";
124script {
125new st[31];
126new Float:vl;
127get_state(PART:"efl.swallow.content", st, 30, vl);
128if (!strcmp(st, "visible"))
129set_state(PART:"efl.swallow.content", "icononly", 0.0);
130set_state(PART:"efl.text", "default", 0.0);
131}
132}
133program { "icon_show";
134signal: "efl,state,icon,visible";
135source: "efl";
136script {
137new st[31];
138new Float:vl;
139get_state(PART:"efl.text", st, 30, vl);
140if (!strcmp(st, "visible"))
141set_state(PART:"efl.swallow.content", "visible", 0.0);
142else
143set_state(PART:"efl.swallow.content", "icononly", 0.0);
144}
145}
146program { "icon_hide";
147signal: "efl,state,icon,hidden";
148source: "efl";
149action: STATE_SET "default" 0.0;
150target: "efl.swallow.content";
151}
152program { "disable";
153signal: "efl,state,disabled";
154source: "efl";
155action: STATE_SET "disabled" 0.0;
156target: "base";
157after: "disable_text";
158}
159program { "disable_text";
160script {
161new st[31];
162new Float:vl;
163get_state(PART:"efl.text", st, 30, vl);
164if (!strcmp(st, "visible"))
165set_state(PART:"efl.text", "disabled_visible", 0.0);
166else if (!strcmp(st, "default"))
167set_state(PART:"efl.text", "disabled", 0.0);
168}
169}
170program { "enable";
171signal: "efl,state,enabled";
172source: "efl";
173action: STATE_SET "default" 0.0;
174target: "base";
175after: "enable_text";
176}
177program { "enable_text";
178script {
179new st[31];
180new Float:vl;
181get_state(PART:"efl.text", st, 30, vl);
182if (!strcmp(st, "disabled_visible"))
183set_state(PART:"efl.text", "visible", 0.0);
184else if (!strcmp(st, "disabled"))
185set_state(PART:"efl.text", "default", 0.0);
186}
187}
188}
189}
190}
191