Skip to content

rayquiro.ui

This content is for v0.2.1. Switch to the latest version for up-to-date documentation.

The rayquiro.ui module allows building fast, cross-platform desktop interfaces using a declarative, component-based layout model with reactive events.

import "rayquiro.ui";

ComponentSignatureDescription
ui.labelui.label(text)Static or dynamic text display widget.
ui.buttonui.button(text, on_click)Clickable push button with action callback.
ui.textFieldui.textField(options)Single-line editable text input box.
ui.checkboxui.checkbox(label, checked, on_change)Toggleable checkbox option.
ui.sliderui.slider(min, max, value, on_change)Continuous or discrete range slider.
ui.rowui.row(children)Horizontal flex layout container.
ui.columnui.column(children)Vertical stack layout container.
ui.renderui.render(root_component)Mounts and draws the component tree.

import "rayquiro.ui";
var username = "";
var email = "";
var is_admin = false;
var form = ui.column([
ui.label("Create User Account"),
ui.row([
ui.label("Username:"),
ui.textField({
placeholder: "Enter username...",
onChange: fn(val) { username = val; }
})
]),
ui.row([
ui.label("Email:"),
ui.textField({
placeholder: "[email protected]",
onChange: fn(val) { email = val; }
})
]),
ui.checkbox("Administrator privileges", false, fn(checked) {
is_admin = checked;
}),
ui.button("Submit", fn() {
print("Submitting: " + username + " (" + email + ") - Admin: " + str(is_admin));
})
]);
ui.render(form);