volvoxgrid library

VolvoxGrid -- a pixel-rendering datagrid widget for Flutter.

This library provides VolvoxGridWidget, a StatefulWidget that renders a native VolvoxGrid via a bidirectional render session. Touch, mouse, scroll, and keyboard events are forwarded to the native engine which draws into a shared pixel buffer. The current Flutter widget path decodes RGBA frames with decodeImageFromPixels and displays them via RawImage.

Quick start

import 'package:volvoxgrid/volvoxgrid.dart';

final controller = VolvoxGridController();
await controller.create(rows: 100, cols: 5);

VolvoxGridWidget(controller: controller);

Classes

AfterEditEvent
AfterMoveColumnEvent
AfterMoveRowEvent
AfterNodeToggleEvent
AfterScrollEvent
AfterSortEvent
AfterTreeNodeToggleEvent
AfterUserFreezeEvent
AfterUserResizeEvent
AggregateRequest
AggregateResponse
AggregateType
Aggregate functions for Subtotal() and Aggregate() RPCs. Numeric parsing strips $, commas, and spaces before computing. NONE (0): No-op. CLEAR (1): Removes all existing subtotal rows. SUM (2): Sum of numeric values. PERCENT (3): 100.0 if sum ≠ 0, else 0.0. COUNT (4): Count of numeric cells. AVERAGE (5): Arithmetic mean. MAX (6): Maximum value. MIN (7): Minimum value. STD_DEV (8): Sample standard deviation (N−1 denominator). VAR (9): Sample variance (N−1 denominator). RANGE (10): Maximum minus minimum numeric value. COUNT_ALL (11): Count all cells, including non-numeric and empty cells. MEDIAN (12): Median numeric value. COUNT_DISTINCT (13): Count distinct non-empty cell values.
Align
Cell text alignment: "horizontal_vertical". ALIGN_GENERAL (9) is the engine default for data cells. It renders as left-center for text and right-center for numeric-looking values. The engine uses a heuristic (canvas.rs text_looks_numeric()) to decide at render time whether the cell content looks numeric.
AppendDataRequest
Append structured data (CSV or JSON) after existing grid rows.
ApplyScope
ArchiveRequest
Named grid snapshots using the FXAR1 archive format. See engine/src/save.rs. ACTION_UNSPECIFIED: Invalid. SAVE: Serializes grid into a named entry in the archive blob. LOAD: Deserializes a named entry back into the grid. DELETE: Removes a named entry from the archive. LIST: Returns the list of entry names without loading.
ArchiveRequest_Action
ArchiveResponse
AutoSizeMode
AutoSizeRequest
AutoSizeResponse
BarcodeCaptionOptions
BarcodeCaptionPosition
BarcodeCheckDigitMode
BarcodeData
BarcodeEncodingOptions
BarcodeQrErrorCorrection
BarcodeRenderOptions
BarcodeRenderStatus
BarcodeSymbology
BarcodeTextEncoding
BeforeEditEvent
── Edit Events ──
BeforeMouseDownEvent
── Mouse Events ── button: 0x01=primary, 0x02=secondary. modifier: 0x01=Shift, 0x02=Ctrl, 0x04=Alt, 0x08=Meta.
BeforeMoveColumnEvent
── Move Events ──
BeforeMoveRowEvent
BeforeNodeToggleEvent
── Outline Events ──
BeforePageBreakEvent
── Print Events ──
BeforeScrollEvent
── Scroll Events ──
BeforeSortEvent
── Sort Events ──
BeforeTreeNodeToggleEvent
BeforeUserResizeEvent
── Resize & Freeze Events ──
Border
BorderAppearance
Borders
Per-edge borders with a shorthand all field. Resolution: per-edge > all > inherited.
BorderStyle
BufferReady
CPU rendering: host provides an RGBA buffer for the engine to render into. The engine writes pixels in RGBA byte order (R at offset+0, G+1, B+2, A+3). The runtime maps the buffer via handle as a raw pointer and calls the CPU renderer. See runtime/src/lib.rs BufferReady handling.
ButtonRole
CellChangedEvent
── Data Events ──
CellData
CellEditChangeEvent
CellEditValidateEvent
CellFocusChangedEvent
CellFocusChangingEvent
── Navigation Events ──
CellHitArea
Which sub-element of a cell was hit. Used in ClickEvent to tell the host what the user actually clicked on. Maps to HitArea variants in engine/src/input.rs.
CellInteraction
CellRange
CellSpanMode
Content-based cell merging. The engine compares adjacent cell values and visually merges cells with identical content. See engine/src/span.rs. Spans never cross fixed/frozen/pinned boundaries or subtotal rows.
CellsResponse
CellStyle
Per-cell style override. Composed from building blocks.
CellTextEntry
Simple row/col/text entry used by setCells batch operations.
CellUpdate
CellValue
Typed cell value. Maps to CellValueData in engine/src/cell.rs: text → Text(String), number → Number(f64), flag → Bool(bool), raw → Bytes(Vec
CheckboxEditorParams
CheckedState
ClearRegion
ClearRequest
ClearResponse
ClearScope
ClickEvent
ClipboardCommand
ClipboardCopy
ClipboardCut
ClipboardDelete
ClipboardPaste
ClipboardResponse
CoercionMode
Type coercion strategy during cell writes and data loading. STRICT (1): Rejects if type doesn't match column's declared type. FLEXIBLE (2): Attempts conversion (e.g. "123" → Number 123). PARSE_ONLY (3): Parses but doesn't convert (stores original text).
ColIndicatorCell
ColIndicatorCellMode
ColIndicatorCellModes
ColIndicatorConfig
ColIndicatorRowDef
ColumnDataType
ColumnDef
CompareEvent
Request for SORT_TYPE_CUSTOM. The host must reply on the RenderSession with a CompareResponse echoing request_id. By default the comparison remains pending until the response arrives; a finite compare_response_timeout_ms is a watchdog that aborts the whole custom sort.
CompareResponse
Host response to a CompareEvent emitted on EventStream during SORT_TYPE_CUSTOM. result: <0 = row1 before row2, 0 = equal,
ComposeMethod
ConfigureRequest
ConfigureResponse
CornerIndicatorConfig
CornerIndicatorSlot
CornerIndicatorSlotKind
CreateRequest
Create a new grid instance. Returns a grid id used by all subsequent RPCs. The engine allocates a VolvoxGrid with the given viewport and optional config.
CreateResponse
CsvOptions
CursorChange
CursorType
Semantic cursor hint emitted by the engine. Adapters map this to their platform's cursor primitive (Win32 HCURSOR, CSS cursor, Flutter MouseCursor, .NET System.Windows.Forms.Cursor, …) and may layer their own host-side override on top (e.g. ActiveX MousePointer).
CustomEditorAction
CustomEditorActionEvent
CustomRenderCellEvent
── Draw Events ──
CustomRenderMode
DataRefreshedEvent
DataRefreshingEvent
── Data Refresh Events ──
DateTimeEditorParams
DblClickEvent
DefineColumnsRequest
DefineColumnsResponse
DefineRowsRequest
DefineRowsResponse
DemoDataFormat
DestroyRequest
DestroyResponse
DragCompleteEvent
DragDropEvent
DragMode
DragOverEvent
DragStartEvent
── Drag & Drop Events ──
DropMode
EditActivation
EditCancel
EditCellStyle
Resolved style properties for the edit overlay.
EditCommand
EditCommit
Commit the active editor. When value is unset, the engine commits the editor's current in-flight buffer (the last value_changed / preedit_changed it accepted). Setting value overrides that buffer, used by hosts that maintain their own text widget and want to push the final string at commit.
EditConfig
── Editing ── Edit defaults used when a column/cell does not provide a more specific EditorSpec. Wrappers normally expose simpler high-level editor builders and keep owner/presentation policy internal.
EditEndReason
EditGetState
EditorAction
EditorCapabilities
Engine-declared editor capabilities. Derived once from (EditorSpec.kind, EditorSpec.owner, ListEditorParams.allow_custom_value, …) so every host gates UI affordances against the same truth.
EditorKind
EditorListItemsRequest
EditorListItemsResponse
EditorOwner
EditorPreeditChanged
EditorPresentation
Who renders the editor surface. CANVAS: engine draws on canvas; host tracks session only (no overlay). INLINE / POPUP_* / MODAL: host mounts an overlay widget at viewport_rect. CANVAS is value 0 so that an unset/forgotten presentation field is the safe default — no surprise host overlays.
EditorSession
Canonical edit session shape. Carried by EditorSessionStarted (lifecycle) and EditState (current state snapshot). All fields the engine has agreed with the host on at session start, plus mutable runtime state.
EditorSessionCommand
EditorSessionEnded
EditorSessionStarted
Engine → host. Begins an editor session on the host side. Carries the full EditorSession snapshot. For engine-drawn editors the EditorSpec inside session.editor will have presentation = EDITOR_CANVAS; the host MUST track the session for clipboard / keyboard routing but MUST NOT show an overlay.
EditorSessionUpdated
Engine → host. Sparse delta against the last known session. Any field left unset is unchanged; validation_errors is always authoritative when present.
EditorSpec
EditorUpdateReason
EditorValue
EditorValueChanged
EditSetHighlights
EditStart
Begin an edit session. The host MUST set reason to the gesture / source that initiated the edit; the engine derives EditUiMode and the initial selection from the reason: F2 / DOUBLE_CLICK / CLICK_CARET → EDIT (caret-positioned, no select-all) everything else → ENTER (select-all, replace on first key) Leaving reason as EDIT_START_UNSPECIFIED is treated as PROGRAMMATIC by the engine but is a contract violation — hosts that drive edits from a user gesture should always pass the matching enum value so audit logs and telemetry can attribute sessions correctly.
EditStartReason
Gesture / source that initiated an edit. The engine derives EditUiMode from this: F2, DOUBLE_CLICK, CLICK_CARET → EDIT (caret-positioned, no select-all) everything else → ENTER (select-all, replace on first key)
EditState
Returned by Edit() RPC as a synchronous snapshot of the current edit session, or its absence.
EditTrigger
Controls how cell editing is activated. See engine/src/input.rs. NONE (0): Editing disabled. KEY (1): Enter/F2 starts editing. Character keys auto-start. KEY_CLICK (2): Same as KEY, plus double-click and dropdown click also start editing.
EditUiMode
Edit UI mode. See engine/src/edit.rs EditUiMode. ENTER (0): Spreadsheet-style. Enter commits and moves cursor down. Character keys replace cell content. Up/Down commit and move. EDIT (1): F2 mode. Caret placed at end of existing text. Escape cancels and restores original value. Arrow keys move caret within text, not the grid cursor.
EditValidationRequest
EditValidationResponse
EnterCellEvent
ErrorCode
ErrorEvent
── Error Events ──
EventDecision
Response to a cancelable GridEvent. Sent on the RenderSession stream.
EventStreamRequest
ExportFormat
Export formats. See engine/src/save.rs. UNSPECIFIED (0): Invalid in ExportRequest.format. BINARY (1): FXGD binary — header "FXGD" + dimensions + cell data + styles + column/row properties. Preserves full fidelity. TSV (2): Tab-separated values. Text only. CSV (3): Comma-separated values. Quotes cells containing separator, newline, or quote characters. DELIMITED (4): Uses the grid's clip_col_separator (default "\t"). XLSX (5): SpreadsheetML XML (Excel 2003 .xml format). Applies bold to fixed rows, auto-detects numeric cells.
ExportRequest
ExportResponse
ExportScope
FieldMapping
FillHandlePosition
FilterDataEvent
FindRequest
FindResponse
FocusBorderStyle
Font
Font specification. Engine default: platform-default family, size 11.0, all decorations off. (engine/src/style.rs GridStyleState defaults)
FrameDone
CPU frame completion. The dirty rect tells the host which region of the RGBA buffer was modified — the host only needs to blit this rectangle to screen, not the full buffer.
FrameKind
FrameMetrics
FramePacingMode
FreezePolicy
GetCellsRequest
GetConfigRequest
GetDemoDataRequest
GetDemoDataResponse
GetHeaderRowEvent
GetMemoryUsageRequest
GetMergedRangeRequest
GetMergedRegionsRequest
GetNodeRequest
GetSchemaRequest
GetSelectionRequest
GpuFrameDone
GpuSurfaceReady
GPU rendering: host provides a native surface for wgpu. handle=0 means surface destroyed. See runtime/src/lib.rs GpuSurfaceReady. If GPU initialization or surface setup fails, the runtime returns GpuFrameDone(rendered=false); it does not render GPU mode into BufferReady.
GridConfig
GridEvent
GridEventTarget
Identity (kind/band/slot_index/slot_kind) plus a value/status snapshot the engine fills in based on slot_kind: ROW_INDICATOR_SLOT_NUMBERS text = row number, int_value = row, status_flags |= SELECTED ROW_INDICATOR_SLOT_NUMBERS_DATA_ONLY same as NUMBERS but counts data rows only; subtotal/outline rows: text = "", int_value = -1 ROW_INDICATOR_SLOT_CURRENT status_flags |= SELECTED on cursor row ROW_INDICATOR_SLOT_SELECTION status_flags |= SELECTED when row in selection ROW_INDICATOR_SLOT_CHECKBOX status_flags |= CHECKED when row in selection ROW_INDICATOR_SLOT_EDITING status_flags |= EDITING when row is being edited ROW_INDICATOR_SLOT_EXPANDER text = label, int_value = depth, status_flags |= EXPANDED/COLLAPSED/SUBTOTAL ROW_INDICATOR_SLOT_STATUS_ICON text = RowStatus.domain, int_value = RowStatus.code ROW_INDICATOR_SLOT_CUSTOM custom_key + data copied from the slot config COL_INDICATOR_CELL_HEADER_TEXT text = header text COL_INDICATOR_CELL_SORT_GLYPH int_value = sort priority, status_flags |= SORT_ASC/SORT_DESC COL_INDICATOR_CELL_FILTER_BUTTON status_flags |= FILTER_ACTIVE when a filter is set CORNER_SLOT_SELECT_ALL status_flags |= SELECTED when entire grid is selected GRID_TARGET_DATA_CELL status_flags |= EDITING/SELECTED
GridEventTargetFlag
Bitmask values for GridEventTarget.status_flags. Combined per slot kind; see the GridEventTarget comment for which bits apply where.
GridLineDirection
GridLines
Engine defaults: style=GRIDLINE_SOLID for data cells, GRIDLINE_INSET for fixed cells; color=0xFFC0C0C0; width=1px.
GridLineStyle
GridTargetKind
GroupTotalPosition
HeaderFeatures
HeaderMarkSize
HeaderPolicy
How the first row of loaded data is interpreted. AUTO (0): JSON objects use keys as headers; CSV tries to detect. NONE (1): No headers — uses generic column names (Column 1, 2, …). FIRST_ROW (2): Unconditionally treats first row as column headers.
HeaderResizeHandle
Engine default: hit_width = 6px (engine/src/style.rs).
HeaderSeparator
Engine defaults (engine/src/style.rs): color = 0xFFC9D2DE, width = 1px.
HeaderStyle
HighlightRegion
HighlightStyle
Selection / hover highlight appearance. Engine defaults (engine/src/selection.rs): selection background = 0xFF000080 (dark blue) selection foreground = 0xFFFFFFFF (white)
HoverConfig
Hover highlight configuration. Internally tracked as a bitmask in engine/src/selection.rs: HOVER_ROW=1, HOVER_COLUMN=2, HOVER_CELL=4.
IconAlign
IconPictures
Image-based icon alternatives (PNG/BMP assets).
IconSlots
Text glyph values per slot (e.g. Material Icons codepoints).
IconSlotStyles
Per-slot style overrides.
IconStyle
Rendering style for a single icon slot.
IconTheme
ImageAlignment
ImageData
IndicatorAppearance
IndicatorBand
IndicatorColors
IndicatorFocusConfig
IndicatorsConfig
InputType
InsertRowsRequest
InsertRowsResponse
InteractionConfig
── Interaction ──
JsonOptions
KeyDownEditEvent
KeyDownEvent
── Keyboard Events ── modifier: 0x01=Shift, 0x02=Ctrl, 0x04=Alt, 0x08=Meta.
KeyEvent
Key codes use web/Windows virtual key values: 13=Enter, 27=Escape, 9=Tab, 32=Space, 8=Backspace, 46=Delete, 37/38/39/40=Arrow Left/Up/Right/Down, 33/34=PageUp/PageDown, 36/35=Home/End, 113=F2, 65=A, 67=C, 86=V, 88=X. KEY_PRESS carries the character for text input; KEY_DOWN/UP carry key_code.
KeyEvent_Type
KeyPressEditEvent
KeyPressEvent
KeyUpEditEvent
KeyUpEvent
LayoutConfig
── Layout ── Pure structural dimensions. Text defaults moved to StyleConfig.
LeaveCellEvent
ListDataSource
ListEditorParams
ListItem
LoadDataOptions
LoadDataRequest
Load structured data (CSV or JSON) into the grid, replacing existing data. The engine parses the data, infers types, validates values, and populates cells. See engine/src/load.rs.
LoadDataResult
LoadDataStatus
LoadDemoRequest
LoadDemoResponse
LoadFontDataRequest
LoadFontDataResponse
LoadTableRequest
Bulk-load a table from a flat array of values. Values are row-major: element at index (r * cols + c) goes to cell (r, c).
MemoryUsageResponse
MergeCellsRequest
Explicit user-initiated cell merge (spreadsheet-style). Separate from content-based spans (CellSpanMode). Overlapping merges discard the older range. See engine/src/merge_registry.rs.
MergeCellsResponse
MergedRegionsResponse
MouseDownEvent
MouseMoveEvent
MouseUpEvent
MoveColumnRequest
MoveColumnResponse
MoveRowRequest
MoveRowResponse
NodeInfo
NodeRelation
NumberEditorParams
OutlineConfig
── Outline / Tree ── See engine/src/outline.rs. Subtotal inserts aggregate rows that group data by a column's value. Outline levels control tree expand/collapse. outline_level = -1: grand total row outline_level = 0+: nested group levels
OutlineRequest
OutlineResponse
Padding
Cell padding in pixels. Engine default: left=6, top=2, right=6, bottom=2 (engine/src/style.rs).
PinPosition
PointerEvent
PointerEvent_Type
PresentMode
PrintOrientation
PrintPage
Each page is a PNG-encoded RGBA image. See engine/src/print.rs. Page dimensions at 96 DPI: portrait 816×1056 px, landscape 1056×816 px. Header/footer placeholders: &P = page number, &N = total pages.
PrintRequest
PrintResponse
PullToRefreshCanceledEvent
PullToRefreshConfig
PullToRefreshTheme
── Scrolling ──
PullToRefreshTriggeredEvent
── Pull to Refresh Events ──
Rect
RefreshRequest
RefreshResponse
RegexQuery
RegionStyle
Override style for a region (fixed rows, frozen rows, etc.). Only set fields override the grid-level default.
RemoveRowsRequest
RemoveRowsResponse
RenderConfig
── Rendering ── The engine renders through 28 independent layers (engine/src/canvas.rs). Each layer can be individually toggled via render_layer_mask.
RendererMode
Rendering backend selection. See GUI.md and TUI.md. AUTO (0): Engine picks CPU or GPU based on host capabilities. CPU (1): Renders into a host-owned RGBA buffer (most portable). GPU (2): Renders via wgpu; backend is selected by wgpu/OS. GPU_VULKAN (3): Force Vulkan when available. GPU_GLES (4): Force the wgpu GL backend (legacy name; OpenGL/OpenGL ES). TUI (5): Terminal mode — renders ANSI escape sequences. GPU_DX12 (6): Force Direct3D 12 when available. GPU_METAL (7): Force Metal when available. GPU_OPENGL (8): Force the wgpu GL backend (desktop OpenGL/OpenGL ES). GPU modes require GpuSurfaceReady; hosts switch to CPU explicitly.
RenderInput
RenderLayerBit
── Render layer bit positions (for render_layer_mask bitmask) ── The engine renders through 28 independent layers (engine/src/canvas.rs layer module). Each layer is guarded by its bit in render_layer_mask. Setting bit i enables layer i. Set all bits (-1) to render everything.
RenderOutput
Immediate render-coupled output from the engine. These are NOT the same as semantic GridEvent messages — they exist so the host can react immediately to render-time UI needs (cursor shape, edit overlay position, selection feedback, frame completion).
ResizePolicy
ResizeViewportRequest
ResizeViewportResponse
RichText
RowDef
RowIndicatorConfig
RowIndicatorSlot
RowIndicatorSlotKind
RowStatus
Host-defined row status with an explicit namespace/discriminator. code is interpreted only within domain; the engine assigns no built-in meaning to row status values.
RowStatusChangeEvent
ScalarValue
SchemaResponse
ScrollBarAppearance
ScrollBarColors
ScrollBarConfig
ScrollBarMode
ScrollBarsMode
ScrollConfig
Engine fling physics (engine/src/scroll.rs): Velocity blending: 35% old + 65% new on each impulse. Damping: velocity *= exp(−friction × dt). Stops at <8.0 px/s. Defaults: fling_impulse_gain=30.0, fling_friction=2.0.
ScrollEvent
ScrollTooltipEvent
SelectionChangedEvent
SelectionChangingEvent
SelectionConfig
── Selection ──
SelectionMode
How user selection is interpreted. See engine/src/selection.rs.
SelectionState
SelectionUpdate
SelectionVisibility
SelectRequest
SelectResponse
Separator
SetColRequest
SetLeftColResponse
SetRedrawRequest
Enable/disable rendering. When transitioning from disabled to enabled, the engine suppresses the next animation frame and forces an immediate dirty repaint (runtime/src/lib.rs SetRedraw). Useful for batching many mutations without intermediate renders.
SetRedrawResponse
SetRowRequest
SetTopRowResponse
ShowCellRequest
ShowCellResponse
SortColumn
SortOrder
SortRequest
Multi-column sort. The engine builds sort_keys from sort_columns and compares by the first differing key column. Subtotal rows are excluded from sort — each group between subtotal boundaries is sorted independently to preserve outline structure.
SortResponse
SortType
Comparison strategy for sorting. AUTO (0): Tries date, then number, then case-insensitive string. NUMERIC (1): Parses as f64; non-numeric values sort to the end. STRING (2): Lexicographic, case-sensitive. STRING_NO_CASE (3): Lexicographic, case-insensitive. CUSTOM (4): Engine emits CompareEvent on EventStream; host replies with CompareResponse on RenderSession input (-1/0/1). If no EventStream subscriber is active, the engine uses the generic/date path. Otherwise, by default the comparison remains pending until the host replies; a finite compare_response_timeout_ms can be configured as an explicit watchdog.
SpanCompareMode
Text normalization used when comparing cells for content-based spans and subtotal/group keys.
SpanConfig
── Cell Span ── Controls content-based cell merging. See engine/src/span.rs.
StartEditEvent
StartPageEvent
StickyEdge
StructField
StructValue
StyleConfig
── Style ── Nested by region. Building blocks eliminate flat field sprawl.
SubtotalRequest
Insert aggregate subtotal rows. See engine/src/outline.rs. Detects group boundaries by comparing cell values in group_on_col. Set group_on_col=-1 for a grand total only (no grouping). Use AGG_CLEAR to remove all subtotal rows.
SubtotalResult
TabBehavior
TerminalCapabilities
TerminalColorLevel
TerminalCommand
TerminalCommand_Kind
TerminalInputBytes
TerminalViewport
TextBaseline
TextEditorParams
TextEffect
TextFormatRun
TextHintingMode
TextQuery
TextRendering
TextRenderMode
TextRunStyle
TextSelection
TextSelectionChanged
ThemePreset
Built-in visual themes. Each preset is a complete look — when applied via GridConfig.theme_preset it sets StyleConfig (cell/fixed/header colors, alternate row, sheet, grid lines, border appearance), SelectionConfig visual fields (selection/hover/active cell/indicator row+col styles), ScrollBarConfig (appearance + colors), and IndicatorsConfig (appearance + colors). Other fields (modes, sizes, visibility, behavior toggles) are left untouched.
TooltipRequest
TreeChildrenRequestedEvent
── Native Tree Events ── These are emitted for VolvoxTreeService-backed TreeGrid/TreeView mode. Legacy outline/subtotal toggles continue to use Before/AfterNodeToggleEvent.
TreeIndicatorStyle
TreeNodeActivateEvent
TreeNodeContextMenuEvent
TypeAheadEndedEvent
TypeAheadMode
Type-ahead (incremental search) mode. See engine/src/search.rs. The engine buffers keystrokes and searches for matching cell text. NONE (0): Disabled. FROM_START (1): Search from the first data row. FROM_CURSOR (2): Search from the current cursor row. Default type_ahead_delay: 2000 ms.
TypeAheadStartedEvent
── Search Events ──
TypePolicy
Column type inference strategy during data loading. AUTO_DETECT (0): Scans values to infer type — all numbers → Number, all true/false → Boolean, all dates → Date, else String. ALL_STRING (1): Everything stays as text. FROM_SCHEMA (2): Uses existing column data types from grid.
TypeViolation
UnmergeCellsRequest
UnmergeCellsResponse
UpdateCellsRequest
ValidationError
ValidationMode
ValidationTrigger
ViewportState
VolvoxCellEdit<T>
Cell-edit details surfaced by VolvoxDataGrid.onCellEdit.
VolvoxColumn<T>
Typed column definition for VolvoxDataGrid.
VolvoxDataGrid<T>
Data-first VolvoxGrid widget. Pass typed rows and columns; the widget owns the controller lifecycle and pushes the values into the engine.
VolvoxGridBeforeDropdownOpenDetails
VolvoxGridBeforeEditDetails
VolvoxGridBeforeSortDetails
VolvoxGridCellEditValidatingDetails
VolvoxGridContextMenuRequest
VolvoxGridController
Controller for a single VolvoxGrid instance.
VolvoxGridService
Handwritten wrapper over the generated Synurang transport output.
VolvoxGridServiceApi
VolvoxGridServiceFfi
VolvoxGridSubtotalLevel
A subtotal grouping level used by VolvoxGridController.addSubtotals.
VolvoxGridWidget
A widget that displays a VolvoxGrid backed by a native Rust pixel-rendering engine.
WriteErrorMode
What happens when a cell write fails type validation. REJECT (1): Cell not written; reported in WriteResult.violations. SET_NULL (2): Clears cell value. SKIP (3): Keeps old value, no error report.
WriteResult
ZoomEvent
ZoomEvent_Phase

Extensions

GeneratedMessageGenericExtensions on T
Extensions on GeneratedMessages.

Functions

initVolvoxGrid({String? libraryName}) Future<void>

Typedefs

VolvoxGridCompareCallback = int Function(CompareEvent request)