Pixel-Composer/scripts/dialog_management/dialog_management.gml

47 lines
1.2 KiB
Text
Raw Normal View History

2024-01-28 15:53:41 +07:00
function dialogCall(_dia, _x = noone, _y = noone, param = {}, create = false) { #region
2022-11-01 09:06:03 +07:00
if(_x == noone) _x = WIN_SW / 2;
if(_y == noone) _y = WIN_SH / 2;
2023-12-18 14:27:31 +07:00
var dia = !create && instance_exists(_dia)? instance_find(_dia, 0) : instance_create_depth(_x, _y, 0, _dia, param);
2022-01-13 11:24:03 +07:00
dia.x = _x;
dia.y = _y;
2023-01-25 12:49:00 +07:00
dia.xstart = _x;
dia.ystart = _y;
dia.resetPosition();
2022-01-13 11:24:03 +07:00
2022-09-21 11:09:40 +07:00
var args = variable_struct_get_names(param);
2023-07-25 20:12:40 +02:00
for( var i = 0, n = array_length(args); i < n; i++ )
2022-09-21 11:09:40 +07:00
variable_instance_set(dia, args[i], variable_struct_get(param, args[i]));
2023-03-12 08:28:21 +07:00
setFocus(dia.id, "Dialog");
return dia;
2024-01-28 15:53:41 +07:00
} #endregion
2023-03-12 08:28:21 +07:00
2024-01-28 15:53:41 +07:00
function dialogPanelCall(_panel, _x = noone, _y = noone, params = {}) { #region
2023-03-12 08:28:21 +07:00
if(_x == noone) _x = WIN_SW / 2;
if(_y == noone) _y = WIN_SH / 2;
var dia = instance_create_depth(_x, _y, 0, o_dialog_panel);
variable_instance_set_struct(dia, params);
2023-03-12 08:28:21 +07:00
dia.setContent(_panel);
dia.x = _x;
dia.y = _y;
dia.xstart = _x;
dia.ystart = _y;
dia.resetPosition();
2022-09-21 11:09:40 +07:00
2023-01-25 12:49:00 +07:00
setFocus(dia.id, "Dialog");
2022-12-10 11:06:01 +07:00
return dia;
2024-01-28 15:53:41 +07:00
} #endregion
function colorSelectorCall(defColor, onApply) { #region
var dialog = dialogCall(o_dialog_color_selector);
dialog.setDefault(defColor);
dialog.selector.onApply = onApply;
dialog.onApply = onApply;
return dialog;
} #endregion