Im
Immediate mode UI system for Ceramic inspired by Dear ImGui.
Im provides a stateless, code-driven UI API that creates and manages UI elements on-the-fly. Unlike traditional retained-mode UI systems where you create and maintain UI objects, Im allows you to declare UI in a procedural way:
Im.begin();
if (Im.button("Click me!")) {
trace("Button clicked!");
}
Im.textField("Name", namePointer);
Im.slider("Volume", volumePointer, 0, 100);
Im.end();
Key features:
- Immediate mode paradigm - UI is rebuilt every frame
- Automatic layout with rows and columns
- Built-in controls: buttons, text fields, sliders, checkboxes, etc.
- Window management with docking and tabs
- Theme support with runtime customization
- Cross-platform compatibility through Ceramic
The system uses pointers (functions that get/set values) to bind controls to data, allowing the UI to automatically reflect and modify application state.
Static Members
Creates a directory picker field.
Shows a text field with a browse button that opens a directory selection dialog. Only available when dialogs plugin is enabled.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the field |
value |
StringPointer | Pointer to the directory path string | |
placeholder |
String | (optional) | Text shown when field is empty |
Returns | Description |
---|---|
Bool | True if the directory changed this frame |
editFile(?title: String, value: StringPointer, ?placeholder: String, ?filters: Null<ceramic.DialogsFileFilter>): Bool
Creates a file picker field.
Shows a text field with a browse button that opens a file selection dialog. Only available when dialogs plugin is enabled.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the field |
value |
StringPointer | Pointer to the file path string | |
placeholder |
String | (optional) | Text shown when field is empty |
filters |
Null<ceramic.DialogsFileFilter> | (optional) | File type filters for the dialog |
Returns | Description |
---|---|
Bool | True if the file path changed this frame |
Initializes the Im system if not already initialized.
This method ensures that:
- The global context view exists
- A default theme is created
- The Im system is ready for use
This is automatically called by most Im methods, but can be called manually if early initialization is needed.
Extracts the ID portion from a window key.
Window keys can contain both an ID and a title. This method extracts just the ID portion, which is used for window lookup and persistence.
Currently returns the key as-is, but may parse complex keys in the future (e.g., "id###title" format).
Name | Type | Description |
---|---|---|
key |
String | The window key to extract ID from |
Returns | Description |
---|---|
String | The extracted ID |
Extracts the title portion from a window key.
Window keys can contain both an ID and a title. This method extracts just the title portion, which is displayed in the window header.
Currently returns the key as-is, but may parse complex keys in the future (e.g., "id###title" format).
Name | Type | Description |
---|---|---|
key |
String | The window key to extract title from |
Returns | Description |
---|---|
String | The extracted title |
Sets the rendering depth for the entire Im UI layer.
This affects the z-order of all Im windows and controls relative to other visuals in the scene. Higher values render on top.
Must be called before any windows are created to take effect.
Name | Type | Description |
---|---|---|
depth |
Float | The depth value to set |
Gets a window by its key.
Returns the Window instance if it exists, or null if no window with the given key has been created yet.
This is useful for checking if a window is open or accessing its properties from outside the begin/end block.
Name | Type | Description |
---|---|---|
key |
String | The window key |
Returns | Description |
---|---|
Window | The Window instance or null |
Return true
if any window is hitten given point.
Name | Type | Description |
---|---|---|
x |
Float | X position (logical screen metric) |
y |
Float | Y position (logical screen metric) |
Returns | Description |
---|---|
Bool | Bool |
Returns true
if there is a currently focused field that uses the given scan code
Name | Type | Description |
---|---|---|
scanCode |
ceramic.ScanCode | The scan code to test |
Returns | Description |
---|---|
Bool | true if this scan code is used |
Returns true
if there is a currently focused field that uses the given key code
Name | Type | Description |
---|---|---|
keyCode |
ceramic.KeyCode | The key code to test |
Returns | Description |
---|---|
Bool | true if this key code is used |
Checks if any Command (Mac) or Control (Windows/Linux) key is being used.
This is useful for detecting platform-specific modifier keys for keyboard shortcuts. Returns true if any focused field is using these keys.
Returns | Description |
---|---|
Bool | True if Cmd/Ctrl keys are in use |
Checks if any Shift key is being used.
Returns true if any focused field is using either the left or right Shift key. Useful for detecting shift-modified shortcuts.
Returns | Description |
---|---|
Bool | True if Shift keys are in use |
begin(key: String, title: String, ?width: Float = WindowData.DEFAULT_WIDTH, ?height: Float = WindowData.DEFAULT_HEIGHT, ?pos: Null<haxe.PosInfos>): Window
Begins an Im window with separate key and title.
This starts the declaration of a new window or continues an existing one. All Im controls called after begin() will be added to this window until end() is called.
The key is used to identify the window across frames, while the title is displayed in the window header.
Name | Type | Default | Description |
---|---|---|---|
key |
String | Unique identifier for the window | |
title |
String | Display title for the window header | |
width |
Float | WindowData.DEFAULT_WIDTH |
Initial window width (default: 200) |
height |
Float | WindowData.DEFAULT_HEIGHT |
Initial window height (default: 400) |
pos |
Null<haxe.PosInfos> | (optional) | Source position (auto-provided) |
Returns | Description |
---|---|
Window | The Window instance |
Begins a tab bar container.
Creates a horizontal tab bar where each tab() call adds a new tab. The selected tab is controlled by the StringPointer parameter.
Must be followed by one or more tab() calls and ended with endTabs().
Name | Type | Description |
---|---|---|
selected |
StringPointer | Pointer to the currently selected tab ID |
Returns | Description |
---|---|
Bool | True if the selected tab changed this frame |
Ends a tab bar container.
Must be called after beginTabs() and all tab() declarations. Will assert if called without a matching beginTabs() or if no tabs were declared.
Declares a tab in the current tab bar.
Uses the key as both the tab ID and display title. Must be called between beginTabs() and endTabs().
Name | Type | Description |
---|---|---|
key |
String | Tab identifier and display title |
Returns | Description |
---|---|
Bool | True if this tab is currently selected |
Begins a row layout for subsequent controls.
Controls added after beginRow() will be arranged horizontally in a single row until endRow() is called. The width of each control is determined by its flex value.
Nested rows are not supported - calling beginRow() while already in a row will trigger an assertion.
Im.beginRow();
Im.button("Left"); // Default flex=1
Im.flex(2);
Im.button("Middle"); // Takes up twice the space
Im.button("Right"); // Default flex=1
Im.endRow();
Ends the current row layout.
Must be called after beginRow() to complete the row. Resets the flex value to default (1) for subsequent controls.
Begins tracking changes to control values.
After calling this method, any changes to control values (text fields, sliders, checkboxes, etc.) will be tracked. Call endChangeCheck() to check if any values changed.
Change checks can be nested - each begin/end pair tracks changes independently.
Im.beginChangeCheck();
Im.textField("Name", namePointer);
Im.slider("Volume", volumePointer, 0, 100);
if (Im.endChangeCheck()) {
trace("Settings changed!");
saveSettings();
}
Ends change tracking and returns if any changes occurred.
Must be called after beginChangeCheck(). Returns true if any control values changed between the begin/end calls.
Returns | Description |
---|---|
Bool | True if any tracked values changed |
Sets the label position for subsequent controls.
Controls where labels appear relative to their input fields:
- LEFT: Label to the left of the field
- RIGHT: Label to the right of the field
- TOP: Label above the field
- BOTTOM: Label below the field
Name | Type | Default | Description |
---|---|---|---|
labelPosition |
LabelPosition | DEFAULT_LABEL_POSITION |
The position to use (default: RIGHT) |
Sets the width of labels for subsequent controls.
Can be specified as:
- Absolute pixels: positive values
- Percentage: use ViewSize.percent()
- Auto-size: use ViewSize.auto()
Name | Type | Default | Description |
---|---|---|---|
labelWidth |
Float | DEFAULT_LABEL_WIDTH |
The width to use (default: 35%) |
Sets the text alignment for subsequent text controls.
Affects text(), labels, and other text-based controls.
Name | Type | Default | Description |
---|---|---|---|
textAlign |
Anonymous | DEFAULT_TEXT_ALIGN |
The alignment to use (LEFT, CENTER, RIGHT) |
Sets whether subsequent controls should be disabled.
Disabled controls are rendered with reduced opacity and don't respond to user interaction.
Name | Type | Description |
---|---|---|
disabled |
Bool | True to disable controls, false to enable |
Sets the flex value for the next control in a row.
When in a row layout (between beginRow/endRow), flex determines the relative width of controls. A control with flex=2 will be twice as wide as a control with flex=1.
Only applies to the next control added.
Name | Type | Description |
---|---|---|
flex |
Int | The flex value (default: 1) |
Resets the text color to the default theme color.
Removes any custom text color override, allowing subsequent text to use the theme's default text color.
Resets the background color to the default theme color.
Removes any custom background color override, allowing subsequent controls to use the theme's default background color.
Resets the tint color to default (no tint).
Removes any color tinting applied to subsequent controls, returning them to their original theme colors.
Sets whether subsequent text should be rendered in bold.
Affects text(), labels, and other text-based controls. The actual bold rendering depends on the font's bold variant being available.
Name | Type | Description |
---|---|---|
bold |
Bool | True for bold text, false for normal |
Sets the asset manager to use for loading images and other resources.
When set, Im will use this asset manager for loading images referenced by asset ID. If not set, Im will use the default asset manager.
Name | Type | Default | Description |
---|---|---|---|
assets |
ceramic.Assets | (optional) | The asset manager to use, or null to use default |
Sets the theme to use for subsequent controls.
The theme controls colors, fonts, and other visual properties of Im controls. Pass null to revert to the default theme.
Changes to the theme affect all controls created after this call within the current frame.
Name | Type | Description |
---|---|---|
theme |
Theme | The theme to use, or null for default |
position(x: Float, y: Float, ?anchorX: Float = 0, ?anchorY: Float = 0, ?roundXY: Bool = true): Void
Sets the position of the current window.
Positions the window at the specified coordinates with optional anchor points. The window becomes non-movable when positioned manually.
Must be called between begin() and end().
Name | Type | Default | Description |
---|---|---|---|
x |
Float | X position in screen coordinates | |
y |
Float | Y position in screen coordinates | |
anchorX |
Float | 0 |
Horizontal anchor (0=left, 0.5=center, 1=right) |
anchorY |
Float | 0 |
Vertical anchor (0=top, 0.5=center, 1=bottom) |
roundXY |
Bool | true |
Whether to round coordinates to whole pixels |
Sets the scrollbar visibility for the current window.
Controls when scrollbars appear in the window:
- AUTO: Show when content overflows
- ALWAYS: Always visible
- NEVER: Never show scrollbars
Must be called between begin() and end().
Name | Type | Description |
---|---|---|
visibility |
ScrollbarVisibility | The scrollbar visibility mode |
Requests focus for the current window.
The window will be brought to front and receive input focus. Must be called between begin() and end().
Marks the current window as expanded.
Expanded windows start maximized and cannot be collapsed. Must be called between begin() and end().
Sets whether the current window should display a header.
The header contains the window title and optional close button. Windows without headers cannot be dragged by the title bar.
Name | Type | Description |
---|---|---|
header |
Bool | True to show header, false to hide |
Makes the window display with a modal overlay.
An overlay darkens the background and blocks interaction with other windows. Returns true if the overlay (outside the window) was clicked this frame.
Returns | Description |
---|---|
Bool | True if the overlay background was clicked |
Sets the alignment of the window title in the header.
Only applies to windows with headers enabled.
Name | Type | Description |
---|---|---|
titleAlign |
Anonymous | The text alignment (LEFT, CENTER, RIGHT) |
Makes the window closable with a close button.
Adds a close button to the window header. If an isOpen pointer is provided, it will be set to false when the window is closed.
Name | Type | Default | Description |
---|---|---|---|
isOpen |
Null<BoolPointer> | (optional) | Optional pointer to control window open state |
Returns | Description |
---|---|
Bool | True if the window was closed this frame |
list(?height: Float = -1, items: ArrayPointer, ?selected: Null<IntPointer>, ?sortable: Bool = false, ?lockable: Bool = false, ?trashable: Bool = false, ?duplicable: Bool = false): ListStatus
Creates a list view with standard-sized items.
Displays a scrollable list of items with optional features:
- Selection tracking through the selected pointer
- Drag-and-drop sorting
- Item locking/unlocking
- Item deletion
- Item duplication
Name | Type | Default | Description |
---|---|---|---|
height |
Float | -1 |
List height in pixels (-1 for auto) |
items |
ArrayPointer | Pointer to the array of items to display | |
selected |
Null<IntPointer> | (optional) | Pointer to the selected item index |
sortable |
Bool | false |
Enable drag-and-drop reordering |
lockable |
Bool | false |
Enable lock/unlock toggle per item |
trashable |
Bool | false |
Enable delete button per item |
duplicable |
Bool | false |
Enable duplicate button per item |
Returns | Description |
---|---|
ListStatus | Status flags indicating what changed |
select(?title: String, value: StringPointer, list: Array<String>, ?nullValueText: String): Bool
Name | Type | Default |
---|---|---|
title |
String | (optional) |
value |
StringPointer | |
list |
Array<String> | |
nullValueText |
String | (optional) |
Returns |
---|
Bool |
Creates a checkbox control.
Displays a checkbox that toggles a boolean value. The checkbox shows a checkmark when true and is empty when false.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the checkbox |
value |
BoolPointer | Pointer to the boolean value | |
alignLabel |
Bool | false |
Align label using standard label width |
Returns | Description |
---|---|
CheckStatus | Status flags indicating checked state and if changed |
Creates a color picker field.
Shows a color preview that opens a color picker dialog when clicked. The color value is stored as an integer in ARGB format.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the field |
value |
IntPointer | Pointer to the color value |
Returns | Description |
---|---|
Bool | True if the color changed this frame |
editText(?title: String, value: StringPointer, ?multiline: Bool = false, ?placeholder: String, ?autocompleteCandidates: Array<String>, ?focused: Bool = false, ?autocompleteOnFocus: Bool = true): EditTextStatus
Creates a text input field.
Supports single-line or multi-line text editing with optional placeholder text and autocomplete suggestions.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the field |
value |
StringPointer | Pointer to the string value | |
multiline |
Bool | false |
Enable multi-line editing |
placeholder |
String | (optional) | Text shown when field is empty |
autocompleteCandidates |
Array<String> | (optional) | List of autocomplete suggestions |
focused |
Bool | false |
Request focus on this field |
autocompleteOnFocus |
Bool | true |
Show autocomplete when focused |
Returns | Description |
---|---|
EditTextStatus | Status flags indicating edit state |
editInt(?title: String, value: IntPointer, ?placeholder: String, ?minValue: Int, ?maxValue: Int): Bool
Creates an integer input field.
Allows numeric input with optional min/max constraints. Non-numeric input is automatically filtered out.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the field |
value |
IntPointer | Pointer to the integer value | |
placeholder |
String | (optional) | Text shown when field is empty |
minValue |
Int | (optional) | Minimum allowed value |
maxValue |
Int | (optional) | Maximum allowed value |
Returns | Description |
---|---|
Bool | True if the value changed this frame |
editFloat(?title: String, value: FloatPointer, ?placeholder: String, ?minValue: Float, ?maxValue: Float, ?round: Int): Bool
Creates a float input field.
Allows decimal numeric input with optional min/max constraints and rounding precision.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the field |
value |
FloatPointer | Pointer to the float value | |
placeholder |
String | (optional) | Text shown when field is empty |
minValue |
Float | (optional) | Minimum allowed value |
maxValue |
Float | (optional) | Maximum allowed value |
round |
Int | (optional) | Rounding precision (e.g., 100 = 2 decimals) |
Returns | Description |
---|---|
Bool | True if the value changed this frame |
Creates an integer slider control.
Provides a draggable slider for selecting integer values within a specified range. More intuitive than text input for ranges.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the slider |
value |
IntPointer | Pointer to the integer value | |
minValue |
Int | Minimum slider value | |
maxValue |
Int | Maximum slider value |
Returns | Description |
---|---|
Bool | True if the value changed this frame |
slideFloat(?title: String, value: FloatPointer, minValue: Float, maxValue: Float, ?round: Int = 1000): Bool
Creates a float slider control.
Provides a draggable slider for selecting float values within a specified range with configurable precision.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the slider |
value |
FloatPointer | Pointer to the float value | |
minValue |
Float | Minimum slider value | |
maxValue |
Float | Maximum slider value | |
round |
Int | 1000 |
Rounding precision (e.g., 100 = 2 decimals) |
Returns | Description |
---|---|
Bool | True if the value changed this frame |
visual(?title: String, visual: ceramic.Visual, ?scaleToFit: Bool = false, ?alignLabel: Bool = false, ?useFilter: Bool = true): Void
Displays a custom visual element.
Embeds any Ceramic Visual object within the Im layout. The visual can be scaled to fit within constraints or displayed at its natural size.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the visual |
visual |
ceramic.Visual | The Visual object to display | |
scaleToFit |
Bool | false |
Scale the visual to fit available space |
alignLabel |
Bool | false |
Align label using standard label width |
useFilter |
Bool | true |
Apply texture filtering when scaling |
image(?title: String, tile: ceramic.TextureTile, ?scaleToFit: Bool = false, ?alignLabel: Bool = false, ?textureFilter: Anonymous): ceramic.Quad
Displays an image from a texture tile.
Shows a TextureTile (sub-region of a texture) within the Im layout.
Name | Type | Default | Description |
---|---|---|---|
title |
String | (optional) | Optional label for the image |
tile |
ceramic.TextureTile | The texture tile to display | |
scaleToFit |
Bool | false |
Scale image to fit available space |
alignLabel |
Bool | false |
Align label using standard label width |
textureFilter |
Anonymous | (optional) | Texture filtering mode (LINEAR/NEAREST) |
Returns | Description |
---|---|
ceramic.Quad | The Quad visual displaying the image |
Adds a standard margin space.
Inserts negative spacing to reduce the gap between form items. Useful for tightening layouts.
Adds vertical spacing.
Inserts empty vertical space between controls. Use negative values to reduce spacing. Default uses theme spacing.
Name | Type | Default | Description |
---|---|---|---|
height |
Float | DEFAULT_SPACE_HEIGHT |
Space height in pixels (default: theme spacing) |
Adds a horizontal line separator.
Draws a horizontal line to visually separate sections. The line color is determined by the current theme.
Name | Type | Default | Description |
---|---|---|---|
height |
Float | DEFAULT_SEPARATOR_HEIGHT |
Total height including padding (default: 7) |
Creates a button with explicit enabled state.
Name | Type | Description |
---|---|---|
title |
String | The button label |
enabled |
Bool | Whether the button is clickable |
Returns | Description |
---|---|
Bool | True if the button was clicked this frame |
Sets the font point size for subsequent text.
Affects text(), labels, and all text-based controls until changed again or the frame ends.
Name | Type | Default | Description |
---|---|---|---|
pointSize |
Int | 12 |
Font size in points (default: 12) |
Sets the pre-rendered font size for bitmap fonts.
When using bitmap fonts, this specifies which pre-rendered size to use. Set to -1 to use automatic size selection.
Name | Type | Default | Description |
---|---|---|---|
preRenderedSize |
Int | -1 |
The bitmap font size to use, or -1 for auto |
Displays static text.
Renders a text label using the current theme settings. The text is not selectable or editable.
Name | Type | Default | Description |
---|---|---|---|
value |
String | The text to display | |
align |
Anonymous | (optional) | Optional text alignment override |
Ends the current window declaration.
Must be called after begin() and all window content has been added. This finalizes the window layout and renders all controls.
Will assert if called without a matching begin().
Gets the currently focused Im window.
Returns the Window that currently has input focus, or null if no Im window is focused. Useful for checking if the Im UI is capturing input.
Returns | Description |
---|---|
Window | The focused Window or null |
Allows events from a specific entity owner.
When Im windows are focused, they block events from other entities by default. Use this to whitelist specific entities whose events should still be processed. The entity is automatically removed from the allowed list when destroyed.
Name | Type | Description |
---|---|---|
owner |
ceramic.Entity | The entity to allow events from |
Removes an entity from the allowed owners list.
Events from this entity will be blocked again when Im windows are focused. Also removes the destroy listener if the entity still exists.
Name | Type | Description |
---|---|---|
owner |
ceramic.Entity | The entity to remove from allowed list |
confirm(title: String, message: String, ?cancelable: Bool = true, ?yes: String, ?no: String, ?width: Float = DIALOG_WIDTH, ?height: Float = WindowData.DEFAULT_HEIGHT, ?key: String): ConfirmStatus
Shows a confirmation dialog (synchronous version).
Displays a modal dialog with Yes/No buttons. The dialog can be canceled by clicking outside if cancelable is true.
This version returns immediately with the current status. Use the returned ConfirmStatus to check if the user made a choice.
Name | Type | Default | Description |
---|---|---|---|
title |
String | Dialog window title | |
message |
String | Message to display | |
cancelable |
Bool | true |
Allow closing by clicking outside |
yes |
String | (optional) | Custom "Yes" button text |
no |
String | (optional) | Custom "No" button text |
width |
Float | DIALOG_WIDTH |
Dialog width in pixels |
height |
Float | WindowData.DEFAULT_HEIGHT |
Dialog height in pixels |
key |
String | (optional) | Optional unique key for persistent dialogs |
Returns | Description |
---|---|
ConfirmStatus | Current dialog status |
info(title: String, message: String, ?cancelable: Bool = false, ?ok: String, ?width: Float = DIALOG_WIDTH, ?height: Float = WindowData.DEFAULT_HEIGHT, ?key: String): InfoStatus
Shows an information dialog (synchronous version).
Displays a modal dialog with an OK button. The dialog can be canceled by clicking outside if cancelable is true.
This version returns immediately with the current status. Use the returned InfoStatus to check if the user clicked OK.
Name | Type | Default | Description |
---|---|---|---|
title |
String | Dialog window title | |
message |
String | Message to display | |
cancelable |
Bool | false |
Allow closing by clicking outside |
ok |
String | (optional) | Custom "OK" button text |
width |
Float | DIALOG_WIDTH |
Dialog width in pixels |
height |
Float | WindowData.DEFAULT_HEIGHT |
Dialog height in pixels |
key |
String | (optional) | Optional unique key for persistent dialogs |
Returns | Description |
---|---|
InfoStatus | Current dialog status |
prompt(title: String, message: String, value: StringPointer, ?placeholder: String, ?cancelable: Bool = false, ?ok: String, ?cancel: String, ?width: Float = DIALOG_WIDTH, ?height: Float = WindowData.DEFAULT_HEIGHT, ?key: String): PromptStatus
Shows a text input dialog (synchronous version).
Displays a modal dialog with a text field and OK/Cancel buttons. The dialog can be canceled by clicking outside if cancelable is true.
This version returns immediately with the current status. The text value is read from and written to the provided StringPointer.
Name | Type | Default | Description |
---|---|---|---|
title |
String | Dialog window title | |
message |
String | Message to display | |
value |
StringPointer | Pointer to the text value | |
placeholder |
String | (optional) | Placeholder text for empty field |
cancelable |
Bool | false |
Allow closing by clicking outside |
ok |
String | (optional) | Custom "OK" button text |
cancel |
String | (optional) | Custom "Cancel" button text |
width |
Float | DIALOG_WIDTH |
Dialog width in pixels |
height |
Float | WindowData.DEFAULT_HEIGHT |
Dialog height in pixels |
key |
String | (optional) | Optional unique key for persistent dialogs |
Returns | Description |
---|---|
PromptStatus | Current dialog status |
choice(title: String, message: String, ?cancelable: Bool = false, choices: Array<String>, ?width: Float = DIALOG_WIDTH, ?height: Float = WindowData.DEFAULT_HEIGHT, ?key: String): ChoiceStatus
Shows a multiple choice dialog (synchronous version).
Displays a modal dialog with multiple buttons for each choice. The dialog can be canceled by clicking outside if cancelable is true.
This version returns immediately with the current status. Use the returned ChoiceStatus to check which choice was selected.
Name | Type | Default | Description |
---|---|---|---|
title |
String | Dialog window title | |
message |
String | Message to display | |
cancelable |
Bool | false |
Allow closing by clicking outside |
choices |
Array<String> | Array of choice button labels | |
width |
Float | DIALOG_WIDTH |
Dialog width in pixels |
height |
Float | WindowData.DEFAULT_HEIGHT |
Dialog height in pixels |
key |
String | (optional) | Optional unique key for persistent dialogs |
Returns | Description |
---|---|
ChoiceStatus | Current dialog status with selected index |
Generates a unique handle for storing values.
Handles provide a way to store values that persist across frames without explicitly creating pointers. The handle is unique per source location and occurrence within a frame.
Used internally by the pointer macros (Im.bool(), Im.int(), etc.) to create implicit storage locations.
Returns | Description |
---|---|
Handle | A unique handle identifier |
Name | Type |
---|---|
intPointer |
IntPointer |
Returns |
---|
Int |
Name | Type |
---|---|
intPointer |
IntPointer |
value |
Int |
Name | Type |
---|---|
floatPointer |
FloatPointer |
Returns |
---|
Float |
Name | Type |
---|---|
floatPointer |
FloatPointer |
value |
Float |
Name | Type |
---|---|
stringPointer |
StringPointer |
Returns |
---|
String |
Name | Type |
---|---|
stringPointer |
StringPointer |
value |
String |
Name | Type |
---|---|
arrayPointer |
ArrayPointer |
Returns |
---|
Array<Dynamic> |
Name | Type |
---|---|
arrayPointer |
ArrayPointer |
value |
Array<Dynamic> |
Name | Type |
---|---|
enumValuePointer |
EnumValuePointer |
Returns |
---|
Dynamic |
Name | Type |
---|---|
enumValuePointer |
EnumValuePointer |
value |
Dynamic |
Name | Type |
---|---|
boolPointer |
BoolPointer |
Returns |
---|
Bool |
Name | Type |
---|---|
boolPointer |
BoolPointer |
value |
Bool |
Name | Type | Default |
---|---|---|
value |
Bool | (optional) |
Returns |
---|
Dynamic |
Name | Type | Default |
---|---|---|
value |
Int | (optional) |
Returns |
---|
IntPointer |
Name | Type | Default |
---|---|---|
value |
ceramic.Color | (optional) |
Returns |
---|
Dynamic |
Name | Type | Default |
---|---|---|
value |
String | (optional) |
Returns |
---|
Dynamic |
Name | Type | Default |
---|---|---|
value |
Float | (optional) |
Returns |
---|
Dynamic |
Name | Type | Default |
---|---|---|
value |
Dynamic | (optional) |
Returns |
---|
Dynamic |
Name | Type |
---|---|
value |
Dynamic |
Returns |
---|
EnumValuePointer |
Name | Type |
---|---|
value |
Dynamic |
Returns |
---|
Dynamic |
spine(?title: String, spineData: ceramic.SpineData, ?animation: String, ?skin: String, ?time: Float = -1, ?scaleToFit: Bool = false, ?alignLabel: Bool = false): ceramic.Spine
Name | Type | Default |
---|---|---|
title |
String | (optional) |
spineData |
ceramic.SpineData | |
animation |
String | (optional) |
skin |
String | (optional) |
time |
Float | -1 |
scaleToFit |
Bool | false |
alignLabel |
Bool | false |
Returns |
---|
ceramic.Spine |