1 type FlagEvent = 2 | IsVisible bool 3 | IsHovered bool 4 | IsFocused bool 5 | IsFocusable bool 6 | IsResizable bool 7 8 type MouseEvent = 9 | Button action : MouseAction 10 x : u32 11 y : u32 12 | Scroll x : f32 13 y : f32 14 | Move x : u32 15 y : u32 16 begin_x : u32 17 begin_y : u32 18 begin_relative_x : u32 19 begin_relative_y : u32 20 | BeginMove x : u32 21 y : u32 22 | EndMove x : u32 23 y : u32 24 25 type SizeEvent = 26 | Width u32 27 | Height u32 28 | MinWidth u32 29 | MaxWidth u32 30 | MinHeight u32 31 | MaxHeight u32 32 33 type ControlEvent = 34 | t@ FlagEvent 35 | t@ MouseEvent 36 | t@ SizeEvent 37 38 def is_mouse_press = case self of 39 is MouseEvent/Button -> self.action.is_press 40 else -> false 41 42 def is_mouse_release = case self of 43 is MouseEvent/Button -> self.action.is_release 44 else -> false 45