function dialogCall(_dia, _x = noone, _y = noone, param = {}, create = false) { if(_x == noone) _x = WIN_SW / 2; if(_y == noone) _y = WIN_SH / 2; var dia = !create && instance_exists(_dia)? instance_find(_dia, 0) : instance_create_depth(_x, _y, 0, _dia, param); dia.x = _x; dia.y = _y; dia.xstart = _x; dia.ystart = _y; dia.resetPosition(); var args = variable_struct_get_names(param); for( var i = 0, n = array_length(args); i < n; i++ ) variable_instance_set(dia, args[i], variable_struct_get(param, args[i])); setFocus(dia.id, "Dialog"); return dia; } function dialogPanelCall(_panel, _x = noone, _y = noone, params = {}) { 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); dia.setContent(_panel); dia.x = _x; dia.y = _y; dia.xstart = _x; dia.ystart = _y; dia.anchor = _panel.anchor; dia.resetPosition(); if(struct_try_get(params, "focus", true)) setFocus(dia.id, "Dialog"); return dia; } function colorSelectorCall(defColor, onApply) { var dialog = dialogCall(o_dialog_color_selector); dialog.setDefault(defColor); dialog.selector.onApply = onApply; dialog.onApply = onApply; return dialog; }