ludic.ui: <option disabled="{...}"> - a select steps past it, clamps off it and greys the arrow toward it
- The arrows, a press on the select and the pad step past a disabled option (ct_opt_step), wrapping as before. - A value naming a disabled option is shown as the nearest enabled one (the lower of two as near) and set to it once the build is done: an event fired while the tree is built is cleared with the frame's, so the clamp is queued (ct_clamp_n / _i) and fired after nt_fired_clear. - The < or > whose next option is disabled is drawn disabled (its part's :disabled), so a cycler shows where the options stop being on; it still steps past them. - ct_build_select moves to controls_opts.ludic with the rest (controls_build.ludic 119 -> 104 lines). Golden ui_select_disabled: options 3 and 4 disabled, a value of 4 clamps to 2, > is drawn disabled there, > wraps to 0 and < from 0 steps back to 2. The 38 ui examples pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6af48afdda
commit
181d317d20
8 changed files with 140 additions and 18 deletions
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
export function ui_show(ui_st: mut UiState, screen: string, view: UiView, x: float, y: float, w: float, h: float) -> void {
|
||||
in_read(ui_st)
|
||||
ct_opt_forget(ui_st) # a clamp found by a build this frame did not show
|
||||
dv_before(ui_st)
|
||||
ui_st.an_frame += 1
|
||||
ui_viewport(ui_st, w, h)
|
||||
|
|
@ -12,6 +13,7 @@ export function ui_show(ui_st: mut UiState, screen: string, view: UiView, x: flo
|
|||
if root == null { return }
|
||||
ui_place(ui_st, root, x, y, w, h)
|
||||
nt_fired_clear(ui_st)
|
||||
ct_opt_flush(ui_st) # a select's value on a disabled option, set now
|
||||
sc_undo(root)
|
||||
sc_update(ui_st, root)
|
||||
fr_pointer(ui_st, root)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue