diff options
Diffstat (limited to 'kscurses/ui/popup_manager.jai')
| -rw-r--r-- | kscurses/ui/popup_manager.jai | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/kscurses/ui/popup_manager.jai b/kscurses/ui/popup_manager.jai deleted file mode 100644 index 704ad49..0000000 --- a/kscurses/ui/popup_manager.jai +++ /dev/null @@ -1,65 +0,0 @@ -MAX_POPUP_LEVES :: 10; - -UI_Popup_Manager :: struct { - #as using base_parent : UI_Parent = .{type = .POPUP_MANAGER, box_type = .NONE}; - - layers : [MAX_POPUP_LEVES]UI_Popup; - - layers_count := 0; -} - -set_background :: (using ui_popup_manager : *UI_Popup_Manager, scene : UI_Scene) { - assert(layers_count == 0); - layers[0] = .{root = scene.root, entry = scene.entry}; - scene.root.parent = xx ui_popup_manager; - layers_count = 1; -} - -handle_key_popup_manager :: (ui_elem : *UI_Elem, key : Key) -> handled:bool { - using ui_popup_manager := cast(*UI_Popup_Manager) ui_elem; - assert(layers_count > 0, "0 layers in popup manager"); - if !handle_key(active_element, key) { - if key == .ESCAPE && layers_count > 1 { - pop(ui_popup_manager); - return true; - } else { - return false; - } - } else { - return true; - } -} - -c_draw_popup_manager :: (canvas : *Canvas, ui_elem : *UI_Elem, zone : Ibox2, style : *UI_Style) -> bool { - using ui_popup_manager := cast(*UI_Popup_Manager) ui_elem; - assert(layers_count > 0, "0 layers in popup manager"); - for i : 0..layers_count-1 { - popup_zone := zone; - ok : bool; - if layers[i].size != .{-1, -1} then { - popup_zone, ok = fit_in_center(zone, layers[i].size); - if !ok return false; - } - if !c_draw(canvas, layers[i].root, popup_zone, style) return false; - } - return true; -} - -pop :: (using ui_popup_manager : *UI_Popup_Manager) { - assert(layers_count > 1, "can't pop background"); - layers_count -= 1; - unset_active_recursive(__last_set); - layers[layers_count].root.parent = null; - set_active_recursive(layers[layers_count - 1].entry); - -} -push :: (using ui_popup_manager : *UI_Popup_Manager, scene : UI_Popup) { - assert(layers_count < MAX_POPUP_LEVES, "too much popup layers"); - unset_active_recursive(__last_set); - - layers[layers_count] = scene; - scene.root.parent = xx ui_popup_manager; - set_active_recursive(layers[layers_count].entry); - - layers_count += 1; -}
\ No newline at end of file |
