Matrix input
This commit is contained in:
parent
0ffaf7bb93
commit
f35e331bcd
2 changed files with 42 additions and 3 deletions
|
|
@ -1 +1 @@
|
|||
Subproject commit 6c8479f922438d73fbecfffbd6a70abb36068192
|
||||
Subproject commit 1e00b977d4a3c21bc007f218e1ec46cc6ab50274
|
||||
43
program.odin
43
program.odin
|
|
@ -111,7 +111,7 @@ program_build_ui :: proc() -> []ui.Element {
|
|||
top_bar_container := ui.container_begin({ui.Size_Percentage(1.0), ui.Size_Pixels(64.0)}, container_config)
|
||||
top_bar_inner_height := ui.get_element_inner_area(top_bar_container^).height
|
||||
top_bar_button_dimensions := ui.Dimensions {ui.Size_Pixels(top_bar_inner_height), ui.Size_Pixels(top_bar_inner_height)}
|
||||
top_bar_button_config := ui.ElementConfiguration {margin = {4.0, 4.0}}
|
||||
top_bar_button_config := ui.ElementConfiguration {margin = V2_ONE * 4}
|
||||
{
|
||||
config := top_bar_button_config
|
||||
config.label = "+"
|
||||
|
|
@ -122,11 +122,46 @@ program_build_ui :: proc() -> []ui.Element {
|
|||
}
|
||||
ui.container_end()
|
||||
|
||||
side_bar_container := ui.container_begin({ui.Size_Percentage(0.3), ui.Size_Percentage(1.0)}, container_config)
|
||||
ui.container_begin({ui.SIZE_AUTO, ui.Size_PercentageRemainder(1.0)}, container_config)
|
||||
{
|
||||
mat: matrix[3, 3]f32
|
||||
container_config := ui.ElementConfiguration{margin = V2_ONE * 4.0, label = ""}
|
||||
container_dimensions := ui.Dimensions {ui.SIZE_AUTO, ui.SIZE_AUTO}
|
||||
config := container_config
|
||||
config.label = "Matrix 0"
|
||||
ui_mat3(&mat, 0.0, 1000.0, container_dimensions, container_config)
|
||||
}
|
||||
ui.container_end()
|
||||
return ui.end()
|
||||
}
|
||||
|
||||
ui_mat3 :: proc(mat: ^mat3, min, max: f32, dimensions: ui.Dimensions, config: ui.ElementConfiguration) {
|
||||
ui.container_begin({ui.SIZE_AUTO, ui.SIZE_AUTO}, config)
|
||||
matrix_input_config := ui.ElementConfiguration {margin = V2_ONE * 4.0}
|
||||
matrix_input_dimensions := ui.Dimensions {ui.Size_Pixels(96.0), ui.Size_Pixels(48.0)}
|
||||
matrix_input_data := ui.ElementData_FloatInput {value = nil, min = min, max = max}
|
||||
data := matrix_input_data
|
||||
data.value = &mat[0, 0]
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
ui.same_line()
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
ui.same_line()
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
ui.same_line()
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
ui.same_line()
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
ui.same_line()
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
ui.same_line()
|
||||
ui.input_float(matrix_input_dimensions, matrix_input_config, data)
|
||||
ui.container_end()
|
||||
}
|
||||
|
||||
program_render_ui :: proc(elements: []ui.Element) {
|
||||
for element in elements {
|
||||
area := rl.Rectangle(element.area)
|
||||
|
|
@ -138,6 +173,10 @@ program_render_ui :: proc(elements: []ui.Element) {
|
|||
case .Slider:
|
||||
data := element.data.float_input_data
|
||||
rl.GuiSlider(area, element.label, "", data.value, data.min, data.max)
|
||||
case .InputFloat:
|
||||
data := element.data.float_input_data
|
||||
str: cstring = " "
|
||||
rl.GuiTextBox(area, str, i32(len(str) - 1), false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue