efl
211 строк · 5.5 Кб
1efl = require('efl');2
3function setIcon(widget, icon) {4var container = widget.part("icon").cast("Efl.Content");5container.setContent(icon);6}
7
8_btn_options_cb = function(_btn) {9var text = _btn.getText();10var lbl = text.split(": ");11
12var t = parseFloat(lbl[1]);13if (lbl[0] === "Initial")14{15console.log ("Initial: " + lbl[1]);16up.setAutorepeatInitialTimeout(t);17down.setAutorepeatInitialTimeout(t);18left.setAutorepeatInitialTimeout(t);19right.setAutorepeatInitialTimeout(t);20}21else if (lbl[0] === "Gap")22{23console.log ("Gap: " + lbl[1]);24up.setAutorepeatGapTimeout(t);25down.setAutorepeatGapTimeout(t);26left.setAutorepeatGapTimeout(t);27right.setAutorepeatGapTimeout(t);28}29}
30
31_btn_cursors_move = function(_btn) {32var size = mid.getSizeHintAlign();33var ax = size[0];34var ay = size[1];35console.log ("cursor move: ", size[0], size[1]);36
37if (!icon_still) {38var icon = new efl.Efl.Ui.Image(mid);39var icon_still_p = mid.contentUnset("icon");40if (icon_still_p) {41icon_still_p.setVisible(false);42}43icon.setIcon("chat");44setIcon(mid, icon);45}46
47if (_btn.getPosition()[1] == up.getPosition()[1]) {48ay -= 0.05;49if (ay < 0.0) ay = 0.0;50}51else if (_btn.getPosition()[1] == down.getPosition()[1]) {52ay += 0.05;53if (ay > 1.0) ay = 1.0;54}55else if (_btn.getPosition()[0] == left.getPosition()[0]) {56ax -= 0.05;57if (ax < 0.0) ax = 0.0;58}59else if (_btn.getPosition()[0] == right.getPosition()[0]) {60ax += 0.05;61if (ax > 1.0) ax = 1.0;62}63mid.setHintAlign(ax, ay);64}
65
66
67win = new efl.Efl.Ui.Win(null, "Efl JS Example", efl.Efl.Ui.Win.Type.BASIC, "hw");68win.setText("Button example");69win.setAutohide(true);70
71icon_still = new efl.Efl.Ui.Image(win);72mid = new efl.Efl.Ui.Button(win);73up = new efl.Efl.Ui.Button(win);74down = new efl.Efl.Ui.Button(win);75left = new efl.Efl.Ui.Button(win);76right = new efl.Efl.Ui.Button(win);77
78_btn_cursors_release = function() {79if (icon_still)80{81setIcon(mid, icon_still);82icon_still = null;83}84}
85
86box = new efl.Efl.Ui.Box(win);87box.setHintWeight(1.0, 1.0);88win.setContent(box);89box.setVisible(true);90
91box_initial = new efl.Efl.Ui.Box(win);92box_initial.cast("Efl.Ui.Direction").setDirection(efl.Efl.Ui.Dir.HORIZONTAL);93box_initial.setHintWeight(1.0, 0.0);94box.packEnd(box_initial);95box_initial.setVisible(true);96
97btn = new efl.Efl.Ui.Button(win);98btn.setText("Initial: 0.0");99box_initial.packEnd(btn);100btn.setVisible(true);101
102btn.on('clicked', _btn_options_cb);103
104btn2 = new efl.Efl.Ui.Button(win);105btn2.setText("Initial: 1.0");106box_initial.packEnd(btn2);107btn2.setVisible(true);108btn2.on('clicked', _btn_options_cb);109
110btn3 = new efl.Efl.Ui.Button(win);111btn3.setText("Initial: 5.0");112box_initial.packEnd(btn3);113btn3.setVisible(true);114btn3.on('clicked', _btn_options_cb);115
116box_gap = new efl.Efl.Ui.Box(win);117box_gap.cast("Efl.Ui.Direction").setDirection(efl.Efl.Ui.Dir.HORIZONTAL);118box_gap.setHintWeight(1.0, 0.0);119box.packEnd(box_gap);120box_gap.setVisible(true);121
122btn4 = new efl.Efl.Ui.Button(win);123btn4.setText("Gap: 0.1");124box_gap.packEnd(btn4);125btn4.setVisible(true);126btn4.on('clicked', _btn_options_cb);127
128btn5 = new efl.Efl.Ui.Button(win);129btn5.setText("Gap: 0.5");130box_gap.packEnd(btn5);131btn5.setVisible(true);132btn5.on('clicked', _btn_options_cb);133
134btn6 = new efl.Efl.Ui.Button(win);135btn6.setText("Gap: 1.0");136box_gap.packEnd(btn6);137btn6.setVisible(true);138btn6.on('clicked', _btn_options_cb);139
140up.setAutorepeatEnabled(true);141up.setAutorepeatInitialTimeout(1.0);142up.setAutorepeatGapTimeout(0.5);143up.setHintWeight(1.0, 0.0);144up.setHintAlign(-1.0, 0.0);145box.packEnd(up);146up.setVisible(true);147up.on('repeated', _btn_cursors_move);148up.on('unpressed', _btn_cursors_release);149icon_up = new efl.Efl.Ui.Image(win);150icon_up.setIcon("arrow_up");151setIcon(up, icon_up);152
153box_inferior = new efl.Efl.Ui.Box(win);154box_inferior.cast("Efl.Ui.Direction").setDirection(efl.Efl.Ui.Dir.HORIZONTAL);155box_inferior.setHintWeight(1.0, 1.0);156box_inferior.setHintAlign(-1.0, -1.0);157box.packEnd(box_inferior);158box_inferior.setVisible(true);159
160left.setAutorepeatEnabled(true);161left.setAutorepeatInitialTimeout(1.0);162left.setAutorepeatGapTimeout(0.5);163left.setHintWeight(0.0, 1.0);164left.setHintAlign(0.0, -1.0);165box_inferior.packEnd(left);166left.setVisible(true);167left.on('repeated', _btn_cursors_move);168left.on('unpressed', _btn_cursors_release);169
170icon_left = new efl.Efl.Ui.Image(win);171icon_left.setIcon("arrow_left");172setIcon(left, icon_left);173
174mid.setHintWeight(1.0, 1.0);175box_inferior.packEnd(mid);176mid.setVisible(true);177
178icon_mid = new efl.Efl.Ui.Image(win);179icon_mid.setIcon("close");180setIcon(mid, icon_mid);181
182right.setAutorepeatEnabled(true);183right.setAutorepeatInitialTimeout(1.0);184right.setAutorepeatGapTimeout(0.5);185right.setHintWeight(0.0, 1.0);186right.setHintAlign(0.0, -1.0);187box_inferior.packEnd(right);188right.setVisible(true);189right.on('repeated', _btn_cursors_move);190right.on('unpressed', _btn_cursors_release);191
192icon_right = new efl.Efl.Ui.Image(win);193icon_right.setIcon("arrow_right");194setIcon(right, icon_right);195
196down.setAutorepeatEnabled(true);197down.setAutorepeatInitialTimeout(1.0);198down.setAutorepeatGapTimeout(0.5);199down.setHintWeight(1.0, 0.0);200down.setHintAlign(-1.0, 0.0);201box.packEnd(down);202down.setVisible(true);203down.on('repeated', _btn_cursors_move);204down.on('unpressed', _btn_cursors_release);205
206icon_down = new efl.Efl.Ui.Image(win);207icon_down.setIcon("arrow_down");208setIcon(down, icon_down);209
210win.setSize(300, 320);211win.setVisible(true);212
213