Skip to content
modkitv0.2

ui.h

#include <modkit/ui.h>83 functions · 16 structs · 15 enums · 33 typedefs · 12 macros

Optional immediate-mode application UI built on Clay and text layout.

Include this header explicitly. The UI package is intentionally not exposed by modkit/modkit.h because its scoped layout helpers are opt-in syntax.

Functions

mk_ui_beginfunction

bool mk_ui_begin(mk_ui_t ui, const mk_ui_frame_desc_t *frame)

Begin one immediate-mode UI frame and process queued input.

ParameterTypeDescription
uimk_ui_tUI context.
frameconst mk_ui_frame_desc_t *Frame dimensions and timing.

Returns True when declaration may proceed.

mk_ui_box_beginfunction

bool mk_ui_box_begin(mk_ui_t ui, mk_ui_id_t id, const mk_ui_box_desc_t *desc)

Begin a general-purpose layout box.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable element ID.
descconst mk_ui_box_desc_t *Box properties.

Returns True when the scope opened.

mk_ui_box_desc_initfunction

void mk_ui_box_desc_init(mk_ui_box_desc_t *desc)

Initialize a box descriptor.

ParameterTypeDescription
descmk_ui_box_desc_t *Descriptor to initialize.

mk_ui_box_endfunction

void mk_ui_box_end(mk_ui_t ui)

End the innermost box, row, column, or scroll scope.

ParameterTypeDescription
uimk_ui_tUI context.

mk_ui_buttonfunction

bool mk_ui_button(mk_ui_t ui, mk_ui_id_t id, const char *label)

Declare a push button.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
labelconst char *UTF-8 label.

Returns True when activated this frame.

mk_ui_checkboxfunction

bool mk_ui_checkbox(mk_ui_t ui, mk_ui_id_t id, const char *label, bool *value)

Declare a binary checkbox.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
labelconst char *UTF-8 label.
valuebool *Value read and toggled on activation.

Returns True when value changed.

mk_ui_clear_focusfunction

void mk_ui_clear_focus(mk_ui_t ui)

Clear keyboard focus.

ParameterTypeDescription
uimk_ui_tUI context.

mk_ui_column_beginfunction

bool mk_ui_column_begin(mk_ui_t ui, mk_ui_id_t id, const mk_ui_box_desc_t *desc)

Begin a vertical layout box.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable element ID.
descconst mk_ui_box_desc_t *Box properties.

Returns True when the scope opened.

mk_ui_createfunction

mk_result mk_ui_create(const mk_ui_desc_t *desc, mk_ui_t *ui)

Create a UI context.

ParameterTypeDescription
descconst mk_ui_desc_t *Context configuration.
uimk_ui_t *Receives the created handle.

Returns MK_SUCCESS or an error result.

mk_ui_desc_initfunction

void mk_ui_desc_init(mk_ui_desc_t *desc)

Initialize a UI context descriptor with documented defaults.

ParameterTypeDescription
descmk_ui_desc_t *Descriptor to initialize.

mk_ui_destroyfunction

void mk_ui_destroy(mk_ui_t ui)

Destroy a UI context and its retained state.

ParameterTypeDescription
uimk_ui_tContext to destroy.

mk_ui_endfunction

bool mk_ui_end(mk_ui_t ui)

Resolve layout and finish the current UI frame.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when the command stream is renderable.

mk_ui_feed_navigationfunction

void mk_ui_feed_navigation(mk_ui_t ui, const mk_ui_navigation_t *navigation)

Feed application-mapped navigation state.

ParameterTypeDescription
uimk_ui_tUI context.
navigationconst mk_ui_navigation_t *Directional axes and actions.

mk_ui_fitfunction

mk_ui_size_t mk_ui_fit(float min, float max)

Construct a content-fitting size constraint.

ParameterTypeDescription
minfloatMinimum size.
maxfloatMaximum size.

Returns The size constraint.

mk_ui_fixedfunction

mk_ui_size_t mk_ui_fixed(float value)

Construct a fixed logical-pixel size constraint.

ParameterTypeDescription
valuefloatFixed size.

Returns The size constraint.

mk_ui_focusedfunction

mk_ui_id_t mk_ui_focused(mk_ui_t ui)

Get the currently focused element.

ParameterTypeDescription
uimk_ui_tUI context.

Returns Focused ID, or MK_UI_ID_INVALID.

mk_ui_frame_desc_initfunction

void mk_ui_frame_desc_init(mk_ui_frame_desc_t *desc)

Initialize a per-frame descriptor.

ParameterTypeDescription
descmk_ui_frame_desc_t *Descriptor to initialize.

mk_ui_get_frame_statsfunction

bool mk_ui_get_frame_stats(mk_ui_t ui, mk_ui_frame_stats_t *stats)

Read diagnostics for the most recently completed frame.

ParameterTypeDescription
uimk_ui_tUI context.
statsmk_ui_frame_stats_t *Receives frame counters.

Returns True when statistics were available.

mk_ui_get_motionfunction

bool mk_ui_get_motion(mk_ui_t ui, mk_ui_motion_t *motion)

Read a context's transition settings.

ParameterTypeDescription
uimk_ui_tUI context.
motionmk_ui_motion_t *Receives the settings.

Returns True on success.

mk_ui_get_themefunction

bool mk_ui_get_theme(mk_ui_t ui, mk_ui_theme_t *theme)

Read a context's active theme.

ParameterTypeDescription
uimk_ui_tUI context.
thememk_ui_theme_t *Receives the theme.

Returns True on success.

mk_ui_growfunction

mk_ui_size_t mk_ui_grow(float min, float max)

Construct an available-space-growing size constraint.

