added slider tests
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 11 Jun 2021 04:44:11 +0000 (23:44 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 11 Jun 2021 04:44:11 +0000 (23:44 -0500)
src/tower.onyx

index 97f688d196e98e627db215a568750809bffe2777..1409310de7d3e9f7e8082b8271b330dda2215db2 100644 (file)
@@ -54,8 +54,6 @@ poll_events :: () {
             case .MouseMove do ui.update_mouse_position(~~ event.mouse.pos_x, ~~ event.mouse.pos_y);
             
             case .Resize {
-                printf("Window was resized to: %i %i\n", event.resize.width, event.resize.height);
-
                 window_width = event.resize.width;
                 window_height = event.resize.height;
 
@@ -90,6 +88,7 @@ counter := 0;
 test_button_count := 1;
 
 check_buttons : [10] bool
+slider_values : [7] f32
 
 draw :: () {
     gl.clearColor(0, 0, 0, 1);
@@ -106,19 +105,29 @@ draw :: () {
     ui.draw_rect(right_top, .{ 0.5, 0.4, 0.4 });
 
     {
-        panel, _ := split_vertical(right_top, left_width=300);
+        panel, slider_panel := split_vertical(right_top, left_width=300);
         checkbox : ui.Rectangle;
 
+        x, y := ui.Rectangle.bottom_left(panel);
+        w, h := ui.Rectangle.dimensions(panel);
+        gfx.scissor(x, ~~window_height - y, w, h);
+
         ui.draw_rect(panel, .{ 0, 0, 0, 0.3 });
         
         str_buffer : [32] u8;
 
         i := 1;
         for ^button_value: check_buttons {
-            checkbox, panel = split_horizontal(panel, top_height=48);
+            checkbox, panel = split_horizontal(panel, top_height=32);
             
+            theme := ui.default_checkbox_theme;
+            if i == 6 {
+                theme.text_color = .{ 0.5, 0.5, 1 };
+                theme.background_color = .{ 0.5, 0.5, 1 };
+            }
+
             text := conv.str_format("Check me! %i", ~~ str_buffer, i);
-            ui.checkbox(checkbox, button_value, text, increment=i);
+            ui.checkbox(checkbox, button_value, text, increment=i, theme=^theme);
 
             i += 1;
         }
@@ -128,6 +137,27 @@ draw :: () {
         if ui.button(button_rect, "Clear all") {
             for ^value: check_buttons do *value = false;
         }
+
+        gfx.scissor_disable();
+
+        slider : ui.Rectangle;
+        slider_theme := ui.default_slider_theme;
+        slider_theme.box_border_width = 2.0f;
+        slider_theme.bar_hover_color = .{ .5, .5, 1 };
+
+        i = 1;
+        for ^value: slider_values {
+            slider, slider_panel = split_horizontal(slider_panel, top_height=48, padding=4);
+            slider = padding(slider, left=12, right=12);
+            ui.slider(slider, value, 0, ~~(10 + i), "Test Slider", theme=^slider_theme, increment=i);
+
+            ui.draw_text(padding(slider, left=8, top=8), conv.str_format("Slider %i: %f", ~~str_buffer, i, *value));
+            i += 1;
+
+            if !check_buttons[5] && i > 5 do break;
+        }
+
+        ui.draw_text(slider_panel, "This text is underneath all of the slider!");
     }
 
     {
@@ -142,7 +172,7 @@ draw :: () {
 
     {
         button_rect: ui.Rectangle;
-        sidebar := left;
+        sidebar := padding(left, left=12, right=12, top=12, bottom=12);
 
         red_theme := ui.default_button_theme;
         red_theme.text_color = .{ 1, 0, 0 };
@@ -153,15 +183,14 @@ draw :: () {
         }
 
         if counter % 2 == 0 {
-            red_theme = ui.default_button_theme;
             button_rect, sidebar = split_horizontal(sidebar, top_height=75, padding=10);
-            ui.button(button_rect, "Another Button", ^red_theme);
+            ui.button(button_rect, "Another Button");
         }
 
         button_rect, sidebar = split_horizontal(sidebar, top_height=75, padding = 10);
-        if ui.button(button_rect, "Increase Buttons", ^red_theme) do test_button_count += 1;
+        if ui.button(button_rect, "Increase Buttons") do test_button_count += 1;
         button_rect, sidebar = split_horizontal(sidebar, top_height=75, padding = 10);
-        if ui.button(button_rect, "Decrease Buttons", ^red_theme) do test_button_count -= 1;
+        if ui.button(button_rect, "Decrease Buttons") do test_button_count -= 1;
 
         test_button_count = math.clamp(test_button_count, 0, 10);