Pixel-Composer/objects/_p_dialog/Step_1.gml
2022-01-13 11:24:03 +07:00

71 lines
No EOL
1.8 KiB
Text

/// @description init
if !ready exit;
#region destroy
var x0 = dialog_x - dialog_resizable * 6;
var x1 = dialog_x + dialog_w + dialog_resizable * 6;
var y0 = dialog_y - dialog_resizable * 6;
var y1 = dialog_y + dialog_h + dialog_resizable * 6;
if(!point_in_rectangle(mouse_mx, mouse_my, x0, y0, x1, y1)) {
if(destroy_on_click_out && mouse_check_button_pressed(mb_left))
instance_destroy(self);
}
doDrag();
#endregion
#region resize
if(dialog_resizable) {
if(dialog_resizing & 1 << 0 != 0) {
var ww = dialog_resiz_sw + (mouse_mx - dialog_resiz_mx);
ww = clamp(ww, dialog_w_min, dialog_w_max);
dialog_w = ww;
}
if(dialog_resizing & 1 << 1 != 0) {
var hh = dialog_resiz_sh + (mouse_my - dialog_resiz_my);
hh = clamp(hh, dialog_h_min, dialog_h_max);
dialog_h = hh;
}
if(mouse_check_button_released(mb_left)) dialog_resizing = 0;
if(distance_to_line(mouse_mx, mouse_my, dialog_x + dialog_w, dialog_y,
dialog_x + dialog_w, dialog_y + dialog_h) < 12) {
CURSOR = cr_size_we;
if(FOCUS == self && mouse_check_button_pressed(mb_left)) {
dialog_resizing |= 1 << 0;
dialog_resiz_sw = dialog_w;
dialog_resiz_mx = mouse_mx;
dialog_resiz_my = mouse_my;
}
}
if(distance_to_line(mouse_mx, mouse_my, dialog_x, dialog_y + dialog_h,
dialog_x + dialog_w, dialog_y + dialog_h) < 12) {
if(CURSOR == cr_size_we)
CURSOR = cr_size_nwse;
else
CURSOR = cr_size_ns;
if(FOCUS == self && mouse_check_button_pressed(mb_left)) {
dialog_resizing |= 1 << 1;
dialog_resiz_sh = dialog_h;
dialog_resiz_mx = mouse_mx;
dialog_resiz_my = mouse_my;
}
}
}
#endregion
#region resize
if(_dialog_h != dialog_h || _dialog_w != dialog_w) {
_dialog_h = dialog_h;
_dialog_w = dialog_w;
if(onResize != -1) onResize();
}
#endregion