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