[M3] Widgets fx-timeline, fx-table-sort, fx-accordion, fx-progress #37

Closed
opened 2026-04-06 01:35:57 +00:00 by charles · 0 comments
Owner

Contexte

Quatre widgets de présentation de données : frise chronologique, tableau avec tri/filtre, sections dépliables, et barre de progression animée.

Critères d'acceptation

  • fx-timeline : Vec<TimelineEntry>GtkListBox custom avec marqueurs visuels chronologiques
  • fx-table-sort : TableConfig (headers, rows) → GtkColumnView avec tri par colonne cliquable
  • fx-table-sort : filtre textuel optionnel au-dessus du tableau
  • fx-accordion : Vec<Section> (title, content) → GtkExpanders imbriqués
  • fx-progress : ProgressConfig (value 0–100, label, color) → GtkProgressBar avec animation
  • fx-progress mis à jour en temps réel si le message source est édité
  • Tous les widgets respectent le thème clair/sombre

Notes techniques

  • Dépend de : #27 (RichMessageParser)
  • GtkColumnView pour table-sort (GTK4 natif, pas besoin de lib externe)
  • TimelineEntry : date: String, title, description: Option<String>, icon: Option<String>
  • Tri table côté client uniquement (pas de rechargement)
## Contexte Quatre widgets de présentation de données : frise chronologique, tableau avec tri/filtre, sections dépliables, et barre de progression animée. ## Critères d'acceptation - [ ] `fx-timeline` : `Vec<TimelineEntry>` → `GtkListBox` custom avec marqueurs visuels chronologiques - [ ] `fx-table-sort` : `TableConfig` (headers, rows) → `GtkColumnView` avec tri par colonne cliquable - [ ] `fx-table-sort` : filtre textuel optionnel au-dessus du tableau - [ ] `fx-accordion` : `Vec<Section>` (title, content) → `GtkExpander`s imbriqués - [ ] `fx-progress` : `ProgressConfig` (value 0–100, label, color) → `GtkProgressBar` avec animation - [ ] `fx-progress` mis à jour en temps réel si le message source est édité - [ ] Tous les widgets respectent le thème clair/sombre ## Notes techniques - Dépend de : #27 (RichMessageParser) - `GtkColumnView` pour table-sort (GTK4 natif, pas besoin de lib externe) - `TimelineEntry` : `date: String`, `title`, `description: Option<String>`, `icon: Option<String>` - Tri table côté client uniquement (pas de rechargement)
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/my-fractal#37
No description provided.