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
allfield. 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
handleas 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
setCellsbatch 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 ──
- DropdownItemLayout
- DropMode
- EditActivation
- EditCancel
- EditCellStyle
- Resolved style properties for the edit overlay.
- EditCommand
- EditCommit
-
Commit the active editor. When
valueis unset, the engine commits the editor's current in-flight buffer (the last value_changed / preedit_changed it accepted). Settingvalueoverrides 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
presentationfield 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.editorwill 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_errorsis always authoritative when present. - EditorSpec
- EditorUpdateReason
- EditorValue
- EditorValueChanged
- EditSetHighlights
- EditStart
-
Begin an edit session. The host MUST set
reasonto 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) Leavingreasonas 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.
codeis interpreted only withindomain; 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
Enums
- CellValue_Value
- ClipboardCommand_Command
- EditCommand_Command
- EditorSessionCommand_Command
- FieldMapping_Target
- FindRequest_Query
- GridEvent_Event
- HeaderMarkSize_Value
- LoadDataOptions_Format
- RendererBackend
- Supported rendering backends.
- RenderInput_Input
- RenderOutput_Event
- ScalarValue_Value
- VolvoxGridContextMenuTrigger
Extensions
- GeneratedMessageGenericExtensions on T
-
Extensions on
GeneratedMessages.
Functions
-
initVolvoxGrid(
{String? libraryName}) → Future< void>
Typedefs
- VolvoxGridCompareCallback = int Function(CompareEvent request)