ParameterTypeDescription
minfloatMinimum size.
maxfloatMaximum size.

Returns The size constraint.

mk_ui_handle_eventfunction

bool mk_ui_handle_event(mk_ui_t ui, const mk_event_t *event)

Feed one platform event to a manual-mode UI context.

ParameterTypeDescription
uimk_ui_tUI context.
eventconst mk_event_t *Event to process.

Returns True when the UI consumed the event.

mk_ui_id_strfunction

mk_ui_id_t mk_ui_id_str(mk_ui_t ui, const char *text)

Hash a null-terminated UTF-8 string into the current ID scope.

ParameterTypeDescription
uimk_ui_tUI context.
textconst char *Stable identifier text.

Returns The scoped UI ID.

mk_ui_id_str_nfunction

mk_ui_id_t mk_ui_id_str_n(mk_ui_t ui, const char *text, size_t text_len)

Hash a UTF-8 byte span into the current ID scope.

ParameterTypeDescription
uimk_ui_tUI context.
textconst char *Identifier bytes.
text_lensize_tByte length.

Returns The scoped UI ID.

mk_ui_id_u64function

mk_ui_id_t mk_ui_id_u64(mk_ui_t ui, uint64_t value)

Hash an integer into the current ID scope.

ParameterTypeDescription
uimk_ui_tUI context.
valueuint64_tCaller-stable value.

Returns The scoped UI ID.

mk_ui_imagefunction

void mk_ui_image(mk_ui_t ui, mk_ui_id_t id, mk_texture_t texture, mk_rectf uv, uint32_t tint, float width, float height)

Draw a textured image element.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable element ID.
texturemk_texture_tSource texture.
uvmk_rectfNormalized source rectangle.
tintuint32_tPacked tint color.
widthfloatLogical width.
heightfloatLogical height.

mk_ui_item_activefunction

bool mk_ui_item_active(mk_ui_t ui)

Test whether the last declared item owns an active interaction.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when active.

mk_ui_item_enabledfunction

bool mk_ui_item_enabled(mk_ui_t ui)

Test whether the last declared item accepts interaction.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when enabled.

mk_ui_item_focusedfunction

bool mk_ui_item_focused(mk_ui_t ui)

Test whether the last declared item has keyboard focus.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when focused.

mk_ui_item_hoveredfunction

bool mk_ui_item_hovered(mk_ui_t ui)

Test whether the last declared item is hovered.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when hovered.

mk_ui_item_pressedfunction

bool mk_ui_item_pressed(mk_ui_t ui)

Test whether the last declared item is held by a pointer press.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when pressed.

mk_ui_item_visiblefunction

bool mk_ui_item_visible(mk_ui_t ui)

Test whether the last declared item intersects its active clips.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when visible.

mk_ui_motion_initfunction

void mk_ui_motion_init(mk_ui_motion_t *motion)

Initialize UI transition settings.

ParameterTypeDescription
motionmk_ui_motion_t *Settings to initialize.

mk_ui_number_floatfunction

bool mk_ui_number_float(mk_ui_t ui, mk_ui_id_t id, const char *label, float *value, float min, float max, float step, mk_ui_range_flags_t flags)

Declare a draggable and editable floating-point field.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
labelconst char *UTF-8 label.
valuefloat *Value read and updated.
minfloatMinimum value.
maxfloatMaximum value.
stepfloatDrag and keyboard increment.
flagsmk_ui_range_flags_tPresentation flags.

Returns True when value changed.

mk_ui_number_intfunction

bool mk_ui_number_int(mk_ui_t ui, mk_ui_id_t id, const char *label, int32_t *value, int32_t min, int32_t max, int32_t step, mk_ui_range_flags_t flags)

Declare a draggable and editable integer field.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
labelconst char *UTF-8 label.
valueint32_t *Value read and updated.
minint32_tMinimum value.
maxint32_tMaximum value.
stepint32_tDrag and keyboard increment.
flagsmk_ui_range_flags_tPresentation flags.

Returns True when value changed.

mk_ui_percentfunction

mk_ui_size_t mk_ui_percent(float value)

Construct a parent-relative size constraint.

ParameterTypeDescription
valuefloatFraction of the parent dimension.

Returns The size constraint.

mk_ui_pop_idfunction

void mk_ui_pop_id(mk_ui_t ui)

Pop the innermost ID component.

ParameterTypeDescription
uimk_ui_tUI context.

mk_ui_pop_stylefunction

void mk_ui_pop_style(mk_ui_t ui, uint32_t count)

Pop entries from the typed style stack.

ParameterTypeDescription
uimk_ui_tUI context.
countuint32_tNumber of entries to pop.

mk_ui_presence_beginfunction

bool mk_ui_presence_begin(mk_ui_t ui, mk_ui_id_t id, bool visible, const mk_ui_presence_desc_t *desc)

Begin content that animates while entering or leaving declaration.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable presence ID.
visibleboolDesired visibility.
descconst mk_ui_presence_desc_t *Transition options.

Returns True while the content must still be declared.

mk_ui_presence_desc_initfunction

void mk_ui_presence_desc_init(mk_ui_presence_desc_t *desc)

Initialize a conditional-presence descriptor.

ParameterTypeDescription
descmk_ui_presence_desc_t *Descriptor to initialize.

mk_ui_presence_endfunction

void mk_ui_presence_end(mk_ui_t ui)

End the innermost presence scope.

ParameterTypeDescription
uimk_ui_tUI context.

mk_ui_progressfunction

void mk_ui_progress(mk_ui_t ui, mk_ui_id_t id, const char *label, float value, float min, float max)

