Got the first 'input box' to work. Did some changes to keyboard input

Renamed KeyboardKey to KeyCode, redid the encoding layout (preemtively getting ready for SDL later as well)

I got the input box working but it has no constraints and needs to be lifted. The scroll box construction does as well.
This commit is contained in:
2024-05-19 11:06:09 -04:00
parent b137bc542c
commit 275ffcf143
13 changed files with 782 additions and 500 deletions

View File

@ -266,18 +266,23 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
style.corner_radii[0] = 0.35
}
@static value_str : Array(rune)
if value_str.data == nil {
if value_str.header == nil {
error : AllocatorError
value_str, error = array_init_reserve(rune, persistent_slab_allocator(), Kilo)
ensure(error != AllocatorError.None, "Failed to allocate array for value_str of input_box")
array_append( & value_str, rune('_'))
ensure(error == AllocatorError.None, "Failed to allocate array for value_str of input_box")
}
if input_box.pressed {
array_clear( value_str )
}
if input_box.active {
array_append( & value_str, input.keyboard_events.chars_pressed )
array_clear( input.keyboard_events.chars_pressed )
}
else if input_box.was_active {
value, success := parse_uint(to_string(array_to_slice(value_str)))
if success {
config.engine_refresh_hz = value
}
}
else {
array_clear( value_str)
@ -286,7 +291,7 @@ ui_screen_settings_menu :: proc( captures : rawptr = nil ) -> ( should_raise : b
// input_box
{
ui_parent(input_box)
value_txt := ui_text("settings_menu.engine_refresh.refresh_value", to_str_runes_pair(value_str))
value_txt := ui_text("settings_menu.engine_refresh.refresh_value", to_str_runes_pair(array_to_slice(value_str)))
value_txt.layout.text_alignment = vec2(1, 0.5)
}