From: Brendan Hansen Date: Sat, 26 Jun 2021 21:05:08 +0000 (-0500) Subject: updated to use 'type_info' and compiler vimscript X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=HEAD;p=tower.git updated to use 'type_info' and compiler vimscript --- diff --git a/build.sh b/build.sh index 1bbe97e..0c4b168 100755 --- a/build.sh +++ b/build.sh @@ -3,13 +3,15 @@ TARGET=site/tower.wasm ONYX_INSTALLATION_FOLDER="/home/brendan/dev/c/onyx" -echo "Starting build at $(date)" +# echo "Starting build at $(date)" # Copy relative javascript modules from Onyx source directory cp "$ONYX_INSTALLATION_FOLDER/bin/onyx-loader.js" ./site/js/onyx-loader.js cp "$ONYX_INSTALLATION_FOLDER/modules/webgl2/webgl2.js" ./site/js/webgl2.js cp "$ONYX_INSTALLATION_FOLDER/modules/js_events/js_events.js" ./site/js/js_events.js -onyx -r js -V --use-post-mvp-features -o $TARGET \ +[ ! -z "$1" ] && COLOR_FLAG=--no-colors + +onyx -r js --use-post-mvp-features -o $TARGET $COLOR_FLAG --doc docs/source_reference.txt \ src/build.onyx \ -I "$ONYX_INSTALLATION_FOLDER" # Include the folder that contains the "modules" diff --git a/compiler.vim b/compiler.vim new file mode 100644 index 0000000..10636ef --- /dev/null +++ b/compiler.vim @@ -0,0 +1,2 @@ +set errorformat=%E\(%f\:%l\\,%c\)\ \%m,%C%.%# +set makeprg=./build.sh\ something diff --git a/src/tower.onyx b/src/tower.onyx index 8452890..5cc94a6 100644 --- a/src/tower.onyx +++ b/src/tower.onyx @@ -111,7 +111,7 @@ counter := 0; test_button_count := 1; check_buttons : [10] bool -slider_values : [7] f32 +slider_values : [7] f32 = f32.[ 1.0f, 2.0f, 3.0, 4.0, 5.0, 6.0, 7.0 ]; radio_options :: enum { Apples; @@ -182,7 +182,7 @@ draw :: () { for ^value: slider_values { 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.slider(slider, value, ~~ -(10 + i), ~~(10 + i), 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; @@ -191,20 +191,15 @@ draw :: () { } - // When enum metadata is embedded in the binary file, this can become a for loop. radio: ui.Rectangle; - radio, slider_panel = split_horizontal(slider_panel, top_height=32); - ui.radio(padding(radio, left=12), ^radio_value, .Apples, "Apples"); - radio, slider_panel = split_horizontal(slider_panel, top_height=32); - ui.radio(padding(radio, left=12), ^radio_value, .Bananas, "Bananas"); - - radio, slider_panel = split_horizontal(slider_panel, top_height=32); - ui.radio(padding(radio, left=12), ^radio_value, .Coconut, "Coconut"); - - radio, slider_panel = split_horizontal(slider_panel, top_height=32); - ui.radio(padding(radio, left=12), ^radio_value, .Apples, "Another Apples"); + i = 0; + for v: (cast(^type_info.Type_Info_Enum) type_info.get_type_info(radio_options)).members { + radio, slider_panel = split_horizontal(slider_panel, top_height=32); + ui.radio(padding(radio, left=12), ^radio_value, ~~v.value, v.name, increment=i); + i += 1; + } textbox_part: ui.Rectangle; textbox_part, slider_panel = split_horizontal(slider_panel, top_height=72, padding=8);