All Classes and Interfaces

Class
Description
What one backend serves (TODO.md 0.6, 5.3): per platform, the DataVersion range it was checked against, plus the runtime names it is remapped to.
The backends a jar bundles, and which one serves a running game (TODO.md 5.3).
A push button, drawn as the version's vanilla button.
A check box with its label to the right, like vanilla's Checkbox (1.16+; older versions get an equivalent drawing).
A color setting: a button "label: #RRGGBB" with a swatch of the color on it.
A yes/no question on its own screen, drawn as the version's vanilla confirm screen (like "Delete world?").
A button that steps through a fixed list of values, shown as "label: value" like vanilla's option buttons (e.g.
Picks one of a list of values, for lists too long to step through with a Cycle: languages, biomes, profiles.
One widget on a MenuScreen: the base class of every widget type (Button, Toggle, Slider…).
The options every entry builder has.
One method per entry type, for code that must handle every widget: a backend implements it to create the vanilla widget for each entry, and the test fixture's FakeHost to render and drive them.
The fail-safe around every backend entry point (D9, TODO.md 9.1): Options screen hooks, opening the menu, the mod list's config screen, a menu screen's init and drawing, and GameBridge calls.
Test switch for the fail-safe paths (D9): with -Dxis_mvui.forceError=true every backend hook that calls ForcedFailure.check(String) fails as if Minecraft had changed under it, so integration tests can show that the game and sync keep working without the menu.
The running game's options file, for menus that save or restore it (TODO.md §3.5): e.g.
A keyboard key or mouse button that a Keybind can be set to, the same in every Minecraft version.
Whether a Key is a keyboard key or a mouse button.
A key binding button, as on vanilla's Controls screen: "label: key".
Read-only text on its own row: an explanation, a heading, or a value to show.
The main screen type: a title, a vertical, scrolling list of entries, and a row of footer entries at the bottom (usually "Done").
Where backends run UiHost.runAsync(Callable, BiConsumer) tasks: one daemon thread per mod, so a mod whose task hangs (store IO waiting on another instance's file lock) holds up only its own menu.
A text box of several lines, for notes, descriptions or lists the player types freely.
Where mods register their menus with Xi's Multiversion UI Lib, and the static entry point of the API.
One successful MultiversionUi.register(String, Text, ScreenFactory) call: a mod id, its display name and its guarded menu.
What MultiversionUi needs from the library's runtime (core, which implements it): the part that knows the running game and its backend.
A TextInput for a number, optionally between a minimum and a maximum.
What GameBridge.reloadOptions() could not apply in the running game: the options that take effect only after a restart.
Something a UiHost can open: exactly one of MenuScreen (a list of widgets) or ConfirmDialog (a yes/no question).
A mod's menu: builds the menu's first screen each time the player opens it.
A titled group of entries on a MenuScreen.
A scrolling list of rows of text, at most one of them selected, like vanilla's world or server lists.
One row of a SelectList: an id the mod knows it by, and the text shown.
A vanilla slider over a range of numbers, showing "label: value" on the slider itself, like vanilla's FOV or volume sliders.
A line the screen's actions write their results to, e.g.
The severity of a message; backends pick its color from it (e.g.
Edits a list of unique strings, such as server addresses, item ids or ignored player names: a list of the items, a text field for a new item, and Add and Remove buttons.
A piece of user-visible text, independent of Minecraft's text classes (which differ between versions).
The editing logic of a MultiLineInput box, for backends of versions without vanilla's MultiLineEditBox (before 1.19.3, TODO.md Phase 11): text, cursor, word wrap, scrolling and the keys, so such a backend only draws the box and feeds it input.
One line as drawn: text().substring(start, end), without its line break.
A one-line text field with a label above it and an error line below it, like the name field of vanilla's world-creation screen.
An on/off setting, drawn as a vanilla button reading "label: ON" or "label: OFF" (UiTexts.ON, UiTexts.OFF), like the toggles on vanilla's options screens.
A backend's entry point: the class BackendDescriptor.entryClassName() names, with a public no-argument constructor.
Shows a menu's screens and runs work for them.
The mod loader a backend serves (TODO.md 0.6).
Ready-made texts: the ones the widgets themselves need, and common button labels mods can reuse.