From 709879ee56d31fe543a0ad882713bd4e3d17d2d2 Mon Sep 17 00:00:00 2001 From: dam Date: Thu, 17 Aug 2023 20:28:47 +0100 Subject: Added kscurses and testing program. --- kscurses/ui/parent.jai | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 kscurses/ui/parent.jai (limited to 'kscurses/ui/parent.jai') diff --git a/kscurses/ui/parent.jai b/kscurses/ui/parent.jai new file mode 100644 index 0000000..af459de --- /dev/null +++ b/kscurses/ui/parent.jai @@ -0,0 +1,33 @@ +UI_Parent :: struct { + #as using base : UI_Elem; + active_element : *UI_Elem; +} + +__last_set : *UI_Elem; + +set_active_recursive :: (ui_elem : *UI_Elem) { + assert(!__last_set); __last_set = ui_elem; + assert(ui_elem.cursor_state == .OUTSIDE); ui_elem.cursor_state = .ON; + + current := ui_elem; + while 1 { + parent := current.parent; + if !parent break; + assert(!parent.active_element); + parent.active_element = current; + current = xx parent; + } +} +unset_active_recursive :: (ui_elem : *UI_Elem) { + assert(__last_set == ui_elem); __last_set = null; + assert(ui_elem.cursor_state == .ON); ui_elem.cursor_state = .OUTSIDE; + + current := ui_elem; + while 1 { + parent := current.parent; + if !parent break; + assert(parent.active_element == current); + parent.active_element = null; + current = xx parent; + } +} \ No newline at end of file -- cgit v1.2.3