imgui - part 3 (ids)

This commit is contained in:
Synthasmagoria 2026-07-21 21:35:41 +02:00
commit d329a7f381
2 changed files with 46 additions and 10 deletions

View file

@ -9,23 +9,27 @@ WINDOW_HEIGHT :: 720
WINDOW_FRAMERATE :: 30
WINDOW_CAPTION :: "Transformation Visualizer"
value: i32
ui_style := UiStyle{margin = 4.0, padding = 4.0}
ui_state: UiState
init :: proc() {
rl.SetTraceLogLevel(.WARNING)
rl.SetConfigFlags({.WINDOW_RESIZABLE, .VSYNC_HINT})
rl.InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_CAPTION)
rl.SetTargetFPS(WINDOW_FRAMERATE)
ui_init(&ui_state, ui_style, {0, 0}, context.temp_allocator)
}
value: i32
update :: proc() {
if rl.IsMouseButtonPressed(.LEFT) {
ui_element_focus_reset(&ui_state)
}
rl.BeginDrawing()
defer rl.EndDrawing()
rl.ClearBackground(rl.BLACK)
ui_style := UiStyle{margin = 4.0, padding = 4.0}
ui_state: UiState
ui_init(&ui_state, ui_style, {0, 0}, context.temp_allocator)
ui_start(&ui_state)
ui_container_begin(&ui_state, {label = ""})
ui_button_size := v2{192.0, 32.0}
@ -46,8 +50,10 @@ update :: proc() {
rl.GuiButton(element.area, data.label)
case .Input:
data := element.data.(UiElementData_Input)
value := rl.GuiValueBox(element.area, "", data.value, data.min, data.max, true)
fmt.println(value)
edit_mode := ui_element_is_editing(ui_state, element.id)
if (rl.GuiValueBox(element.area, "", data.value, data.min, data.max, edit_mode) == 1) {
ui_element_focus(&ui_state, element.id)
}
case .Container:
data := element.data.(UiElementData_Container)
if len(data.label) == 0 {