API GridState

Définition

pub struct GridState {
    pub model: GridModel,
    pub viewport: ViewportState,
    pub selection: SelectionState,
    pub hovered_row: Option<u64>,
    pub sort: Option<SortState>,
    pub edit: Option<EditCell>,
    pub search: SearchState,
    history: UndoHistory,  // privé
}

Champs

ChampTypeDescription
modelGridModelColonnes, source de données, dimensionnement, état tri/filtre
viewportViewportStatePosition de défilement (scroll_x, scroll_y), dimensions du canvas
selectionSelectionStateSélection ancre/focus, tampon presse-papiers
hovered_rowOption<u64>Ligne sous le curseur de la souris
sortOption<SortState>Colonne de tri active et direction
editOption<EditCell>Cellule en cours d'édition
searchSearchStateRequête de recherche active, correspondances, index courant

Constructeur

pub fn new(
    model: GridModel,
    viewport_width: f64,
    viewport_height: f64,
) -> Self

Crée un GridState avec le modèle fourni et les dimensions initiales du viewport. Tous les autres champs démarrent à leurs valeurs par défaut (pas de sélection, pas de tri, pas d'édition, etc.).

Méthodes

apply

pub fn apply(&mut self, cmd: GridCommand) -> CommandOutput

La seule manière de modifier GridState. Applique une commande et retourne le résultat.

Voir l'API GridCommand pour toutes les commandes disponibles.

Types associés

SortState

pub struct SortState {
    pub col_key: String,
    pub dir: SortDir,
}

pub enum SortDir { Asc, Desc }

EditCell

pub struct EditCell {
    pub row: u64,
    pub col_key: String,
    pub original_value: Option<String>,
}

SearchState

pub struct SearchState {
    pub query: String,
    pub matches: Vec<CellCoord>,
    pub current: usize,
}