efl

Форк
0
/
button_example_01.js 
211 строк · 5.5 Кб
1
efl = require('efl');
2

3
function setIcon(widget, icon) {
4
    var container = widget.part("icon").cast("Efl.Content");
5
    container.setContent(icon);
6
}
7

8
_btn_options_cb = function(_btn) {
9
     var text = _btn.getText();
10
     var lbl = text.split(": ");
11

12
     var t = parseFloat(lbl[1]);
13
     if (lbl[0] === "Initial")
14
     {
15
         console.log ("Initial: " + lbl[1]);
16
         up.setAutorepeatInitialTimeout(t);
17
         down.setAutorepeatInitialTimeout(t);
18
         left.setAutorepeatInitialTimeout(t);
19
         right.setAutorepeatInitialTimeout(t);
20
     }
21
     else if (lbl[0] === "Gap")
22
     {
23
         console.log ("Gap: " + lbl[1]);
24
         up.setAutorepeatGapTimeout(t);
25
         down.setAutorepeatGapTimeout(t);
26
         left.setAutorepeatGapTimeout(t);
27
         right.setAutorepeatGapTimeout(t);
28
     }
29
}
30

31
_btn_cursors_move = function(_btn) {
32
   var size = mid.getSizeHintAlign();
33
   var ax = size[0];
34
   var ay = size[1];
35
   console.log ("cursor move: ", size[0], size[1]);
36

37
   if (!icon_still) {
38
       var icon = new efl.Efl.Ui.Image(mid);
39
       var icon_still_p = mid.contentUnset("icon");
40
       if (icon_still_p) {
41
           icon_still_p.setVisible(false);
42
        }
43
      icon.setIcon("chat");
44
      setIcon(mid, icon);
45
   }
46

47
   if (_btn.getPosition()[1] == up.getPosition()[1]) {
48
        ay -= 0.05;
49
        if (ay < 0.0) ay = 0.0;
50
   }
51
   else if (_btn.getPosition()[1] == down.getPosition()[1]) {
52
       ay += 0.05;
53
       if (ay > 1.0) ay = 1.0;
54
   }
55
   else if (_btn.getPosition()[0] == left.getPosition()[0]) {
56
        ax -= 0.05;
57
        if (ax < 0.0) ax = 0.0;
58
   }
59
   else if (_btn.getPosition()[0] == right.getPosition()[0]) {
60
        ax += 0.05;
61
        if (ax > 1.0) ax = 1.0;
62
   }
63
   mid.setHintAlign(ax, ay);
64
}
65

66

67
win = new efl.Efl.Ui.Win(null, "Efl JS Example", efl.Efl.Ui.Win.Type.BASIC, "hw");
68
win.setText("Button example");
69
win.setAutohide(true);
70

71
icon_still = new efl.Efl.Ui.Image(win);
72
mid = new efl.Efl.Ui.Button(win);
73
up = new efl.Efl.Ui.Button(win);
74
down = new efl.Efl.Ui.Button(win);
75
left = new efl.Efl.Ui.Button(win);
76
right = new efl.Efl.Ui.Button(win);
77

78
_btn_cursors_release = function() {
79
    if (icon_still)
80
    {
81
       setIcon(mid, icon_still);
82
       icon_still = null;
83
    }
84
}
85

86
box = new efl.Efl.Ui.Box(win);
87
box.setHintWeight(1.0, 1.0);
88
win.setContent(box);
89
box.setVisible(true);
90

91
box_initial = new efl.Efl.Ui.Box(win);
92
box_initial.cast("Efl.Ui.Direction").setDirection(efl.Efl.Ui.Dir.HORIZONTAL);
93
box_initial.setHintWeight(1.0, 0.0);
94
box.packEnd(box_initial);
95
box_initial.setVisible(true);
96

97
btn = new efl.Efl.Ui.Button(win);
98
btn.setText("Initial: 0.0");
99
box_initial.packEnd(btn);
100
btn.setVisible(true);
101

102
btn.on('clicked', _btn_options_cb);
103

104
btn2 = new efl.Efl.Ui.Button(win);
105
btn2.setText("Initial: 1.0");
106
box_initial.packEnd(btn2);
107
btn2.setVisible(true);
108
btn2.on('clicked', _btn_options_cb);
109

110
btn3 = new efl.Efl.Ui.Button(win);
111
btn3.setText("Initial: 5.0");
112
box_initial.packEnd(btn3);
113
btn3.setVisible(true);
114
btn3.on('clicked', _btn_options_cb);
115

