2022-01-13 05:24:03 +01:00
|
|
|
/// @description init
|
|
|
|
event_inherited();
|
|
|
|
|
|
|
|
#region data
|
|
|
|
draggable = false;
|
2022-11-01 03:06:03 +01:00
|
|
|
destroy_on_click_out = false;
|
2022-01-13 05:24:03 +01:00
|
|
|
alarm[0] = -1;
|
|
|
|
menu = 1;
|
2022-11-03 11:44:49 +01:00
|
|
|
hght = ui(36);
|
2022-11-01 03:06:03 +01:00
|
|
|
children = ds_list_create();
|
|
|
|
ds_list_add(children, self);
|
2022-01-13 05:24:03 +01:00
|
|
|
|
|
|
|
function setMenu(_menu) {
|
|
|
|
menu = _menu;
|
|
|
|
dialog_x = x;
|
|
|
|
dialog_y = y;
|
|
|
|
|
|
|
|
dialog_w = 0;
|
|
|
|
dialog_h = 0;
|
|
|
|
|
2022-11-01 03:06:03 +01:00
|
|
|
while(ds_list_size(children) > 1) {
|
|
|
|
var ch = children[| 1];
|
|
|
|
instance_destroy(children[| 1]);
|
|
|
|
ds_list_delete(children, 1);
|
|
|
|
}
|
|
|
|
|
2022-01-13 05:24:03 +01:00
|
|
|
draw_set_text(f_p0, fa_center, fa_center, c_white);
|
|
|
|
for(var i = 0; i < array_length(menu); i++) {
|
|
|
|
if(!is_array(menu[i])) {
|
2022-11-03 11:44:49 +01:00
|
|
|
dialog_h += ui(8);
|
2022-01-13 05:24:03 +01:00
|
|
|
continue;
|
|
|
|
}
|
|
|
|
draw_set_font(f_p0);
|
2022-11-03 11:44:49 +01:00
|
|
|
var ww = string_width(menu[i][0]) + ui(64);
|
2022-01-13 05:24:03 +01:00
|
|
|
|
|
|
|
if(array_length(menu[i]) > 2) {
|
2022-11-01 03:06:03 +01:00
|
|
|
if(menu[i][2] == ">") {
|
|
|
|
|
|
|
|
} else if(is_array(menu[i][2])) {
|
|
|
|
var _key = find_hotkey(menu[i][2][0], menu[i][2][1]);
|
|
|
|
if(_key) {
|
|
|
|
draw_set_font(f_p1);
|
|
|
|
var ss = key_get_name(_key.key, _key.modi);
|
2022-11-03 11:44:49 +01:00
|
|
|
ww += string_width(ss) + ui(16);
|
2022-11-01 03:06:03 +01:00
|
|
|
}
|
2022-01-13 05:24:03 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
dialog_w = max(dialog_w, ww);
|
|
|
|
|
|
|
|
if(is_array(menu[i][1]))
|
|
|
|
dialog_h += hght;
|
|
|
|
dialog_h += hght;
|
|
|
|
}
|
|
|
|
|
2022-11-03 11:44:49 +01:00
|
|
|
if(dialog_x + dialog_w > WIN_W - ui(16))
|
|
|
|
dialog_x = WIN_W - ui(16) - dialog_w;
|
|
|
|
if(dialog_y + dialog_h > WIN_H - ui(16))
|
|
|
|
dialog_y = WIN_H - ui(16) - dialog_h;
|
2022-01-13 05:24:03 +01:00
|
|
|
|
|
|
|
ready = true;
|
|
|
|
}
|
|
|
|
#endregion
|