From 33d678cc4fa09fef800f549c5afd7b0bead508f8 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 13 Jun 2021 16:35:21 -0500 Subject: [PATCH] switch to using String_Buffer --- src/tower.onyx | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/src/tower.onyx b/src/tower.onyx index 34a27fb..f82307e 100644 --- a/src/tower.onyx +++ b/src/tower.onyx @@ -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; + } } { -- 2.25.1