Text and input API
Declared by <huxerui/text.h>, <huxerui/text_input.h>, <huxerui/validation.h>, and <huxerui/clipboard.h>.
Fonts and styles
Section titled “Fonts and styles”FontFamilyKind:System,Monospace, orNamed.FontWeight:Thin,ExtraLight,Light,Regular,Medium,SemiBold,Bold,ExtraBold, orBlack.FontSlant:NormalorItalic.Font:System(size), named/fallback family construction, and fluent size/weight/slant updates; equality compares descriptor values.TextDecoration:None,Underline,StrikeThroughflags; bitwise|,&, andHasTextDecorationsupport combinations.TextStyle:font,foreground, anddecoration.
Shaping and layout
Section titled “Shaping and layout”TextDirection:Auto,LeftToRight, orRightToLeft.TextShapingOptions: locale/language and direction inputs.TextAlign:Leading,Center, orTrailing.TextWrap:NoWraporWord.TextLayoutOptions: shaping options, alignment, and wrapping; maximum width is the separateMeasureTextargument.FontMetrics,TextRunMetrics, andTextLayoutMetrics: ascent/descent/leading, run geometry, overall size, baselines, and line data.TextMeasurerplatform interface andUseTextMeasurer()extension hook.
Editing values
Section titled “Editing values”TextOffsetis signed 64-bit;TextInputSessionIdis unsigned 64-bit.TextAffinity:UpstreamorDownstream;TextPosition,TextRange, andTextSelectionmodel caret/range state.TextEditingValuecontains UTF-8 text, selection, and composition range with validation/equality helpers.
IME command boundary
Section titled “IME command boundary”TextInputCommandKind values are SetSelection, BeginComposition, UpdateComposition, CommitText, FinishComposition, CancelComposition, and DeleteSurrounding.
TextInputCoordinateSpace is Text or Composition; TextInputUnit is Utf16CodeUnit or UnicodeCodePoint.
TextInputCommand and TextInputCommandBatch carry revisioned platform edits.
-
TextInputType:Text,Email,Number,Decimal,Phone, orUrl. -
TextCapitalization:None,Characters,Words, orSentences. -
TextInputAction:Default,Done,Go,Next,Search,Send, orNewline. -
TextInputConfiguration: type, capitalization, action, multiline, secure, autocorrect, and read-only flags. -
TextInputResultCode:Ok,SessionMismatch,Rejected, orReadOnly. -
TextInputSyncAction:None,Update, orRestart. -
TextInputEndReason:FocusLost,ClientRemoved,Disabled,ReadOnly, orRuntimeDestroyed. -
TextInputKeyResult:UnhandledorHandled. -
State/result structures:
TextInputState,TextInputApplyResult,TextInputContext,TextInputGeometry, andTextInputPositionResult.
TextInputClient and TextSelectionClient are mounted extension interfaces. PlatformTextInput is the adapter interface for begin/update/end session, keyboard, geometry queries, selection menus, and platform synchronization.
Validation
Section titled “Validation”ValidationStatus is None, Valid, Invalid, or Pending. ValidationResult has named factories and IsInvalid. Required and EmailAddress accept optional localized messages. Validate(value, rules...) evaluates until a rule is non-valid.
Clipboard
Section titled “Clipboard”TextEditingAction is Cut, Copy, Paste, or SelectAll. TextSelectionMenuLabels supplies localized labels. PlatformClipboard defines ReadText and WriteText for adapters.
Complete controlled TextField example
Section titled “Complete controlled TextField example”#include <huxerui/huxerui.h>
using namespace huxerui;
[[huxerui::scope]]View AccountEmail() { auto email = UseState(TextEditingValue::FromText(""));
return TextField(email) .Label("Email") .Placeholder("name@example.com") .Variant(TextFieldVariant::Outlined) .InputConfiguration({ .type = TextInputType::Email, .action = TextInputAction::Done, }) .Validation(Validate(email->text, Required(), EmailAddress())) .OnChanged([email](const TextEditingValue& next) { email = next; });}Writing the complete event value preserves selection, affinity, and composition. Validation reports domain state and does not rewrite the edit.

