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