aboutsummaryrefslogtreecommitdiff
path: root/kscurses/ui/popup_manager.jai
diff options
context:
space:
mode:
Diffstat (limited to 'kscurses/ui/popup_manager.jai')
-rw-r--r--kscurses/ui/popup_manager.jai65
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