Draw a read-only progress range.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable element ID.
labelconst char *UTF-8 label.
valuefloatCurrent value.
minfloatMinimum value.
maxfloatMaximum value.

mk_ui_push_colorfunction

bool mk_ui_push_color(mk_ui_t ui, mk_ui_color_role_t role, uint32_t color)

Push a theme-color override.

ParameterTypeDescription
uimk_ui_tUI context.
rolemk_ui_color_role_tColor slot.
coloruint32_tPacked replacement color.

Returns True on success.

mk_ui_push_floatfunction

bool mk_ui_push_float(mk_ui_t ui, mk_ui_float_role_t role, float value)

Push a theme-scalar override.

ParameterTypeDescription
uimk_ui_tUI context.
rolemk_ui_float_role_tScalar slot.
valuefloatReplacement value.

Returns True on success.

mk_ui_push_fontfunction

bool mk_ui_push_font(mk_ui_t ui, mk_ui_font_role_t role, mk_font_family_t family)

Push a font-family override.

ParameterTypeDescription
uimk_ui_tUI context.
rolemk_ui_font_role_tFont slot.
familymk_font_family_tReplacement font family.

Returns True on success.

mk_ui_push_id_strfunction

bool mk_ui_push_id_str(mk_ui_t ui, const char *text)

Push a string ID component.

ParameterTypeDescription
uimk_ui_tUI context.
textconst char *Caller-stable identifier text.

Returns True on success.

mk_ui_push_id_u64function

bool mk_ui_push_id_u64(mk_ui_t ui, uint64_t value)

Push an integer ID component.

ParameterTypeDescription
uimk_ui_tUI context.
valueuint64_tCaller-stable value.

Returns True on success.

mk_ui_radiofunction

bool mk_ui_radio(mk_ui_t ui, mk_ui_id_t id, const char *label, int32_t option, int32_t *selected)

Declare one option in a radio group.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
labelconst char *UTF-8 label.
optionint32_tValue represented by this option.
selectedint32_t *Selected value read and updated.

Returns True when selection changed.

mk_ui_renderfunction

bool mk_ui_render(mk_ui_t ui)

Render the most recently completed UI frame.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when rendering was submitted.

mk_ui_request_focusfunction

bool mk_ui_request_focus(mk_ui_t ui, mk_ui_id_t id)

Request focus for a stable element ID.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tElement ID.

Returns True when the request was accepted.

mk_ui_row_beginfunction

bool mk_ui_row_begin(mk_ui_t ui, mk_ui_id_t id, const mk_ui_box_desc_t *desc)

Begin a horizontal layout box.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable element ID.
descconst mk_ui_box_desc_t *Box properties.

Returns True when the scope opened.

mk_ui_scroll_beginfunction

bool mk_ui_scroll_begin(mk_ui_t ui, mk_ui_id_t id, const mk_ui_box_desc_t *desc)

Begin a scrollable layout box.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable element ID.
descconst mk_ui_box_desc_t *Box properties and scroll axes.

Returns True when the scope opened.

mk_ui_semantics_initfunction

void mk_ui_semantics_init(mk_ui_semantics_t *semantics)

Initialize accessibility metadata.

ParameterTypeDescription
semanticsmk_ui_semantics_t *Metadata to initialize.

mk_ui_separatorfunction

void mk_ui_separator(mk_ui_t ui, uint32_t color, float thickness)

Draw a separator occupying layout space.

ParameterTypeDescription
uimk_ui_tUI context.
coloruint32_tPacked separator color.
thicknessfloatSeparator thickness.

mk_ui_set_motionfunction

bool mk_ui_set_motion(mk_ui_t ui, const mk_ui_motion_t *motion)

Replace a context's transition settings.

ParameterTypeDescription
uimk_ui_tUI context.
motionconst mk_ui_motion_t *Settings to copy.

Returns True on success.

mk_ui_set_next_semanticsfunction

void mk_ui_set_next_semantics(mk_ui_t ui, const mk_ui_semantics_t *semantics)

Apply custom accessibility metadata to the next element.

ParameterTypeDescription
uimk_ui_tUI context.
semanticsconst mk_ui_semantics_t *Metadata copied for the next declaration.

mk_ui_set_themefunction

bool mk_ui_set_theme(mk_ui_t ui, const mk_ui_theme_t *theme)

Replace a context's active theme.

ParameterTypeDescription
uimk_ui_tUI context.
themeconst mk_ui_theme_t *Theme to copy.

Returns True on success.

mk_ui_slider_floatfunction

bool mk_ui_slider_float(mk_ui_t ui, mk_ui_id_t id, const char *label, float *value, float min, float max, float step, mk_ui_range_flags_t flags)

Declare a floating-point slider.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
labelconst char *UTF-8 label.
valuefloat *Value read and updated.
minfloatMinimum value.
maxfloatMaximum value.
stepfloatKeyboard and navigation increment.
flagsmk_ui_range_flags_tPresentation flags.

Returns True when value changed.

mk_ui_slider_intfunction

bool mk_ui_slider_int(mk_ui_t ui, mk_ui_id_t id, const char *label, int32_t *value, int32_t min, int32_t max, int32_t step, mk_ui_range_flags_t flags)

Declare an integer slider.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
labelconst char *UTF-8 label.
valueint32_t *Value read and updated.
minint32_tMinimum value.
maxint32_tMaximum value.
stepint32_tKeyboard and navigation increment.
flagsmk_ui_range_flags_tPresentation flags.

Returns True when value changed.

mk_ui_spacerfunction

void mk_ui_spacer(mk_ui_t ui, float width, float height)

Declare empty layout space.

ParameterTypeDescription
uimk_ui_tUI context.
widthfloatSpacer width.
heightfloatSpacer height.

