switch to using String_Buffer
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sun, 13 Jun 2021 21:35:21 +0000 (16:35 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sun, 13 Jun 2021 21:35:21 +0000 (16:35 -0500)
src/tower.onyx

index 34a27fbea198513518e91785a0fa24c9e2d6d0da..f82307e9c2f2dc28adc5612e89b95116d985b359 100644 (file)
@@ -19,13 +19,8 @@ main :: (args: [] cstr) {
 
 
 
-    textbox1_str.buffer = memory.make_slice(u8, 64);
-    textbox1_str.buffer.count = 0;
-    textbox1_str.capacity = 64;
-
-    textbox2_str.buffer = memory.make_slice(u8, 64);
-    textbox2_str.buffer.count = 0;
-    textbox2_str.capacity = 64;
+    textbox1_str = string.buffer_make(memory.make_slice(u8, 64));
+    textbox2_str = string.buffer_make(memory.make_slice(u8, 64));
 
     start_loop :: () -> void #foreign "game" "start_loop" ---
     start_loop();
@@ -127,8 +122,8 @@ radio_options :: enum {
 }
 radio_value := radio_options.Apples;
 
-textbox1_str : ui.String_Buffer;
-textbox2_str : ui.String_Buffer;
+textbox1_str : string.String_Buffer;
+textbox2_str : string.String_Buffer;
 
 draw :: () {
     gl.clearColor(0, 0, 0, 1);
@@ -187,8 +182,8 @@ draw :: () {
 
         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);
+            slider, slider_panel = split_horizontal(slider_panel, top_height=48);
+            slider = padding(slider, left=12, right=12, top=4);
             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));
@@ -213,13 +208,17 @@ draw :: () {
         ui.radio(padding(radio, left=12), ^radio_value, .Apples, "Another Apples");
 
 
-        textbox: ui.Rectangle;
-        textbox, slider_panel = split_horizontal(slider_panel, top_height=48, padding=8);
-        ui.textbox(padding(textbox, left=12, right=12), ^textbox1_str);
-        textbox, slider_panel = split_horizontal(slider_panel, top_height=48, padding=8);
-        ui.textbox(padding(textbox, left=12, right=12), ^textbox2_str);
+        textbox_part: ui.Rectangle;
+        textbox_part, slider_panel = split_horizontal(slider_panel, top_height=72, padding=8);
+
+        left_textbox, right_textbox := split_vertical(textbox_part, left_percent=0.5f);
+        ui.textbox(padding(left_textbox, left=12, right=12), ^textbox1_str);
+        ui.textbox(padding(right_textbox, left=12, right=12), ^textbox2_str);
 
-        ui.draw_text(slider_panel, conv.str_format("Pos: %i\nHash: %i", ~~str_buffer, ui.textbox_editing_state.cursor_position, ui.textbox_editing_state.hash));
+        if ui.button(.{ slider_panel.x0, slider_panel.y0, slider_panel.x0 + 400, slider_panel.y0 + 100 }, "Clear textboxes") {
+            textbox1_str.count = 0;
+            textbox2_str.count = 0;
+        }
     }
 
     {