116
box_gap = new efl.Efl.Ui.Box(win);
117
box_gap.cast("Efl.Ui.Direction").setDirection(efl.Efl.Ui.Dir.HORIZONTAL);
118
box_gap.setHintWeight(1.0, 0.0);
119
box.packEnd(box_gap);
120
box_gap.setVisible(true);
121

122
btn4 = new efl.Efl.Ui.Button(win);
123
btn4.setText("Gap: 0.1");
124
box_gap.packEnd(btn4);
125
btn4.setVisible(true);
126
btn4.on('clicked', _btn_options_cb);
127

128
btn5 = new efl.Efl.Ui.Button(win);
129
btn5.setText("Gap: 0.5");
130
box_gap.packEnd(btn5);
131
btn5.setVisible(true);
132
btn5.on('clicked', _btn_options_cb);
133

134
btn6 = new efl.Efl.Ui.Button(win);
135
btn6.setText("Gap: 1.0");
136
box_gap.packEnd(btn6);
137
btn6.setVisible(true);
138
btn6.on('clicked', _btn_options_cb);
139

140
up.setAutorepeatEnabled(true);
141
up.setAutorepeatInitialTimeout(1.0);
142
up.setAutorepeatGapTimeout(0.5);
143
up.setHintWeight(1.0, 0.0);
144
up.setHintAlign(-1.0, 0.0);
145
box.packEnd(up);
146
up.setVisible(true);
147
up.on('repeated', _btn_cursors_move);
148
up.on('unpressed', _btn_cursors_release);
149
icon_up = new efl.Efl.Ui.Image(win);
150
icon_up.setIcon("arrow_up");
151
setIcon(up, icon_up);
152

153
box_inferior = new efl.Efl.Ui.Box(win);
154
box_inferior.cast("Efl.Ui.Direction").setDirection(efl.Efl.Ui.Dir.HORIZONTAL);
155
box_inferior.setHintWeight(1.0, 1.0);
156
box_inferior.setHintAlign(-1.0, -1.0);
157
box.packEnd(box_inferior);
158
box_inferior.setVisible(true);
159

160
left.setAutorepeatEnabled(true);
161
left.setAutorepeatInitialTimeout(1.0);
162
left.setAutorepeatGapTimeout(0.5);
163
left.setHintWeight(0.0, 1.0);
164
left.setHintAlign(0.0, -1.0);
165
box_inferior.packEnd(left);
166
left.setVisible(true);
167
left.on('repeated', _btn_cursors_move);
168
left.on('unpressed', _btn_cursors_release);
169

170
icon_left = new efl.Efl.Ui.Image(win);
171
icon_left.setIcon("arrow_left");
172
setIcon(left, icon_left);
173

174
mid.setHintWeight(1.0, 1.0);
175
box_inferior.packEnd(mid);
176
mid.setVisible(true);
177

178
icon_mid = new efl.Efl.Ui.Image(win);
179
icon_mid.setIcon("close");
180
setIcon(mid, icon_mid);
181

182
right.setAutorepeatEnabled(true);
183
right.setAutorepeatInitialTimeout(1.0);
184
right.setAutorepeatGapTimeout(0.5);
185
right.setHintWeight(0.0, 1.0);
186
right.setHintAlign(0.0, -1.0);
187
box_inferior.packEnd(right);
188
right.setVisible(true);
189
right.on('repeated', _btn_cursors_move);
190
right.on('unpressed', _btn_cursors_release);
191

192
icon_right = new efl.Efl.Ui.Image(win);
193
icon_right.setIcon("arrow_right");
194
setIcon(right, icon_right);
195

196
down.setAutorepeatEnabled(true);
197
down.setAutorepeatInitialTimeout(1.0);
198
down.setAutorepeatGapTimeout(0.5);
199
down.setHintWeight(1.0, 0.0);
200
down.setHintAlign(-1.0, 0.0);
201
box.packEnd(down);
202
down.setVisible(true);
203
down.on('repeated', _btn_cursors_move);
204
down.on('unpressed', _btn_cursors_release);
205

206
icon_down = new efl.Efl.Ui.Image(win);
207
icon_down.setIcon("arrow_down");
208
setIcon(down, icon_down);
209

210
win.setSize(300, 320);
211
win.setVisible(true);
212

213

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.