mk_ui_tabfunction

bool mk_ui_tab(mk_ui_t ui, mk_ui_id_t id, const char *label, int32_t option, int32_t *selected)

Declare one tab selector.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable tab ID.
labelconst char *UTF-8 label.
optionint32_tValue represented by this tab.
selectedint32_t *Selected value read and updated.

Returns True when selection changed.

mk_ui_tab_list_beginfunction

bool mk_ui_tab_list_begin(mk_ui_t ui, mk_ui_id_t id, const mk_ui_box_desc_t *desc)

Begin a tab-list container.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable list ID.
descconst mk_ui_box_desc_t *Layout properties.

Returns True when the scope opened.

mk_ui_tab_list_endfunction

void mk_ui_tab_list_end(mk_ui_t ui)

End the innermost tab-list scope.

ParameterTypeDescription
uimk_ui_tUI context.

mk_ui_tab_panel_beginfunction

bool mk_ui_tab_panel_begin(mk_ui_t ui, mk_ui_id_t id, bool active, const mk_ui_box_desc_t *desc)

Begin a conditionally active tab panel.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable panel ID.
activeboolWhether the panel is selected.
descconst mk_ui_box_desc_t *Layout properties.

Returns True when panel content should be declared.

mk_ui_tab_panel_endfunction

void mk_ui_tab_panel_end(mk_ui_t ui)

End the innermost active tab-panel scope.

ParameterTypeDescription
uimk_ui_tUI context.

mk_ui_textfunction

void mk_ui_text(mk_ui_t ui, mk_ui_id_t id, const mk_ui_text_desc_t *desc)

Lay out and draw shaped UTF-8 text.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable element ID.
descconst mk_ui_text_desc_t *Text content and style.

mk_ui_text_desc_initfunction

void mk_ui_text_desc_init(mk_ui_text_desc_t *desc)

Initialize a shaped-text descriptor.

ParameterTypeDescription
descmk_ui_text_desc_t *Descriptor to initialize.

mk_ui_text_editfunction

uint32_t mk_ui_text_edit(mk_ui_t ui, mk_ui_id_t id, const mk_ui_text_edit_desc_t *desc, mk_ui_text_buffer_t *buffer)

Declare an editable UTF-8 text field.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
descconst mk_ui_text_edit_desc_t *Editing and presentation options.
buffermk_ui_text_buffer_t *Mutable text storage.

Returns ORed mk_ui_edit_result_t bits.

mk_ui_text_edit_desc_initfunction

void mk_ui_text_edit_desc_init(mk_ui_text_edit_desc_t *desc)

Initialize a text-edit descriptor.

ParameterTypeDescription
descmk_ui_text_edit_desc_t *Descriptor to initialize.

mk_ui_text_get_selectionfunction

bool mk_ui_text_get_selection(mk_ui_t ui, mk_ui_id_t id, uint32_t *byte_start, uint32_t *byte_end)

Read the current selectable-text byte range.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tText element ID.
byte_startuint32_t *Receives the first selected byte.
byte_enduint32_t *Receives one past the last selected byte.

Returns True when the element has a selection.

mk_ui_theme_darkfunction

mk_ui_theme_t mk_ui_theme_dark(void)

Construct the built-in dark theme.

Returns A complete dark theme.

mk_ui_theme_high_contrastfunction

mk_ui_theme_t mk_ui_theme_high_contrast(void)

Construct the built-in high-contrast theme.

Returns A complete high-contrast theme.

mk_ui_theme_lightfunction

mk_ui_theme_t mk_ui_theme_light(void)

Construct the built-in light theme.

Returns A complete light theme.

mk_ui_togglefunction

bool mk_ui_toggle(mk_ui_t ui, mk_ui_id_t id, const char *label, bool *value)

Declare a binary switch.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable widget ID.
labelconst char *UTF-8 label.
valuebool *Value read and toggled on activation.

Returns True when value changed.

mk_ui_virtual_list_beginfunction

bool mk_ui_virtual_list_begin(mk_ui_t ui, mk_ui_id_t id, const mk_ui_virtual_list_desc_t *desc, mk_ui_virtual_range_t *range)

Begin a fixed-row virtualized scroll list.

ParameterTypeDescription
uimk_ui_tUI context.
idmk_ui_id_tStable list ID.
descconst mk_ui_virtual_list_desc_t *List dimensions and row count.
rangemk_ui_virtual_range_t *Receives the half-open row range to declare.

Returns True when the scope opened.

mk_ui_virtual_list_desc_initfunction

void mk_ui_virtual_list_desc_init(mk_ui_virtual_list_desc_t *desc)

Initialize a virtual-list descriptor.

ParameterTypeDescription
descmk_ui_virtual_list_desc_t *Descriptor to initialize.

mk_ui_virtual_list_endfunction

void mk_ui_virtual_list_end(mk_ui_t ui)

End the current virtual list.

ParameterTypeDescription
uimk_ui_tUI context.

mk_ui_virtual_list_item_beginfunction

bool mk_ui_virtual_list_item_begin(mk_ui_t ui, uint32_t index)

Begin one row in the current virtual list.

ParameterTypeDescription
uimk_ui_tUI context.
indexuint32_tLogical row index.

Returns True when the row scope opened.

mk_ui_virtual_list_item_endfunction

void mk_ui_virtual_list_item_end(mk_ui_t ui)

End the current virtual-list row.

ParameterTypeDescription
uimk_ui_tUI context.

mk_ui_virtual_list_scroll_tofunction

bool mk_ui_virtual_list_scroll_to(mk_ui_t ui, mk_ui_id_t list_id, uint32_t index, mk_ui_scroll_align_t align)

