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/progress_bar.jai | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 kscurses/ui/progress_bar.jai (limited to 'kscurses/ui/progress_bar.jai') diff --git a/kscurses/ui/progress_bar.jai b/kscurses/ui/progress_bar.jai new file mode 100644 index 0000000..23d7dc9 --- /dev/null +++ b/kscurses/ui/progress_bar.jai @@ -0,0 +1,37 @@ +UI_Progress_Bar :: struct { + #as using base : UI_Elem = .{type = .PROGRESS_BAR}; + + value : float; + value_ptr : *float; + + draw_proc := (percent : float, pix_coord : float) -> Vector3 { return ifx pix_coord < percent then Vector3.{0, 1, 0} else .{0, 0, 0}; } + show_percent := true; +} + +set_value :: (progress_bar : *UI_Progress_Bar, value : float) { + progress_bar.value = value; + progress_bar.value_ptr = null; +} +set_value_ptr :: (progress_bar : *UI_Progress_Bar, value_ptr : *float) { + progress_bar.value_ptr = value_ptr; +} + +c_draw_progress_bar :: (canvas : *Canvas, ui_elem : *UI_Elem, _zone : Ibox2, style : *UI_Style) -> bool { + using progress_bar := cast(*UI_Progress_Bar) ui_elem; + value_current := ifx value_ptr then <