mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2024-12-23 21:46:17 +01:00
- [Normal Light] Light position is now vec2, separate light height as a separate property.
This commit is contained in:
parent
9966fdfdb7
commit
8658db47c9
27 changed files with 337 additions and 325 deletions
|
@ -35,7 +35,7 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
__txtx("widget_area_two_points", "Two points"),
|
||||
]);
|
||||
|
||||
onModifySingle[0] = function(val) { #region
|
||||
onModifySingle[0] = function(val) {
|
||||
var v = toNumber(val);
|
||||
var m = onModify(v, 0);
|
||||
|
||||
|
@ -47,9 +47,9 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
m |= onModify(v, 3);
|
||||
|
||||
return m;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
onModifySingle[1] = function(val) { #region
|
||||
onModifySingle[1] = function(val) {
|
||||
var v = toNumber(val);
|
||||
var m = onModify(v, 1);
|
||||
|
||||
|
@ -61,9 +61,9 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
m |= onModify(v, 3);
|
||||
|
||||
return m;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
onModifySingle[2] = function(val) { #region
|
||||
onModifySingle[2] = function(val) {
|
||||
var v = toNumber(val);
|
||||
var m = onModify(v, 2);
|
||||
|
||||
|
@ -75,9 +75,9 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
m |= onModify(v, 3);
|
||||
|
||||
return m;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
onModifySingle[3] = function(val) { #region
|
||||
onModifySingle[3] = function(val) {
|
||||
var v = toNumber(val);
|
||||
var m = onModify(v, 3);
|
||||
|
||||
|
@ -89,26 +89,26 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
m |= onModify(v, 2);
|
||||
|
||||
return m;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
for(var i = 0; i < 4; i++) { #region
|
||||
for(var i = 0; i < 4; i++) {
|
||||
tb[i] = new textBox(TEXTBOX_INPUT.number, onModifySingle[i]);
|
||||
tb[i].slidable = true;
|
||||
tb[i].hide = true;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setSlideSpeed = function(speed) { #region
|
||||
static setSlideSpeed = function(speed) {
|
||||
for(var i = 0; i < 4; i++)
|
||||
tb[i].setSlidable(speed);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
for(var i = 0; i < 4; i++)
|
||||
tb[i].interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
switch(mode) {
|
||||
case AREA_MODE.two_point :
|
||||
case AREA_MODE.area :
|
||||
|
@ -125,21 +125,21 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
|
||||
if(unit != noone && unit.reference != noone)
|
||||
unit.triggerButton.register(parent);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() { #region
|
||||
static isHovering = function() {
|
||||
for( var i = 0, n = array_length(tb); i < n; i++ ) if(tb[i].isHovering()) return true;
|
||||
return false;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
for(var i = 0; i < 4; i++) tb[i].setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.display_data, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _display_data, _m) { #region
|
||||
static draw = function(_x, _y, _w, _h, _data, _display_data, _m) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -172,7 +172,7 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
var _bx = _x + _w - _bs;
|
||||
var _by = _y + _h / 2 - _bs / 2;
|
||||
|
||||
if(buttonInstant(THEME.button_hide, _bx, _by, _bs, _bs, _m, active, hover, tooltip, THEME.inspector_area_type, mode) == 2) { #region
|
||||
if(buttonInstant(THEME.button_hide, _bx, _by, _bs, _bs, _m, active, hover, tooltip, THEME.inspector_area_type, mode) == 2) {
|
||||
switch(mode) {
|
||||
case AREA_MODE.area : //area to padding
|
||||
var cx = array_safe_get_fast(_data, 0);
|
||||
|
@ -214,13 +214,13 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
}
|
||||
|
||||
onModify((mode + 1) % 3, 5);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
var _bx = _x + _w - _bs;
|
||||
var _by = _y + _h + ui(4) + _h / 2 - _bs / 2;
|
||||
var _btxt = __txtx("widget_area_fill_surface", "Fill surface");
|
||||
|
||||
if(buttonInstant(THEME.button_hide, _bx, _by, _bs, _bs, _m, active, hover, _btxt, THEME.fill, 0) == 2) { #region
|
||||
if(buttonInstant(THEME.button_hide, _bx, _by, _bs, _bs, _m, active, hover, _btxt, THEME.fill, 0) == 2) {
|
||||
var cnvt = unit != noone && unit.mode == VALUE_UNIT.reference;
|
||||
|
||||
switch(mode) {
|
||||
|
@ -246,12 +246,12 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
onModify(cnvt? 1 : ss[1], 3);
|
||||
break;
|
||||
}
|
||||
} #endregion
|
||||
}
|
||||
|
||||
_w -= _bs + ui(4);
|
||||
}
|
||||
|
||||
if(_w - _bs > ui(100)) { #region
|
||||
if(_w - _bs > ui(100)) {
|
||||
var _bx = _x;
|
||||
var _by = _y + _h / 2 - _bs / 2;
|
||||
|
||||
|
@ -274,13 +274,13 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
_x +=_bs + ui(4);
|
||||
}
|
||||
|
||||
} #endregion
|
||||
}
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y + _h + ui(4), _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y + _h + ui(4), _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y + _h + ui(4), _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y + _h + ui(4), _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
for(var i = 0; i < 4; i++)
|
||||
tb[i].setFocusHover(active, hover);
|
||||
|
@ -290,7 +290,7 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
var tb_w = _w / 2;
|
||||
var tb_h = _h;
|
||||
|
||||
if(mode == AREA_MODE.area) { #region
|
||||
if(mode == AREA_MODE.area) {
|
||||
var tb_x0 = _x;
|
||||
var tb_y0 = _y;
|
||||
|
||||
|
@ -308,9 +308,9 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
|
||||
tb[2].draw(tb_x0, tb_y1, tb_w, tb_h, array_safe_get_fast(_data, 2), _m);
|
||||
tb[3].draw(tb_x1, tb_y1, tb_w, tb_h, array_safe_get_fast(_data, 3), _m);
|
||||
#endregion
|
||||
|
||||
} else if(mode == AREA_MODE.padding) { #region
|
||||
|
||||
} else if(mode == AREA_MODE.padding) {
|
||||
var tb_lx = _x;
|
||||
var tb_ly = _y;
|
||||
|
||||
|
@ -334,9 +334,9 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
|
||||
tb[1].draw(tb_tx, tb_ty, tb_w, tb_h, array_safe_get_fast(_data, 1), _m);
|
||||
tb[3].draw(tb_bx, tb_by, tb_w, tb_h, array_safe_get_fast(_data, 3), _m);
|
||||
#endregion
|
||||
|
||||
} else if(mode == AREA_MODE.two_point) { #region
|
||||
|
||||
} else if(mode == AREA_MODE.two_point) {
|
||||
var tb_x0 = _x;
|
||||
var tb_y0 = _y;
|
||||
|
||||
|
@ -354,17 +354,17 @@ function areaBox(_onModify, _unit = noone) : widget() constructor {
|
|||
|
||||
tb[2].draw(tb_x0, tb_y1, tb_w, tb_h, array_safe_get_fast(_data, 2), _m);
|
||||
tb[3].draw(tb_x1, tb_y1, tb_w, tb_h, array_safe_get_fast(_data, 3), _m);
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
resetFocus();
|
||||
|
||||
return h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new areaBox(onModify, unit);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -19,56 +19,56 @@ function buttonClass(_onClick, _icon = noone) : widget() constructor {
|
|||
toggled = false;
|
||||
context = noone;
|
||||
|
||||
static setContext = function(struct) { #region
|
||||
static setContext = function(struct) {
|
||||
onClick = method(struct, onClick);
|
||||
return self;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setLua = function(_lua_thread, _lua_key, _lua_func) { #region
|
||||
static setLua = function(_lua_thread, _lua_key, _lua_func) {
|
||||
lua_thread = _lua_thread;
|
||||
lua_thread_key = _lua_key;
|
||||
onClick = method(self, _lua_func);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static trigger = function() { #region
|
||||
static trigger = function() {
|
||||
clicked = true;
|
||||
|
||||
if(!is_callable(onClick))
|
||||
return noone;
|
||||
triggered = true;
|
||||
onClick();
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isTriggered = function() { #region
|
||||
static isTriggered = function() {
|
||||
var t = triggered;
|
||||
triggered = false;
|
||||
return t;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setIcon = function(_icon, _index = 0, _blend = c_white) { #region
|
||||
static setIcon = function(_icon, _index = 0, _blend = c_white) {
|
||||
icon = _icon;
|
||||
icon_index = _index;
|
||||
icon_blend = _blend;
|
||||
return self;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setText = function(_text) { #region
|
||||
static setText = function(_text) {
|
||||
text = _text;
|
||||
return self;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setTooltip = function(_tip) { #region
|
||||
static setTooltip = function(_tip) {
|
||||
tooltip = _tip;
|
||||
return self;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _m, spr = THEME.button_def, blend = c_white) { #region
|
||||
static draw = function(_x, _y, _w, _h, _m, spr = THEME.button_def, blend = c_white) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -120,9 +120,9 @@ function buttonClass(_onClick, _icon = noone) : widget() constructor {
|
|||
if(mouse_release(mb_left)) pressed = false;
|
||||
|
||||
return _h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new buttonClass(onClick);
|
||||
|
||||
cln.icon = icon;
|
||||
|
@ -134,7 +134,7 @@ function buttonClass(_onClick, _icon = noone) : widget() constructor {
|
|||
cln.blend = blend;
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
||||
|
||||
function buttonInstant(spr, _x, _y, _w, _h, _m, _act, _hvr, _tip = "", _icon = noone, _icon_index = 0, _icon_blend = COLORS._main_icon, _icon_alpha = 1, _icon_scale = 1) {
|
||||
|
|
|
@ -111,17 +111,17 @@ function buttonColor(_onApply, dialog = noone) : widget() constructor {
|
|||
var hoverRect = ihover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _bww, _y + _h);
|
||||
|
||||
if(hoverRect) {
|
||||
draw_sprite_stretched(THEME.button_def, 1, _x, _y, _cw, _h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 1, _x, _y, _cw, _h, boxColor);
|
||||
|
||||
if(mouse_press(mb_left, iactive))
|
||||
trigger();
|
||||
|
||||
if(mouse_click(mb_left, iactive)) {
|
||||
draw_sprite_stretched(THEME.button_def, 2, _x, _y, _cw, _h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 3, _x, _y, _cw, _h, COLORS._main_accent, 1);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 2, _x, _y, _cw, _h, boxColor);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 3, _x, _y, _cw, _h, COLORS._main_accent);
|
||||
}
|
||||
} else {
|
||||
draw_sprite_stretched(THEME.button_def, 0, _x, _y, _cw, _h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 0, _x, _y, _cw, _h, boxColor);
|
||||
if(mouse_press(mb_left)) deactivate();
|
||||
}
|
||||
|
||||
|
|
|
@ -91,16 +91,16 @@ function buttonGradient(_onApply, dialog = noone) : widget() constructor {
|
|||
h = _h + ui(22);
|
||||
|
||||
if(hoverRect) {
|
||||
draw_sprite_stretched(THEME.button_def, 1, _x, _y, _w, h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 1, _x, _y, _w, h, boxColor);
|
||||
if(mouse_press(mb_left, iactive))
|
||||
trigger();
|
||||
|
||||
if(mouse_click(mb_left, iactive)) {
|
||||
draw_sprite_stretched(THEME.button_def, 2, _x, _y, _w, h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 2, _x, _y, _w, h, boxColor);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 3, _x, _y, _w, h, COLORS._main_accent, 1);
|
||||
}
|
||||
} else {
|
||||
draw_sprite_stretched(THEME.button_def, 0, _x, _y, _w, h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 0, _x, _y, _w, h, boxColor);
|
||||
if(mouse_press(mb_left)) deactivate();
|
||||
}
|
||||
|
||||
|
|
|
@ -51,6 +51,9 @@ function buttonGroup(_data, _onClick) : widget() constructor {
|
|||
setParam(params);
|
||||
sb_small.setParam(params);
|
||||
|
||||
for(var i = 0; i < array_length(data); i++)
|
||||
buttons[i].setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.m, params.rx, params.ry);
|
||||
}
|
||||
|
||||
|
@ -105,7 +108,7 @@ function buttonGroup(_data, _onClick) : widget() constructor {
|
|||
var spr = i == 0 ? buttonSpr[0] : (i == amo - 1? buttonSpr[2] : buttonSpr[1]);
|
||||
|
||||
if(_selecting == i) {
|
||||
draw_sprite_stretched(spr, 2, floor(bx), _y, ceil(bww), _h);
|
||||
draw_sprite_stretched_ext(spr, 2, floor(bx), _y, ceil(bww), _h, boxColor);
|
||||
draw_sel = [spr, bx];
|
||||
} else {
|
||||
buttons[i].draw(floor(bx), _y, ceil(bww), _h, _m, spr);
|
||||
|
|
|
@ -86,16 +86,16 @@ function buttonPalette(_onApply, dialog = noone) : widget() constructor {
|
|||
h = _h + array_length(_color) * _colr_h + ui(2);
|
||||
|
||||
if(hoverRect) {
|
||||
draw_sprite_stretched(THEME.button_def, 1, _x, _y, _w, h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 1, _x, _y, _w, h, boxColor);
|
||||
if(mouse_press(mb_left, iactive))
|
||||
trigger();
|
||||
|
||||
if(mouse_click(mb_left, iactive)) {
|
||||
draw_sprite_stretched(THEME.button_def, 2, _x, _y, _w, h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 2, _x, _y, _w, h, boxColor);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 3, _x, _y, _w, h, COLORS._main_accent, 1);
|
||||
}
|
||||
} else {
|
||||
draw_sprite_stretched(THEME.button_def, 0, _x, _y, _w, h);
|
||||
draw_sprite_stretched_ext(THEME.button_def, 0, _x, _y, _w, h, boxColor);
|
||||
if(mouse_press(mb_left)) deactivate();
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ function controlPointBox(_onModify) : widget() constructor {
|
|||
return false;
|
||||
}
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
tbCx.setParam(params);
|
||||
tbCy.setParam(params);
|
||||
|
@ -74,7 +74,7 @@ function controlPointBox(_onModify) : widget() constructor {
|
|||
scMode.setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.m, params.rx, params.ry);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _m, _rx, _ry) {
|
||||
x = _x;
|
||||
|
@ -101,8 +101,8 @@ function controlPointBox(_onModify) : widget() constructor {
|
|||
var _ww = _w / 2;
|
||||
var _wh = _h;
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, yy, _w, _wh, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, yy, _w, _wh, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, yy, _w, _wh, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, yy, _w, _wh, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
tbCx.draw(_x, yy, _ww, _wh, _cx, _m);
|
||||
tbCy.draw(_x + _ww, yy, _ww, _wh, _cy, _m);
|
||||
|
@ -112,8 +112,8 @@ function controlPointBox(_onModify) : widget() constructor {
|
|||
case PUPPET_FORCE_MODE.move:
|
||||
case PUPPET_FORCE_MODE.puppet:
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, yy, _w, _wh, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, yy, _w, _wh, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, yy, _w, _wh, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, yy, _w, _wh, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
tbFx.label = "fx";
|
||||
tbFy.label = "fy";
|
||||
|
@ -132,8 +132,8 @@ function controlPointBox(_onModify) : widget() constructor {
|
|||
|
||||
case PUPPET_FORCE_MODE.wind:
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, yy, _w, _wh, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, yy, _w, _wh, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, yy, _w, _wh, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, yy, _w, _wh, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
tbFx.label = __txt("strength");
|
||||
tbW.label = __txt("width");
|
||||
|
@ -151,9 +151,9 @@ function controlPointBox(_onModify) : widget() constructor {
|
|||
return yy - _y;
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new controlPointBox(onModify);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -88,11 +88,11 @@ function cornerBox(_onModify, _unit = noone) : widget() constructor {
|
|||
_x += _bs + ui(4);
|
||||
}
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y + _h + ui(4), _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y + _h + ui(4), _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y + _h + ui(4), _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y + _h + ui(4), _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
var tb_w = _w / 2;
|
||||
var tb_h = _h;
|
||||
|
@ -120,9 +120,9 @@ function cornerBox(_onModify, _unit = noone) : widget() constructor {
|
|||
return h;
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new cornerBox(onModify, unit);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -129,8 +129,8 @@ function matrixGrid(_type, _size, _onModify, _unit = noone) : widget() construct
|
|||
|
||||
var ww = _w / size;
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, ww * size, _h * size, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, ww * size, _h * size, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, ww * size, _h * size, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, ww * size, _h * size, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
for(var i = 0; i < size; i++)
|
||||
for(var j = 0; j < size; j++) {
|
||||
|
@ -150,9 +150,9 @@ function matrixGrid(_type, _size, _onModify, _unit = noone) : widget() construct
|
|||
return h;
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new matrixGrid(type, size, onModify, unit);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
global.loop_nodes = [ "Node_Iterate", "Node_Iterate_Each" ];
|
||||
|
||||
#macro INAME internalName == ""? name : internalName
|
||||
#macro SHOW_PARAM (show_parameter && previewable)
|
||||
|
||||
enum CACHE_USE {
|
||||
none,
|
||||
|
@ -94,11 +95,12 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
y = _y;
|
||||
|
||||
name_height = 16;
|
||||
w = 128;
|
||||
h = 128;
|
||||
w = 128;
|
||||
h = 128;
|
||||
min_w = w;
|
||||
min_h = name_height;
|
||||
fix_h = h;
|
||||
con_h = 0;
|
||||
|
||||
h_param = h;
|
||||
will_setHeight = false;
|
||||
|
||||
|
@ -618,17 +620,17 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
} run_in(1, function() /*=>*/ { updateIO() });
|
||||
|
||||
static setHeight = function() {
|
||||
w = show_parameter? attributes.node_param_width : min_w;
|
||||
w = SHOW_PARAM? attributes.node_param_width : min_w;
|
||||
|
||||
if(!auto_height) return;
|
||||
junction_draw_hei_y = show_parameter? 32 : 24;
|
||||
junction_draw_pad_y = show_parameter? min_h : 32;
|
||||
junction_draw_hei_y = SHOW_PARAM? 32 : 24;
|
||||
junction_draw_pad_y = SHOW_PARAM? min_h : 32;
|
||||
|
||||
var _hi, _ho;
|
||||
|
||||
if(previewable) {
|
||||
_hi = junction_draw_pad_y + show_parameter * 4;
|
||||
_ho = junction_draw_pad_y + show_parameter * 4;
|
||||
_hi = junction_draw_pad_y + SHOW_PARAM * 4;
|
||||
_ho = junction_draw_pad_y + SHOW_PARAM * 4;
|
||||
|
||||
} else {
|
||||
junction_draw_hei_y = 16;
|
||||
|
@ -667,8 +669,6 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
h = max(min_h, _prev_surf * 128, _hi, _ho);
|
||||
if(attributes.node_height) h = max(h, attributes.node_height);
|
||||
|
||||
fix_h = h;
|
||||
|
||||
}
|
||||
|
||||
static getJunctionList = function() { #region ////getJunctionList
|
||||
|
@ -1145,7 +1145,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
out_cache_len = ds_list_size(outputs);
|
||||
}
|
||||
|
||||
var _iny = yy + (junction_draw_pad_y + junction_draw_hei_y * 0.5 * show_parameter) * _s;
|
||||
var _iny = yy + (junction_draw_pad_y + junction_draw_hei_y * 0.5 * SHOW_PARAM) * _s;
|
||||
|
||||
for( var i = 0, n = ds_list_size(inputs); i < n; i++ ) {
|
||||
jun = inputs[| i];
|
||||
|
@ -1162,7 +1162,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
}
|
||||
|
||||
xx = xx + w * _s;
|
||||
var _outy = yy + (junction_draw_pad_y + junction_draw_hei_y * 0.5 * show_parameter) * _s;
|
||||
var _outy = yy + (junction_draw_pad_y + junction_draw_hei_y * 0.5 * SHOW_PARAM) * _s;
|
||||
|
||||
for(var i = 0; i < outputs_amount; i++) {
|
||||
var idx = outputs_index[i];
|
||||
|
@ -1173,7 +1173,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
_outy += junction_draw_hei_y * _s * jun.isVisible();
|
||||
}
|
||||
|
||||
if(show_parameter) h = h_param;
|
||||
if(SHOW_PARAM) h = h_param;
|
||||
|
||||
onPreDraw(_x, _y, _s, _iny, _outy);
|
||||
}
|
||||
|
@ -1196,25 +1196,32 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
static drawGetBbox = function(xx, yy, _s) {
|
||||
var pad_label = draw_name && display_parameter.avoid_label;
|
||||
|
||||
var _w = w;
|
||||
var _h = show_parameter? min_h : h;
|
||||
var x0 = xx;
|
||||
var x1 = xx + w * _s;
|
||||
var y0 = yy;
|
||||
var y1 = yy + h * _s;
|
||||
|
||||
_w *= _s;
|
||||
_h *= _s;
|
||||
if(pad_label) y0 += name_height * _s;
|
||||
if(SHOW_PARAM) y1 = yy + con_h * _s;
|
||||
|
||||
_w -= max(draw_padding, draw_pad_w) * 2;
|
||||
_h -= max(draw_padding, draw_pad_h) * 2 + name_height * _s * pad_label;
|
||||
x0 += max(draw_padding, draw_pad_w);
|
||||
x1 -= max(draw_padding, draw_pad_w);
|
||||
y0 += max(draw_padding, draw_pad_h);
|
||||
y1 -= max(draw_padding, draw_pad_h);
|
||||
|
||||
var _xc = xx + w * _s / 2;
|
||||
var _yc = yy + _h / 2 + pad_label * name_height * _s + draw_padding;
|
||||
var _w = x1 - x0;
|
||||
var _h = y1 - y0;
|
||||
|
||||
var _xc = (x0 + x1) / 2;
|
||||
var _yc = (y0 + y1) / 2;
|
||||
|
||||
_w *= display_parameter.preview_scale / 100;
|
||||
_h *= display_parameter.preview_scale / 100;
|
||||
|
||||
var x0 = _xc - _w / 2;
|
||||
var x1 = _xc + _w / 2;
|
||||
var y0 = _yc - _h / 2;
|
||||
var y1 = _yc + _h / 2;
|
||||
x0 = _xc - _w / 2;
|
||||
x1 = _xc + _w / 2;
|
||||
y0 = _yc - _h / 2;
|
||||
y1 = _yc + _h / 2;
|
||||
|
||||
return __draw_bbox.fromPoints(x0, y0, x1, y1);
|
||||
}
|
||||
|
@ -1272,12 +1279,10 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
var rx = PANEL_GRAPH.x;
|
||||
var ry = PANEL_GRAPH.y;
|
||||
|
||||
var jy = _y + junction_draw_pad_y * _s + wh / 2;
|
||||
var jy = _y + con_h * _s + wh / 2;
|
||||
|
||||
var boundH = _x > draw_boundary[0] - w * _s && _x < draw_boundary[2];
|
||||
var boundV = 1;//_y > draw_boundary[1] - h * _s && _y < draw_boundary[3];
|
||||
var extY = 0;
|
||||
var drawText = _s > 0.5;
|
||||
var extY = 0;
|
||||
var drwT = _s > 0.5;
|
||||
|
||||
for(var i = 0, n = array_length(inputDisplayList); i < n; i++) {
|
||||
var jun = inputDisplayList[i];
|
||||
|
@ -1285,7 +1290,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
|
||||
jun.y = jy;
|
||||
|
||||
if(drawText) {
|
||||
if(drwT) {
|
||||
draw_set_text(f_sdf, fa_left, fa_center, jun.color_display);
|
||||
draw_text_add(lx, jun.y, jun.getName(), _s * 0.25);
|
||||
|
||||
|
@ -1305,13 +1310,14 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
_param.h = wh - 4 * _s;
|
||||
_param.x = wx;
|
||||
_param.y = jy - _param.h / 2;
|
||||
|
||||
|
||||
_param.data = jun.showValue();
|
||||
_param.m = _m;
|
||||
_param.rx = rx;
|
||||
_param.ry = ry;
|
||||
_param.s = wh;
|
||||
_param.font = f_p2;
|
||||
_param.color = getColor();
|
||||
|
||||
if(is_instanceof(jun, checkBox))
|
||||
_param.halign = fa_center;
|
||||
|
@ -1321,14 +1327,13 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
var _h = wd.drawParam(_param);
|
||||
jun.graphWidgetH = _h / _s;
|
||||
|
||||
extY += max(0, (jun.graphWidgetH + 4) - junction_draw_hei_y);
|
||||
|
||||
if(wd.isHovering()) draggable = false;
|
||||
extY += max(0, jun.graphWidgetH + 4);
|
||||
jy += (jun.graphWidgetH + 4) * _s;
|
||||
|
||||
jy += (jun.graphWidgetH + 4) * _s;
|
||||
if(wd.isHovering()) draggable = false;
|
||||
}
|
||||
|
||||
h = fix_h + extY;
|
||||
h = con_h + extY + 4;
|
||||
h_param = h;
|
||||
}
|
||||
|
||||
|
@ -1718,7 +1723,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
catch(e) { log_warning("NODE onDrawNode", exception_print(e)); }
|
||||
}
|
||||
|
||||
if(show_parameter) drawJunctionWidget(xx, yy, _mx, _my, _s, _hover, _focus);
|
||||
if(SHOW_PARAM) drawJunctionWidget(xx, yy, _mx, _my, _s, _hover, _focus);
|
||||
|
||||
draw_name = false;
|
||||
if((previewable && _s >= 0.75) || (!previewable && h * _s >= name_height * .5)) drawNodeName(xx, yy, _s);
|
||||
|
@ -2298,13 +2303,9 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
INLINE
|
||||
|
||||
min_w = _w;
|
||||
min_h = _h;
|
||||
min_h = name_height; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
con_h = _h;
|
||||
|
||||
if(_apply) {
|
||||
w = _w;
|
||||
h = _h;
|
||||
}
|
||||
if(_apply) { w = _w; h = _h; }
|
||||
}
|
||||
|
||||
static move = function(_x, _y, _s) {
|
||||
|
|
|
@ -9,7 +9,7 @@ function Node_Normal_Light(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
|
|||
|
||||
inputs[| 3] = nodeValue("Ambient", self, JUNCTION_CONNECT.input, VALUE_TYPE.color, c_black);
|
||||
|
||||
inputs[| 4] = nodeValue("Light position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0, -1 ])
|
||||
inputs[| 4] = nodeValue("Light position", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ])
|
||||
.setDisplay(VALUE_DISPLAY.vector)
|
||||
.setUnitRef(function(index) { return getDimension(index); });
|
||||
|
||||
|
@ -25,9 +25,11 @@ function Node_Normal_Light(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
|
|||
inputs[| 9] = nodeValue("Active", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true);
|
||||
active_index = 9;
|
||||
|
||||
inputs[| 10] = nodeValue("Light height", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1);
|
||||
|
||||
input_display_list = [ 9, 0,
|
||||
["Normal", false], 1, 2,
|
||||
["Light", false], 3, 8, 4, 5, 6, 7
|
||||
["Light", false], 3, 8, 4, 10, 5, 6, 7
|
||||
];
|
||||
|
||||
outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
|
||||
|
@ -58,14 +60,17 @@ function Node_Normal_Light(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro
|
|||
var _light_int = _data[6];
|
||||
var _light_col = _data[7];
|
||||
var _light_typ = _data[8];
|
||||
var _light_hei = _data[10];
|
||||
|
||||
var _dim = surface_get_dimension(_data[0]);
|
||||
|
||||
surface_set_shader(_outSurf, sh_normal_light);
|
||||
shader_set_surface("normalMap", _map);
|
||||
shader_set_f("normalHeight", _hei);
|
||||
shader_set_f("dimension", surface_get_width_safe(_data[0]), surface_get_height_safe(_data[0]));
|
||||
shader_set_color("ambiance", _amb);
|
||||
shader_set_f("normalHeight", _hei);
|
||||
shader_set_f("dimension", _dim);
|
||||
shader_set_color("ambiance", _amb);
|
||||
|
||||
shader_set_f("lightPosition", _light_pos[0], _light_pos[1], _light_pos[2] / 100, _light_ran );
|
||||
shader_set_f("lightPosition", _light_pos[0], _light_pos[1], -_light_hei / 100, _light_ran );
|
||||
shader_set_color("lightColor", _light_col);
|
||||
shader_set_f("lightIntensity", _light_int);
|
||||
shader_set_i("lightType", _light_typ);
|
||||
|
|
|
@ -37,14 +37,14 @@ function Node_Number(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
|||
|
||||
outputs[| 0] = nodeValue("Number", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0);
|
||||
|
||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
|
||||
static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||
var __ax = getInputData(0);
|
||||
if(is_array(__ax)) return;
|
||||
|
||||
inputs[| 0].drawOverlay(hover, active, _x, _y, _s, _mx, _my, _snx, _sny);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static step = function() { #region
|
||||
static step = function() {
|
||||
var int = getInputData(1);
|
||||
var disp = getInputData(2);
|
||||
|
||||
|
@ -78,7 +78,7 @@ function Node_Number(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
|||
}
|
||||
|
||||
outputs[| 0].setType(int? VALUE_TYPE.integer : VALUE_TYPE.float);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static processNumber = function(_val, _int) {
|
||||
if(is_string(_val)) return _int? round(toNumber(_val)) : toNumber(_val);
|
||||
|
@ -92,13 +92,13 @@ function Node_Number(_x, _y, _group = noone) : Node(_x, _y, _group) constructor
|
|||
return _val;
|
||||
}
|
||||
|
||||
static update = function() { #region
|
||||
static update = function() {
|
||||
var _dat = getInputData(0);
|
||||
var _int = getInputData(1);
|
||||
|
||||
var _res = processNumber(_dat, _int);
|
||||
outputs[| 0].setValue(_res);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { #region
|
||||
var bbox = drawGetBbox(xx, yy, _s);
|
||||
|
|
|
@ -42,15 +42,15 @@ function paddingBox(_onModify, _unit = noone) : widget() constructor {
|
|||
|
||||
static setSlideSpeed = function(speed) { for(var i = 0; i < 4; i++) tb[i].setSlidable(speed); }
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
b_link.interactable = interactable;
|
||||
|
||||
for( var i = 0; i < 4; i++ )
|
||||
tb[i].interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
b_link.register();
|
||||
|
||||
if(unit != noone && unit.reference != noone)
|
||||
|
@ -60,7 +60,7 @@ function paddingBox(_onModify, _unit = noone) : widget() constructor {
|
|||
tb[0].register(parent);
|
||||
tb[1].register(parent);
|
||||
tb[3].register(parent);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() {
|
||||
for( var i = 0, n = array_length(tb); i < n; i++ ) if(tb[i].isHovering()) return true;
|
||||
|
@ -103,11 +103,11 @@ function paddingBox(_onModify, _unit = noone) : widget() constructor {
|
|||
}
|
||||
}
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y + _h + ui(4), _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y + _h + ui(4), _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y + _h + ui(4), _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y + _h + ui(4), _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
var tb_w = _w / 2;
|
||||
var tb_h = _h;
|
||||
|
@ -134,9 +134,9 @@ function paddingBox(_onModify, _unit = noone) : widget() constructor {
|
|||
return h;
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new paddingBox(onModify, unit);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -88,9 +88,9 @@ function pathAnchorBox(_onModify) : widget() constructor {
|
|||
return h;
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new pathAnchorBox(onModify);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -39,11 +39,11 @@ function pathArrayBox(_target, _data, _onClick) : widget() constructor {
|
|||
}
|
||||
|
||||
var click = false;
|
||||
draw_sprite_stretched(THEME.textbox, 3, _x, _y, _w, _h);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor);
|
||||
|
||||
if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + _h)) {
|
||||
hovering = true;
|
||||
draw_sprite_stretched(THEME.textbox, 1, _x, _y, _w, _h);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 1, _x, _y, _w, _h, boxColor);
|
||||
|
||||
if(mouse_press(mb_left, active)) {
|
||||
trigger();
|
||||
|
@ -53,7 +53,7 @@ function pathArrayBox(_target, _data, _onClick) : widget() constructor {
|
|||
if(mouse_click(mb_left, active))
|
||||
draw_sprite_stretched(THEME.textbox, 2, _x, _y, _w, _h);
|
||||
} else {
|
||||
draw_sprite_stretched(THEME.textbox, 0, _x, _y, _w, _h);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor);
|
||||
if(mouse_press(mb_left)) deactivate();
|
||||
}
|
||||
|
||||
|
@ -82,9 +82,9 @@ function pathArrayBox(_target, _data, _onClick) : widget() constructor {
|
|||
return h;
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new pathArrayBox(target, data, onClick);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -124,8 +124,8 @@ function quarternionBox(_onModify) : widget() constructor {
|
|||
|
||||
var _dispDat = _data;
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
for(var i = 0; i < size; i++) {
|
||||
var _a = _dispDat[i];
|
||||
|
@ -143,8 +143,8 @@ function quarternionBox(_onModify) : widget() constructor {
|
|||
return _h;
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new quarternionBox(onModify);
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -35,38 +35,38 @@ function rangeBox(_type, _onModify) : widget() constructor {
|
|||
tb[i].label = labels[i];
|
||||
}
|
||||
|
||||
static setSlideSpeed = function(speed) { #region
|
||||
static setSlideSpeed = function(speed) {
|
||||
tb[0].setSlidable(speed);
|
||||
tb[1].setSlidable(speed);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
|
||||
tb[0].interactable = interactable;
|
||||
if(!linked)
|
||||
tb[1].interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
tb[0].register(parent);
|
||||
if(!linked)
|
||||
tb[1].register(parent);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() { #region
|
||||
static isHovering = function() {
|
||||
for( var i = 0, n = array_length(tb); i < n; i++ ) if(tb[i].isHovering()) return true;
|
||||
return false;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
for(var i = 0; i < 2; i++) tb[i].setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.display_data, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _display_data, _m) { #region
|
||||
static draw = function(_x, _y, _w, _h, _data, _display_data, _m) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -104,8 +104,8 @@ function rangeBox(_type, _onModify) : widget() constructor {
|
|||
var ww = linked? _w : _w / 2;
|
||||
disp_w = disp_w == 0? ww : lerp_float(disp_w, ww, 5);
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
if(linked) {
|
||||
tb[0].setFocusHover(active, hover);
|
||||
|
@ -123,11 +123,11 @@ function rangeBox(_type, _onModify) : widget() constructor {
|
|||
resetFocus();
|
||||
|
||||
return h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new rangeBox(type, onModify);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -17,25 +17,25 @@ function rotator(_onModify, _step = -1) : widget() constructor {
|
|||
|
||||
halign = fa_center;
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
tb_value.interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
tb_value.register(parent);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() { return dragging || tb_value.hovering; }
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
tb_value.setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _m, draw_tb = true) { #region
|
||||
static draw = function(_x, _y, _w, _h, _data, _m, draw_tb = true) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -56,8 +56,8 @@ function rotator(_onModify, _step = -1) : widget() constructor {
|
|||
var _tx = _drawRot? _x + _r + ui(4) : _x;
|
||||
var _tw = _drawRot? _w - _r - ui(4) : _w;
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y, _tw, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y, _tw, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y, _tw, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y, _tw, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
tb_value.setFocusHover(active, hover);
|
||||
tb_value.draw(_tx, _y, _tw, _h, _data, _m);
|
||||
|
@ -123,11 +123,11 @@ function rotator(_onModify, _step = -1) : widget() constructor {
|
|||
resetFocus();
|
||||
|
||||
return h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new rotator(onModify, valStep);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -21,26 +21,26 @@ function rotatorRandom(_onModify) : widget() constructor {
|
|||
__txtx("widget_rotator_random_double_span", "Double Span")
|
||||
]);
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
tb_min_0.interactable = interactable;
|
||||
tb_max_0.interactable = interactable;
|
||||
|
||||
if(mode == 2 || mode == 3) tb_min_1.interactable = interactable;
|
||||
if(mode == 2) tb_max_1.interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
tb_min_0.register(parent);
|
||||
tb_max_0.register(parent);
|
||||
|
||||
if(mode == 2 || mode == 3) tb_min_1.register(parent);
|
||||
if(mode == 2) tb_max_1.register(parent);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() { return dragging || tb_min_0.hovering || tb_max_0.hovering || tb_min_1.hovering || tb_max_1.hovering; }
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
tb_min_0.setParam(params);
|
||||
tb_max_0.setParam(params);
|
||||
|
@ -48,9 +48,9 @@ function rotatorRandom(_onModify) : widget() constructor {
|
|||
tb_max_1.setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _m) { #region
|
||||
static draw = function(_x, _y, _w, _h, _data, _m) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -69,17 +69,17 @@ function rotatorRandom(_onModify) : widget() constructor {
|
|||
|
||||
switch(mode) {
|
||||
case 2 :
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y + _h + ui(4), _tw, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y + _h + ui(4), _tw, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y + _h + ui(4), _tw, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y + _h + ui(4), _tw, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
case 0 :
|
||||
case 1 :
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y, _tw, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y, _tw, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y, _tw, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y, _tw, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
break;
|
||||
|
||||
case 3 :
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y, _tw, h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y, _tw, h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y, _tw, h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y, _tw, h, boxColor, 0.5 + 0.5 * interactable);
|
||||
}
|
||||
|
||||
if(_drawRot) {
|
||||
|
@ -458,11 +458,10 @@ function rotatorRandom(_onModify) : widget() constructor {
|
|||
resetFocus();
|
||||
|
||||
return h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new rotatorRandom(onModify);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -11,28 +11,28 @@ function rotatorRange(_onModify) : widget() constructor {
|
|||
tb_min = new textBox(TEXTBOX_INPUT.number, function(val) { return onModify(val, 0); } ).setSlidable([ 0.1, 15 ], true); tb_min.hide = true;
|
||||
tb_max = new textBox(TEXTBOX_INPUT.number, function(val) { return onModify(val, 1); } ).setSlidable([ 0.1, 15 ], true); tb_max.hide = true;
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
tb_min.interactable = interactable;
|
||||
tb_max.interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
tb_min.register(parent);
|
||||
tb_max.register(parent);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() { return dragging || tb_min.hovering || tb_max.hovering; }
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
tb_min.setParam(params);
|
||||
tb_max.setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _m) { #region
|
||||
static draw = function(_x, _y, _w, _h, _data, _m) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -46,8 +46,8 @@ function rotatorRange(_onModify) : widget() constructor {
|
|||
var _tx = _drawRot? _x + _r + ui(4) : _x;
|
||||
var _tw = _drawRot? _w - _r - ui(4) : _w;
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y, _tw, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y, _tw, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _tx, _y, _tw, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _tx, _y, _tw, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
_tw /= 2;
|
||||
|
||||
|
@ -125,11 +125,10 @@ function rotatorRange(_onModify) : widget() constructor {
|
|||
resetFocus();
|
||||
|
||||
return h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new rotatorRange(onModify);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -12,33 +12,33 @@ function sliderRange(_step, _int, _range, _onModify) : widget() constructor {
|
|||
tb_value_min.hide = true;
|
||||
tb_value_max.hide = true;
|
||||
|
||||
static setSlideSpeed = function(speed) { #region
|
||||
static setSlideSpeed = function(speed) {
|
||||
tb_value_min.setSlidable(speed);
|
||||
tb_value_max.setSlidable(speed);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
tb_value_min.interactable = interactable;
|
||||
tb_value_max.interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
tb_value_min.register(parent);
|
||||
tb_value_max.register(parent);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() { return tb_value_min.hovering || tb_value_max.hovering; }
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
tb_value_min.setParam(params);
|
||||
tb_value_max.setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _m) { #region
|
||||
static draw = function(_x, _y, _w, _h, _data, _m) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -46,7 +46,7 @@ function sliderRange(_step, _int, _range, _onModify) : widget() constructor {
|
|||
if(!is_real(_data[0])) return h;
|
||||
if(!is_real(_data[1])) return h;
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1);
|
||||
|
||||
var _minn = slide_range[0];
|
||||
var _maxx = slide_range[1];
|
||||
|
@ -59,17 +59,17 @@ function sliderRange(_step, _int, _range, _onModify) : widget() constructor {
|
|||
curr_range[1] = (_currMax <= _maxx)? _maxx : _maxx + ceil(abs(_currMax - _maxx) / _rang) * _rang;
|
||||
}
|
||||
|
||||
var lx = _w * (_currMin - curr_range[0]) / (curr_range[1] - curr_range[0]);
|
||||
var lx = _w * ((_currMin ) - curr_range[0]) / (curr_range[1] - curr_range[0]);
|
||||
var lw = _w * ((_currMax - _currMin) - curr_range[0]) / (curr_range[1] - curr_range[0]);
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 4, _x + lx, _y, lw, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 4, _x + lx, _y, lw, _h, boxColor, 1);
|
||||
|
||||
var tb_w = _w / 2;
|
||||
|
||||
if(tb_value_min.selecting || tb_value_max.selecting) {
|
||||
draw_sprite_stretched_ext(THEME.textbox, 1, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 1, _x, _y, _w, _h, boxColor, 1);
|
||||
} else {
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
}
|
||||
|
||||
tb_value_min.curr_range[0] = curr_range[0];
|
||||
|
@ -85,11 +85,11 @@ function sliderRange(_step, _int, _range, _onModify) : widget() constructor {
|
|||
tb_value_max.draw(_x + tb_w, _y, tb_w, _h, _data[1], _m);
|
||||
|
||||
return h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new sliderRange(stepSize, isInt, slide_range, onModify);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -8,13 +8,13 @@ function textArrayBox(arraySet, data, onModify = noone) : widget() constructor {
|
|||
hide = false;
|
||||
open = false;
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.m, params.rx, params.ry);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _m, _rx = 0, _ry = 0) { #region
|
||||
static draw = function(_x, _y, _w, _h, _m, _rx = 0, _ry = 0) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -39,13 +39,13 @@ function textArrayBox(arraySet, data, onModify = noone) : widget() constructor {
|
|||
|
||||
h = th;
|
||||
|
||||
draw_sprite_stretched(THEME.textbox, 3, _x, _y, _w, th);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, th, boxColor);
|
||||
|
||||
if(open) {
|
||||
draw_sprite_stretched_ext(THEME.textbox, 2, _x, _y, _w, th, COLORS._main_accent, 1);
|
||||
} else {
|
||||
if(hover && point_in_rectangle(_m[0], _m[1], _x, _y, _x + _w, _y + th)) {
|
||||
draw_sprite_stretched_ext(THEME.textbox, 1, _x, _y, _w, th, c_white, 0.5 + !hide * 0.5);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 1, _x, _y, _w, th, boxColor, 0.5 + !hide * 0.5);
|
||||
if(mouse_press(mb_left, active)) {
|
||||
with(dialogCall(o_dialog_arrayBox, _rx + _x, _ry + _y + th)) {
|
||||
arrayBox = other;
|
||||
|
@ -53,7 +53,7 @@ function textArrayBox(arraySet, data, onModify = noone) : widget() constructor {
|
|||
}
|
||||
}
|
||||
} else if(!hide)
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, th, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, th, boxColor, 0.5 + 0.5 * interactable);
|
||||
}
|
||||
|
||||
var tx = _x + ui(4);
|
||||
|
@ -76,11 +76,11 @@ function textArrayBox(arraySet, data, onModify = noone) : widget() constructor {
|
|||
|
||||
resetFocus();
|
||||
return th;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new textArrayBox(getArray, data, onModify);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -72,13 +72,13 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
|
||||
static setOnRelease = function(release) { onRelease = release; return self; }
|
||||
|
||||
static modifyValue = function(value) { #region
|
||||
static modifyValue = function(value) {
|
||||
if(input == TEXTBOX_INPUT.number) {
|
||||
if(use_range) value = clamp(value, range_min, range_max);
|
||||
}
|
||||
|
||||
onModify(value);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setSlidable = function(slideStep = slide_speed, _slide_int = false, _slide_range = noone) {
|
||||
slidable = true;
|
||||
|
@ -90,13 +90,13 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
return self;
|
||||
}
|
||||
|
||||
static setRange = function(_rng_min, _rng_max) { #region
|
||||
static setRange = function(_rng_min, _rng_max) {
|
||||
use_range = true;
|
||||
range_min = _rng_min;
|
||||
range_max = _rng_max;
|
||||
|
||||
return self;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setFont = function(font) { self.font = font; return self; }
|
||||
static setLabel = function(label) { self.label = label; return self; }
|
||||
|
@ -104,7 +104,7 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
static setPadding = function(padding) { self.padding = padding; return self; }
|
||||
static setEmpty = function() { no_empty = false; return self; }
|
||||
|
||||
static activate = function() { #region
|
||||
static activate = function() {
|
||||
WIDGET_CURRENT = self;
|
||||
WIDGET_CURRENT_SCROLL = parent;
|
||||
parentFocus();
|
||||
|
@ -120,9 +120,9 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
keyboard_lastkey = -1;
|
||||
|
||||
if(PEN_USE) keyboard_virtual_show(input == TEXTBOX_INPUT.number? kbv_type_numbers : kbv_type_default, kbv_returnkey_default, kbv_autocapitalize_none, true);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static deactivate = function() { #region
|
||||
static deactivate = function() {
|
||||
if(WIDGET_CURRENT != self) return;
|
||||
|
||||
apply();
|
||||
|
@ -133,9 +133,9 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
UNDO_HOLDING = false;
|
||||
|
||||
if(PEN_USE) keyboard_virtual_hide();
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static onKey = function(key) { #region
|
||||
static onKey = function(key) {
|
||||
if(KEYBOARD_PRESSED == vk_left) {
|
||||
if(key_mod_press(SHIFT)) {
|
||||
if(cursor_select == -1)
|
||||
|
@ -155,9 +155,9 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
|
||||
move_cursor(1);
|
||||
}
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static apply = function(release = false) { #region
|
||||
static apply = function(release = false) {
|
||||
var _val = _input_text;
|
||||
disp_x_to = 0;
|
||||
|
||||
|
@ -184,14 +184,14 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
|
||||
if(IS_PATREON) shake_amount = PREFERENCES.textbox_shake / 4;
|
||||
return false;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static move_cursor = function(delta) { #region
|
||||
static move_cursor = function(delta) {
|
||||
var ll = string_length(_input_text) + 1;
|
||||
cursor = safe_mod(cursor + delta + ll, ll);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static editText = function() { #region
|
||||
static editText = function() {
|
||||
var edited = false;
|
||||
|
||||
#region text editor
|
||||
|
@ -341,9 +341,9 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
} else if(auto_update && (edited || keyboard_check_pressed(vk_anykey))) {
|
||||
apply();
|
||||
}
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static display_text = function(_x, _y, _text, _w, _m = -1) { #region
|
||||
static display_text = function(_x, _y, _text, _w, _m = -1) {
|
||||
draw_set_alpha(0.5 + 0.5 * interactable);
|
||||
_y += ui(1); //Huh?
|
||||
|
||||
|
@ -389,13 +389,13 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor {
|
|||
if(mouse_release(mb_left, active))
|
||||
click_block = false;
|
||||
}
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.m, params.halign, params.valign);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _text = "", _m = mouse_ui, halign = fa_left, valign = fa_top) { #region
|
||||
x = _x;
|
||||
|
|
|
@ -25,13 +25,13 @@ function transformBox(_onModify) : widget() constructor {
|
|||
tb[i].label = labels[i];
|
||||
}
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
|
||||
for( var i = 0, n = array_length(tb); i < n; i++ )
|
||||
tb[i].setInteract(interactable);
|
||||
rot.setInteract(interactable);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) {
|
||||
tb[TRANSFORM.pos_x].register(parent);
|
||||
|
@ -41,20 +41,20 @@ function transformBox(_onModify) : widget() constructor {
|
|||
tb[TRANSFORM.sca_y].register(parent);
|
||||
}
|
||||
|
||||
static isHovering = function() { #region
|
||||
static isHovering = function() {
|
||||
for( var i = 0, n = array_length(tb); i < n; i++ ) if(tb[i].isHovering()) return true;
|
||||
return hovering;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
rot.setParam(params);
|
||||
for(var i = 0; i < 5; i++) tb[i].setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _m) { #region
|
||||
static draw = function(_x, _y, _w, _h, _data, _m) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -82,8 +82,8 @@ function transformBox(_onModify) : widget() constructor {
|
|||
|
||||
if(_lab) draw_text_add(_x, _y + tbh / 2, __txt("Position"));
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x + lbw, _y, _w - lbw, tbh, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x + lbw, _y, _w - lbw, tbh, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x + lbw, _y, _w - lbw, tbh, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x + lbw, _y, _w - lbw, tbh, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
tb[TRANSFORM.pos_x].draw(_x + lbw, _y, tbw, tbh, _data[TRANSFORM.pos_x], _m);
|
||||
tb[TRANSFORM.pos_y].draw(_x + lbw + tbw, _y, tbw, tbh, _data[TRANSFORM.pos_y], _m);
|
||||
|
@ -97,8 +97,8 @@ function transformBox(_onModify) : widget() constructor {
|
|||
draw_set_text(font, fa_left, fa_center, CDEF.main_dkgrey);
|
||||
if(_lab) draw_text_add(_x, _y + tbh / 2, __txt("Scale"));
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x + lbw, _y, _w - lbw, tbh, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x + lbw, _y, _w - lbw, tbh, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x + lbw, _y, _w - lbw, tbh, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x + lbw, _y, _w - lbw, tbh, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
tbw = array_length(_data) > 4? (_w - lbw) / 2 : _w - lbw;
|
||||
|
||||
|
@ -109,11 +109,11 @@ function transformBox(_onModify) : widget() constructor {
|
|||
resetFocus();
|
||||
|
||||
return h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new transformBox(onModify);
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -156,8 +156,8 @@ function vectorBox(_size, _onModify, _unit = noone) : widget() constructor {
|
|||
var ww = per_line? _w : _w / sz;
|
||||
|
||||
if(!per_line) {
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
}
|
||||
|
||||
for(var i = 0; i < sz; i++) {
|
||||
|
|
|
@ -31,44 +31,44 @@ function vectorRangeBox(_size, _type, _onModify, _unit = noone) : widget() const
|
|||
|
||||
extras = -1;
|
||||
|
||||
for(var i = 0; i < size; i++) { #region
|
||||
for(var i = 0; i < size; i++) {
|
||||
tb[i] = new textBox(_type, onModifySingle[i]);
|
||||
tb[i].slidable = true;
|
||||
tb[i].hide = true;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setSlideSpeed = function(speed) { #region
|
||||
static setSlideSpeed = function(speed) {
|
||||
for(var i = 0; i < size; i++)
|
||||
tb[i].setSlidable(speed);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
|
||||
var _step = linked? 2 : 1;
|
||||
for( var i = 0; i < size; i += _step )
|
||||
tb[i].interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
var _step = linked? 2 : 1;
|
||||
for( var i = 0; i < size; i += _step )
|
||||
tb[i].register(parent);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() {
|
||||
for( var i = 0, n = array_length(tb); i < n; i++ ) if(tb[i].isHovering()) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
static drawParam = function(params) { #region
|
||||
static drawParam = function(params) {
|
||||
setParam(params);
|
||||
for(var i = 0; i < size; i++) tb[i].setParam(params);
|
||||
|
||||
return draw(params.x, params.y, params.w, params.h, params.data, params.display_data, params.m);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static draw = function(_x, _y, _w, _h, _data, _display_data, _m) { #region
|
||||
static draw = function(_x, _y, _w, _h, _data, _display_data, _m) {
|
||||
x = _x;
|
||||
y = _y;
|
||||
w = _w;
|
||||
|
@ -112,8 +112,8 @@ function vectorRangeBox(_size, _type, _onModify, _unit = noone) : widget() const
|
|||
var ww = _w / 2;
|
||||
|
||||
if(linked) {
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
for( var i = 0; i < 2; i++ ) {
|
||||
var bx = _x + ww * i;
|
||||
|
@ -127,8 +127,8 @@ function vectorRangeBox(_size, _type, _onModify, _unit = noone) : widget() const
|
|||
for( var j = 0; j < 2; j++ ) {
|
||||
var by = _y + (_h + ui(4)) * j;
|
||||
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, by, _w, _h, c_white, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, by, _w, _h, c_white, 0.5 + 0.5 * interactable);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 3, _x, by, _w, _h, boxColor, 1);
|
||||
draw_sprite_stretched_ext(THEME.textbox, 0, _x, by, _w, _h, boxColor, 0.5 + 0.5 * interactable);
|
||||
|
||||
for( var i = 0; i < 2; i++ ) {
|
||||
var bx = _x + ww * i;
|
||||
|
@ -143,14 +143,14 @@ function vectorRangeBox(_size, _type, _onModify, _unit = noone) : widget() const
|
|||
resetFocus();
|
||||
|
||||
return h;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { #region
|
||||
static clone = function() {
|
||||
var cln = new vectorRangeBox(size, type, onModify, unit);
|
||||
|
||||
cln.axis = axis;
|
||||
cln.extras = extras;
|
||||
|
||||
return cln;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -22,6 +22,8 @@ function widget() constructor {
|
|||
sep_axis = false;
|
||||
unit = noone;
|
||||
|
||||
boxColor = c_white;
|
||||
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = 0;
|
||||
|
@ -30,69 +32,71 @@ function widget() constructor {
|
|||
rx = 0;
|
||||
ry = 0;
|
||||
|
||||
static setLua = function(_lua_thread, _lua_key, _lua_func) { #region
|
||||
static setLua = function(_lua_thread, _lua_key, _lua_func) {
|
||||
lua_thread = _lua_thread;
|
||||
lua_thread_key = _lua_key;
|
||||
onModify = method(self, _lua_func);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setInteract = function(interactable = noone) { #region
|
||||
static setInteract = function(interactable = noone) {
|
||||
self.interactable = interactable;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static register = function(parent = noone) { #region
|
||||
static register = function(parent = noone) {
|
||||
if(!interactable) return;
|
||||
|
||||
array_push(WIDGET_ACTIVE, self);
|
||||
self.parent = parent;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setParam = function(params) { #region
|
||||
static setParam = function(params) {
|
||||
font = params.font;
|
||||
rx = params.rx;
|
||||
ry = params.ry;
|
||||
|
||||
sep_axis = params.sep_axis;
|
||||
} #endregion
|
||||
|
||||
boxColor = params.color;
|
||||
}
|
||||
|
||||
static trigger = function() { }
|
||||
|
||||
static parentFocus = function() { #region
|
||||
static parentFocus = function() {
|
||||
if(parent == noone) return;
|
||||
|
||||
if(y < 0)
|
||||
parent.scroll_y_to += abs(y) + ui(16);
|
||||
else if(y + ui(16) > parent.surface_h)
|
||||
parent.scroll_y_to -= abs(parent.surface_h - y) + h + ui(16);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static isHovering = function() { return hovering; }
|
||||
|
||||
static activate = function() { #region
|
||||
static activate = function() {
|
||||
if(!interactable) return;
|
||||
|
||||
WIDGET_CURRENT = self;
|
||||
WIDGET_CURRENT_SCROLL = parent;
|
||||
parentFocus();
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static deactivate = function() { #region
|
||||
static deactivate = function() {
|
||||
if(WIDGET_CURRENT != self) return;
|
||||
WIDGET_CURRENT = noone;
|
||||
WIDGET_CURRENT_SCROLL = noone;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static setFocusHover = function(active = false, hover = false) { #region
|
||||
static setFocusHover = function(active = false, hover = false) {
|
||||
self.active = interactable && active;
|
||||
self.hover = interactable && hover;
|
||||
self.iactive = active;
|
||||
self.ihover = hover;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static resetFocus = function() { #region
|
||||
static resetFocus = function() {
|
||||
active = false;
|
||||
hover = false;
|
||||
} #endregion
|
||||
}
|
||||
|
||||
static clone = function() { return variable_clone(self); }
|
||||
|
||||
|
@ -119,5 +123,6 @@ function widgetParam(x, y, w, h, data, display_data = {}, m = mouse_ui, rx = 0,
|
|||
|
||||
self.font = f_p0;
|
||||
|
||||
sep_axis = false;
|
||||
color = c_white;
|
||||
sep_axis = false;
|
||||
}
|
Loading…
Reference in a new issue