Request that a virtual-list row be brought into view.

ParameterTypeDescription
uimk_ui_tUI context.
list_idmk_ui_id_tStable list ID.
indexuint32_tLogical row index.
alignmk_ui_scroll_align_tDesired viewport alignment.

Returns True when the request was accepted.

mk_ui_want_capture_keyboardfunction

bool mk_ui_want_capture_keyboard(mk_ui_t ui)

Query whether gameplay should yield keyboard input to the UI.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when keyboard input is captured.

mk_ui_want_capture_pointerfunction

bool mk_ui_want_capture_pointer(mk_ui_t ui)

Query whether gameplay should yield pointer input to the UI.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when pointer input is captured.

mk_ui_want_capture_textfunction

bool mk_ui_want_capture_text(mk_ui_t ui)

Query whether text input is active in the UI.

ParameterTypeDescription
uimk_ui_tUI context.

Returns True when text input is captured.

Structs

mk_ui_box_descstruct

Layout and presentation properties for a UI box.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_BOX_DESC_VERSION.
widthmk_ui_size_tHorizontal size constraint.
heightmk_ui_size_tVertical size constraint.
paddingmk_ui_insets_tInsets between border and children.
gapfloatSpacing between adjacent children.
directionmk_ui_direction_tChild layout direction.
align_xmk_ui_align_tHorizontal child alignment.
align_ymk_ui_align_tVertical child alignment.
background_coloruint32_tPacked background color.
border_coloruint32_tPacked border color.
border_widthfloatBorder thickness in logical pixels.
corner_radiusfloatCorner radius in logical pixels.
flagsuint32_tORed mk_ui_box_flags_t values.

mk_ui_descstruct

Capacity, input, typography, theme, and navigation options for a UI context.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_DESC_VERSION.
windowmk_window_tWindow associated with automatic events and text input.
manual_window_iduint32_tWindow ID accepted in manual mode.
event_modemk_ui_event_mode_tEvent integration mode.
event_priorityint32_tAutomatic event-listener priority.
fontsmk_font_family_tFont family for each semantic role.
thememk_ui_theme_tInitial widget theme.
follow_flagsuint32_tORed mk_ui_follow_flags_t values.
max_elementsuint32_tMaximum declarations in one frame.
max_eventsuint32_tMaximum queued input events.
max_cached_text_layoutsuint32_tText-layout cache capacity.
text_cache_ttl_framesuint32_tFrames an unused text layout remains cached.
undo_capacity_bytesuint32_tPer-editor undo storage budget.
undo_max_operationsuint32_tMaximum retained undo operations.
navigation_deadzonefloatDirectional navigation analog deadzone.
navigation_repeat_delayfloatDelay before held navigation repeats.
navigation_repeat_ratefloatInterval between repeated navigation actions.
motionmk_ui_motion_tBuilt-in transition settings.

mk_ui_frame_descstruct

Per-frame viewport, scale, and timing inputs.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_FRAME_DESC_VERSION.
widthfloatAvailable logical width.
heightfloatAvailable logical height.
scalefloatLogical-to-physical pixel scale.
delta_timefloatWall-clock frame duration in seconds.

mk_ui_frame_statsstruct

Diagnostics collected while building and rendering the last frame.

FieldTypeDescription
declarationsuint32_tElements declared in the frame.
draw_commandsuint32_tRenderer commands produced.
duplicate_idsuint32_tDuplicate stable IDs encountered.
unbalanced_scopesuint32_tUnterminated or over-popped scopes.
clay_capacity_exhaustionsuint32_tClay arena or element-capacity failures.
dropped_eventsuint32_tInput events dropped for capacity.
state_evictionsuint32_tRetained widget-state entries evicted.
text_layout_evictionsuint32_tCached text layouts evicted.
text_layout_failuresuint32_tText layouts that could not be created.
text_buffer_exhaustionsuint32_tText edits rejected for buffer capacity.
nested_clip_overflowsuint32_tClip scopes beyond renderer capacity.
text_cache_hitsuint32_tReused cached text layouts.
text_cache_missesuint32_tNewly built text layouts.

mk_ui_insetsstruct

Logical inset values for the four sides of a box.

FieldTypeDescription
leftfloatLeft inset.
topfloatTop inset.
rightfloatRight inset.
bottomfloatBottom inset.

mk_ui_motionstruct

Durations and easing for built-in UI state transitions.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_MOTION_VERSION.
hover_durationfloatHover transition duration in seconds.
press_durationfloatPress transition duration in seconds.
focus_durationfloatFocus transition duration in seconds.
enter_durationfloatDefault appearance duration in seconds.
exit_durationfloatDefault disappearance duration in seconds.
easemk_ease_typeEasing curve for transitions.

mk_ui_navigationstruct

Directional and discrete navigation state for one feed operation.

FieldTypeDescription
xfloatHorizontal navigation axis in the range -1 to 1.
yfloatVertical navigation axis in the range -1 to 1.
flagsuint32_tORed mk_ui_navigation_flags_t values.

mk_ui_presence_descstruct

Enter and exit transition settings for conditionally present content.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_PRESENCE_DESC_VERSION.
enter_durationfloatAppearance duration in seconds.
exit_durationfloatDisappearance duration in seconds.
easemk_ease_typeTransition easing curve.
block_input_on_exitboolKeep exiting content modal until removed.

mk_ui_semanticsstruct

