UI module

focus_node

procedureextensionexperimentalsince 0.31.0Source

Give keyboard focus to node.

Example↗
ui := headless(.{ width = 320, height = 200 });
defer free_ui(*ui);
count := 0;
build := (n: *int) {
    for column(.{ gap = 8, padding = 16 }) {
        label(tprint("Clicked % times", n.*));
        if button("Add") n.* += 1;
    }
};
frame(*ui, *count, build);
focus_node(*ui, find_label(*ui, "Add"));
frame(*ui, *count, build);
assert(events_of(*ui, find_label(*ui, "Add")).focused);
focus_node :: (ui: *UI_State, node: *Node)

Give keyboard focus to node.

Parameters

ui: *UI_State
the UI the node belongs to.
node: *Node
the node to focus.
Example↗
ui := headless(.{ width = 320, height = 200 });
defer free_ui(*ui);
count := 0;
build := (n: *int) {
    for column(.{ gap = 8, padding = 16 }) {
        label(tprint("Clicked % times", n.*));
        if button("Add") n.* += 1;
    }
};
frame(*ui, *count, build);
focus_node(*ui, find_label(*ui, "Add"));
frame(*ui, *count, build);
assert(events_of(*ui, find_label(*ui, "Add")).focused);

See also