1 type TextBox 2 subscribe { _, event -> case event of 3 FlagEvent/IsFocused x -> 4 cursor.is_visible = x 5 if not x then 6 selection = None 7 let s = display_text.as_string 8 if text <> s then 9 text = s 10 11 is MouseEvent/Button -> 12 if event.action.is_press then 13 move_cursor event.x false 14 15 is MouseEvent/Move -> 16 let relative_x = event.x as i32 - event.begin_x as i32 17 + event.begin_relative_x as i32 18 move_cursor relative_x.as<u32> 19 is_mouse_move = true 20 21 else -> () } 22 23 is_clickable = true 24 is_receive_mouse_move = true 25 26 end@ text_box 27