Accessibility metadata applied to the next declared element.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_SEMANTICS_VERSION.
rolemk_accessibility_role_tSemantic role.
labelconst char *Accessible UTF-8 label.
descriptionconst char *Optional accessible description.
valueconst char *Optional textual value.
statesuint32_tORed accessibility-state bits.
actionsuint32_tORed supported accessibility actions.
range_mindoubleMinimum numeric value.
range_maxdoubleMaximum numeric value.
range_valuedoubleCurrent numeric value.
selection_startint32_tSelected UTF-8 byte start, or a negative sentinel.
selection_endint32_tSelected UTF-8 byte end, or a negative sentinel.
collection_indexuint32_tZero-based index within a collection.
collection_countuint32_tNumber of items in the collection.
livemk_accessibility_live_tLive-region announcement behavior.

mk_ui_sizestruct

Size constraint for one UI box dimension.

FieldTypeDescription
kindmk_ui_size_kind_tConstraint model.
valuefloatFixed size or parent fraction, depending on kind.
minfloatMinimum resolved size.
maxfloatMaximum resolved size.

mk_ui_text_bufferstruct

Mutable UTF-8 storage used by text-edit widgets.

FieldTypeDescription
datachar *Writable UTF-8 bytes.
lengthsize_tCurrent length in bytes, excluding any terminator.
capacitysize_tWritable buffer capacity.
growbool(*)Optional callback that grows data to at least required bytes.
user_datavoid *Caller context passed to grow.

mk_ui_text_descstruct

Shaped-text content, style, wrapping, and selection options.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_TEXT_DESC_VERSION.
textconst char *UTF-8 content.
text_lensize_tContent length in bytes.
font_rolemk_ui_font_role_tBase font-family role.
size_pxfloatFont size in logical pixels.
line_heightfloatLine-height multiplier or zero for default.
coloruint32_tPacked foreground color.
background_coloruint32_tPacked selection/background color.
wrapmk_text_wrap_tLine-wrapping policy.
overflowmk_text_overflow_tOverflow policy.
alignmk_text_paragraph_align_tParagraph alignment.
directionmk_text_direction_tBase text direction.
localeconst char *Optional BCP 47 locale.
max_linesuint32_tMaximum lines, or zero for unlimited.
grow_widthboolPrefer unwrapped width when space permits.
spansconst mk_text_style_span_t *Optional inline style spans.
span_countuint32_tNumber of entries in spans.
flagsuint32_tORed mk_ui_text_flags_t values.

mk_ui_text_edit_descstruct

Presentation and input-mode options for an editable text field.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_TEXT_EDIT_DESC_VERSION.
placeholderconst char *UTF-8 placeholder shown for an empty buffer.
font_rolemk_ui_font_role_tFont-family role.
size_pxfloatFont size in logical pixels.
flagsuint32_tORed mk_ui_text_edit_flags_t values.
input_typemk_text_input_typePlatform keyboard/input hint.

mk_ui_themestruct

Complete color and size palette for built-in widgets.

FieldTypeDescription
backgrounduint32_tRoot background color.
surfaceuint32_tDefault surface color.
surface_hovereduint32_tHovered surface color.
surface_presseduint32_tPressed surface color.
textuint32_tPrimary text color.
text_muteduint32_tSecondary text color.
accentuint32_tAccent color.
borderuint32_tBorder color.
dangeruint32_tError and destructive-action color.
body_sizefloatBody font size in logical pixels.
display_sizefloatDisplay font size in logical pixels.
mono_sizefloatMonospaced font size in logical pixels.
control_heightfloatDefault control height.
spacingfloatDefault spacing unit.
corner_radiusfloatDefault control corner radius.

mk_ui_virtual_list_descstruct

Fixed-row virtual-list layout and capacity options.

FieldTypeDescription
struct_sizeuint32_tStructure size in bytes.
struct_versionuint32_tMK_UI_VIRTUAL_LIST_DESC_VERSION.
boxmk_ui_box_desc_tScroll-container layout and presentation.
item_countuint32_tTotal logical row count.
item_heightfloatFixed row height in logical pixels.
item_gapfloatSpacing between rows.
overscanuint32_tExtra rows declared beyond each viewport edge.

mk_ui_virtual_rangestruct

Half-open range of virtual-list rows that should be declared.

FieldTypeDescription
firstuint32_tFirst visible or overscanned row index.
lastuint32_tOne past the last row index.

Enums

mk_ui_alignenum

Alignment within a UI container axis.

ValueDescription
MK_UI_ALIGN_STARTAlign to the logical start.
MK_UI_ALIGN_CENTERCenter within available space.
MK_UI_ALIGN_ENDAlign to the logical end.

mk_ui_box_flagsenum

Clipping, scrolling, and modal behavior for a box.

ValueDescription
MK_UI_BOX_NONENo optional box behavior.
MK_UI_BOX_CLIP_XClip horizontally to the content bounds.
MK_UI_BOX_CLIP_YClip vertically to the content bounds.
MK_UI_BOX_SCROLL_XAllow horizontal scrolling.
MK_UI_BOX_SCROLL_YAllow vertical scrolling.
MK_UI_BOX_MODALGive this layer modal input priority.

mk_ui_color_roleenum

Theme color slots addressable by the style stack.

ValueDescription
MK_UI_COLOR_BACKGROUNDRoot background.
MK_UI_COLOR_SURFACEDefault control and panel surface.
MK_UI_COLOR_SURFACE_HOVEREDHovered surface.
MK_UI_COLOR_SURFACE_PRESSEDPressed surface.
MK_UI_COLOR_TEXTPrimary text.
MK_UI_COLOR_TEXT_MUTEDSecondary text.
MK_UI_COLOR_ACCENTAccent and focus indication.
MK_UI_COLOR_BORDERControl and panel borders.
MK_UI_COLOR_DANGERDestructive or error indication.

mk_ui_directionenum

Main-axis direction for child layout.

