abstract class UI::PlatformVisitor

Overview

Abstract visitor for platform-specific rendering of UI views.

Each concrete platform renderer (macOS/AppKit, iOS/UIKit, Android, Web/HTML) implements this interface. The visitor pattern decouples the view tree structure from rendering logic, allowing the same view hierarchy to be rendered natively on any target platform.

Example: class WebRenderer < UI::PlatformVisitor def visit(view : UI::Label) # emit element end # ... implement all visit methods end

Direct Known Subclasses

Defined in:

ui/platform_visitor.cr

Instance Method Summary

Instance Method Detail

abstract def visit(view : Label) #

[View source]
abstract def visit(view : Button) #

[View source]
abstract def visit(view : VStack) #

[View source]
abstract def visit(view : HStack) #

[View source]
abstract def visit(view : ZStack) #

[View source]
abstract def visit(view : Image) #

[View source]
abstract def visit(view : TextField) #

[View source]
abstract def visit(view : ScrollView) #

[View source]
abstract def visit(view : Spacer) #

[View source]
abstract def visit(view : Toggle) #

[View source]
abstract def visit(view : Checkbox) #

[View source]
abstract def visit(view : RadioGroup) #

[View source]
abstract def visit(view : Slider) #

[View source]
abstract def visit(view : NavigationStack) #

[View source]
abstract def visit(view : NavigationLink) #

[View source]
abstract def visit(view : TabView) #

[View source]
abstract def visit(view : ProgressView) #

[View source]
abstract def visit(view : ActivityIndicator) #

[View source]
abstract def visit(view : Alert) #

[View source]
abstract def visit(view : Picker) #

[View source]
abstract def visit(view : IconButton) #

[View source]
abstract def visit(view : ListView) #

[View source]
abstract def visit(view : OutlineView) #

[View source]
def visit(view : ColumnView) #

[View source]
def visit(view : TokenField) #

[View source]
def visit(view : ImageWell) #

[View source]
def visit(view : Panel) #

[View source]
def visit(view : Gauge) #

[View source]
def visit(view : ActivityRing) #

[View source]
def visit(view : ActivityRings) #

[View source]
abstract def visit(view : SecureField) #

[View source]
abstract def visit(view : Stepper) #

[View source]
abstract def visit(view : SegmentedControl) #

[View source]
abstract def visit(view : DatePicker) #

[View source]
abstract def visit(view : TimePicker) #

[View source]
abstract def visit(view : SearchField) #

[View source]
abstract def visit(view : TextArea) #

[View source]
abstract def visit(view : Grid) #

[View source]
abstract def visit(view : Form) #

[View source]
abstract def visit(view : NavigationSplitView) #

[View source]
abstract def visit(view : Toolbar) #

[View source]
abstract def visit(view : Sheet) #

[View source]
abstract def visit(view : Popover) #

[View source]
abstract def visit(view : ConfirmationDialog) #

[View source]
abstract def visit(view : Snackbar) #

[View source]
abstract def visit(view : Card) #

[View source]
abstract def visit(view : Surface) #

[View source]
abstract def visit(view : Divider) #

[View source]
abstract def visit(view : GlassBackground) #

[View source]
abstract def visit(view : AsyncImage) #

P2 Wave 3


[View source]
abstract def visit(view : RichText) #

[View source]
abstract def visit(view : LinkButton) #

[View source]
abstract def visit(view : MenuButton) #

[View source]
abstract def visit(view : ToggleButton) #

[View source]
abstract def visit(view : TextEditor) #

[View source]
abstract def visit(view : Circle) #

P3 Stubs


[View source]
abstract def visit(view : Rectangle) #

[View source]
abstract def visit(view : RoundedRectangle) #

[View source]
abstract def visit(view : Capsule) #

[View source]
abstract def visit(view : Canvas) #

[View source]
abstract def visit(view : PathView) #

[View source]
abstract def visit(view : MapView) #

[View source]
abstract def visit(view : ChartView) #

[View source]
abstract def visit(view : WebViewComponent) #

[View source]
abstract def visit(view : ColorPicker) #

[View source]
abstract def visit(view : VideoPlayer) #

[View source]
abstract def visit(view : Tooltip) #

[View source]
abstract def visit(view : ActivityView) #

[View source]
abstract def visit(view : DisclosureGroup) #

[View source]
abstract def visit(view : PageControl) #

[View source]
abstract def visit(view : ComboBox) #

[View source]
abstract def visit(view : RatingIndicator) #

[View source]
abstract def visit(view : ActionSheetWithWebFallback) #

[View source]
abstract def visit(view : ContextMenuWithWebFallback) #

[View source]
abstract def visit(view : PathControlWithWebFallback) #

[View source]
abstract def visit(view : SwipeActionRow) #

Phase 6.10 — SwipeActionRow. iOS renders SwiftUI .swipeActions; macOS + desktop-web render visible trailing buttons; mobile-web renders touch-swipe-to-reveal panel.


[View source]