Boutons de cellule
Vue d'ensemble
Les boutons de cellule sont des éléments cliquables dessinés sur canvas, positionnés à droite du contenu d'une cellule. Ils sont définis au niveau de la colonne — les mêmes boutons apparaissent dans chaque ligne. Un clic déclenche un callback avec l'index de ligne, la clé de colonne et l'identifiant du bouton.
ButtonDef
Utiliser ButtonDef::new(id, label, style) :
ButtonStyle
Disposition
Les boutons sont disposés de droite à gauche : le premier élément de
cell_buttons est le bouton le plus à droite. Cela garantit que les
positions restent stables lorsque d'autres boutons sont ajoutés.
La largeur de chaque bouton est estimée à partir du nombre de caractères du
label — aucune mesure Canvas2D n'est effectuée dans la couche scene. Une
largeur de colonne d'au moins
(nb_chars × font_size × 0.65 + padding_x × 2) × nb_boutons + gaps + marge
est recommandée.
Méthode builder
Callback de clic
Couche web (WebGridCanvas)
Composant Leptos
La signature du callback est (row: u64, col_key: String, button_id: String).
Combinaison avec le contenu de la cellule
Les boutons sont rendus par-dessus le texte de la cellule. Pour éviter
tout chevauchement, élargir la colonne ou supprimer le texte via un
CellFormat::Boolean avec des labels vides :
Variables de thème
Toutes les couleurs et dimensions des boutons sont configurables via des propriétés CSS personnalisées :
Notes d'interaction
- Un clic sur un bouton ne sélectionne pas la cellule — l'événement est consommé avant la logique de sélection.
- Les boutons sont testés contre la liste de
ButtonZonedu dernier frame rendu, ils sont donc toujours synchronisés avec la disposition visible. - L'effet hover n'est pas encore implémenté ; il est prévu pour une version future.