ValueDescription
MK_UI_TOP_TO_BOTTOMLay out children vertically.
MK_UI_LEFT_TO_RIGHTLay out children horizontally.

mk_ui_edit_resultenum

Bitmask returned by mk_ui_text_edit.

ValueDescription
MK_UI_EDIT_NONENo edit event occurred.
MK_UI_EDIT_CHANGEDBuffer content changed.
MK_UI_EDIT_SUBMITTEDThe user submitted a single-line field.
MK_UI_EDIT_ACTIVATEDThe editor gained active input.
MK_UI_EDIT_DEACTIVATEDThe editor lost active input.

mk_ui_event_modeenum

Selects automatic event subscription or manual event feeding.

ValueDescription
MK_UI_EVENTS_AUTOMATICSubscribe to window events during context lifetime.
MK_UI_EVENTS_MANUALAccept events only through mk_ui_handle_event.

mk_ui_float_roleenum

Theme scalar slots addressable by the style stack.

ValueDescription
MK_UI_FLOAT_BODY_SIZEBody font size.
MK_UI_FLOAT_DISPLAY_SIZEDisplay font size.
MK_UI_FLOAT_MONO_SIZEMonospaced font size.
MK_UI_FLOAT_CONTROL_HEIGHTDefault interactive-control height.
MK_UI_FLOAT_SPACINGDefault layout spacing.
MK_UI_FLOAT_CORNER_RADIUSDefault corner radius.

mk_ui_follow_flagsenum

System preferences a UI context follows dynamically.

ValueDescription
MK_UI_FOLLOW_THEMEFollow the platform light/dark theme.
MK_UI_FOLLOW_TEXT_SCALEFollow the platform text scale.
MK_UI_FOLLOW_HIGH_CONTRASTFollow the high-contrast preference.
MK_UI_FOLLOW_REDUCED_MOTIONDisable transitions when requested.
MK_UI_FOLLOW_SAFE_AREAInset content by platform safe areas.
MK_UI_FOLLOW_ALLFollow every supported preference.

mk_ui_font_roleenum

Semantic font-family roles used by UI text.

ValueDescription
MK_UI_FONT_BODYDefault interface copy and labels.
MK_UI_FONT_DISPLAYHeadings and display text.
MK_UI_FONT_MONOMonospaced values and code.
MK_UI_FONT_ROLE_COUNTNumber of font roles.

mk_ui_navigation_flagsenum

Discrete navigation actions supplied to a UI context.

ValueDescription
MK_UI_NAV_NONENo discrete action.
MK_UI_NAV_NEXTMove to the next declaration-order item.
MK_UI_NAV_PREVIOUSMove to the previous declaration-order item.
MK_UI_NAV_ACTIVATEActivate the focused item.
MK_UI_NAV_CANCELCancel the current interaction or modal.

mk_ui_range_flagsenum

Presentation options for range and numeric widgets.

ValueDescription
MK_UI_RANGE_NONEDraw no value fill.
MK_UI_RANGE_FILLFill the control background to the current value.

mk_ui_scroll_alignenum

Alignment used when scrolling a virtual-list item into view.

ValueDescription
MK_UI_SCROLL_NEARESTMove only enough to reveal the item.
MK_UI_SCROLL_STARTAlign the item with the viewport start.
MK_UI_SCROLL_CENTERCenter the item in the viewport.
MK_UI_SCROLL_ENDAlign the item with the viewport end.

mk_ui_size_kindenum

Constraint model for one box dimension.

ValueDescription
MK_UI_SIZE_FITFit the content within optional limits.
MK_UI_SIZE_GROWConsume available space within optional limits.
MK_UI_SIZE_FIXEDUse a fixed logical-pixel size.
MK_UI_SIZE_PERCENTUse a fraction of the parent dimension.

mk_ui_text_edit_flagsenum

Behavior flags for an editable text field.

ValueDescription
MK_UI_TEXT_EDIT_NONEStandard single-line editing.
MK_UI_TEXT_EDIT_MULTILINEAccept and lay out newline characters.
MK_UI_TEXT_EDIT_READ_ONLYAllow selection without mutation.
MK_UI_TEXT_EDIT_PASSWORDMask displayed content.

mk_ui_text_flagsenum

Optional behavior for static text.

ValueDescription
MK_UI_TEXT_NONENon-interactive static text.
MK_UI_TEXT_SELECTABLEAllow pointer and keyboard selection.

Typedefs

mk_ui_align_ttypedef

typedef enum mk_ui_align mk_ui_align_t

Alignment within a UI container axis.

mk_ui_box_desc_ttypedef

typedef struct mk_ui_box_desc mk_ui_box_desc_t

Layout and presentation properties for a UI box.

mk_ui_box_flags_ttypedef

typedef enum mk_ui_box_flags mk_ui_box_flags_t

Clipping, scrolling, and modal behavior for a box.

mk_ui_color_role_ttypedef

typedef enum mk_ui_color_role mk_ui_color_role_t

Theme color slots addressable by the style stack.

mk_ui_desc_ttypedef

typedef struct mk_ui_desc mk_ui_desc_t

Capacity, input, typography, theme, and navigation options for a UI context.

mk_ui_direction_ttypedef

typedef enum mk_ui_direction mk_ui_direction_t

Main-axis direction for child layout.

mk_ui_edit_result_ttypedef

typedef enum mk_ui_edit_result mk_ui_edit_result_t

Bitmask returned by mk_ui_text_edit.

mk_ui_event_mode_ttypedef

typedef enum mk_ui_event_mode mk_ui_event_mode_t

Selects automatic event subscription or manual event feeding.

mk_ui_float_role_ttypedef

typedef enum mk_ui_float_role mk_ui_float_role_t

Theme scalar slots addressable by the style stack.

mk_ui_follow_flags_ttypedef

typedef enum mk_ui_follow_flags mk_ui_follow_flags_t

System preferences a UI context follows dynamically.

mk_ui_font_role_ttypedef

typedef enum mk_ui_font_role mk_ui_font_role_t

Semantic font-family roles used by UI text.

mk_ui_frame_desc_ttypedef

typedef struct mk_ui_frame_desc mk_ui_frame_desc_t

Per-frame viewport, scale, and timing inputs.

mk_ui_frame_stats_ttypedef

typedef struct mk_ui_frame_stats mk_ui_frame_stats_t

Diagnostics collected while building and rendering the last frame.

mk_ui_id_ttypedef

typedef uint64_t mk_ui_id_t

Stable identifier for a UI element within its ID scope.

mk_ui_insets_ttypedef

typedef struct mk_ui_insets mk_ui_insets_t

Logical inset values for the four sides of a box.

mk_ui_motion_ttypedef

typedef struct mk_ui_motion mk_ui_motion_t

Durations and easing for built-in UI state transitions.

mk_ui_navigation_flags_ttypedef

typedef enum mk_ui_navigation_flags mk_ui_navigation_flags_t

Discrete navigation actions supplied to a UI context.

mk_ui_navigation_ttypedef

typedef struct mk_ui_navigation mk_ui_navigation_t

Directional and discrete navigation state for one feed operation.

mk_ui_presence_desc_ttypedef

typedef struct mk_ui_presence_desc mk_ui_presence_desc_t

Enter and exit transition settings for conditionally present content.

mk_ui_range_flags_ttypedef

typedef enum mk_ui_range_flags mk_ui_range_flags_t

Presentation options for range and numeric widgets.

mk_ui_scroll_align_ttypedef

typedef enum mk_ui_scroll_align mk_ui_scroll_align_t

Alignment used when scrolling a virtual-list item into view.

mk_ui_semantics_ttypedef

typedef struct mk_ui_semantics mk_ui_semantics_t

Accessibility metadata applied to the next declared element.

mk_ui_size_kind_ttypedef

typedef enum mk_ui_size_kind mk_ui_size_kind_t

Constraint model for one box dimension.

mk_ui_size_ttypedef

typedef struct mk_ui_size mk_ui_size_t

Size constraint for one UI box dimension.

mk_ui_ttypedef

typedef struct mk_ui* mk_ui_t

Opaque immediate-mode UI context handle.

mk_ui_text_buffer_ttypedef

typedef struct mk_ui_text_buffer mk_ui_text_buffer_t

Mutable UTF-8 storage used by text-edit widgets.

mk_ui_text_desc_ttypedef

typedef struct mk_ui_text_desc mk_ui_text_desc_t

Shaped-text content, style, wrapping, and selection options.

mk_ui_text_edit_desc_ttypedef

typedef struct mk_ui_text_edit_desc mk_ui_text_edit_desc_t

Presentation and input-mode options for an editable text field.

mk_ui_text_edit_flags_ttypedef

typedef enum mk_ui_text_edit_flags mk_ui_text_edit_flags_t

Behavior flags for an editable text field.

mk_ui_text_flags_ttypedef

typedef enum mk_ui_text_flags mk_ui_text_flags_t

Optional behavior for static text.

mk_ui_theme_ttypedef

typedef struct mk_ui_theme mk_ui_theme_t

Complete color and size palette for built-in widgets.

mk_ui_virtual_list_desc_ttypedef

typedef struct mk_ui_virtual_list_desc mk_ui_virtual_list_desc_t

Fixed-row virtual-list layout and capacity options.

mk_ui_virtual_range_ttypedef

typedef struct mk_ui_virtual_range mk_ui_virtual_range_t

Half-open range of virtual-list rows that should be declared.

Macros

MK_UI_BOX_DESC_VERSIONdefine

MK_UI_BOX_DESC_VERSION

ABI version for mk_ui_box_desc_t.

MK_UI_DESC_VERSIONdefine

MK_UI_DESC_VERSION

ABI version for mk_ui_desc_t.

MK_UI_EVENT_PRIORITY_DEFAULTdefine

MK_UI_EVENT_PRIORITY_DEFAULT

Default event-listener priority used by automatic UI input.

MK_UI_FRAME_DESC_VERSIONdefine

MK_UI_FRAME_DESC_VERSION

ABI version for mk_ui_frame_desc_t.

MK_UI_ID_INVALIDdefine

MK_UI_ID_INVALID

Invalid UI element identifier.

MK_UI_INVALIDdefine

MK_UI_INVALID

Invalid UI context handle.

MK_UI_MOTION_VERSIONdefine

MK_UI_MOTION_VERSION

ABI version for mk_ui_motion_t.

MK_UI_PRESENCE_DESC_VERSIONdefine

MK_UI_PRESENCE_DESC_VERSION

ABI version for mk_ui_presence_desc_t.

MK_UI_SEMANTICS_VERSIONdefine

MK_UI_SEMANTICS_VERSION

ABI version for mk_ui_semantics_t.

MK_UI_TEXT_DESC_VERSIONdefine

MK_UI_TEXT_DESC_VERSION

ABI version for mk_ui_text_desc_t.

MK_UI_TEXT_EDIT_DESC_VERSIONdefine

MK_UI_TEXT_EDIT_DESC_VERSION

ABI version for mk_ui_text_edit_desc_t.

MK_UI_VIRTUAL_LIST_DESC_VERSIONdefine

MK_UI_VIRTUAL_LIST_DESC_VERSION

ABI version for mk_ui_virtual_list_desc_t.