[M3] Widget fx-chart : graphiques natifs via crate plotters + GtkDrawingArea #30

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

Contexte

Afficher des graphiques (bar, line, pie, scatter) directement dans la timeline via rendu Cairo natif, sans JavaScript.

Critères d'acceptation

  • ChartConfig : chart_type: ChartType (Line/Bar/Pie/Scatter), title: Option<String>, labels: Vec<String>, datasets: Vec<Dataset>, options: ChartOptions
  • Dataset : label, data: Vec<f64>, color: Option<String>
  • Rendu via plotters sur GtkDrawingArea avec backend Cairo
  • Support des 4 types de graphiques
  • Adaptation au thème (couleurs claires/sombres via GtkCssProvider)
  • Taille responsive dans la timeline (max largeur du message)
  • Fallback textuel affiché si rich_render.level = "text"

Notes techniques

  • Dépend de : #27 (RichMessageParser)
  • plotters crate avec feature cairo-rs pour le backend GTK
  • Pas de dépendance JavaScript ni WebView pour ce bloc
  • Le fallback texte (pre/ASCII art) est toujours présent dans le HTML source
## Contexte Afficher des graphiques (bar, line, pie, scatter) directement dans la timeline via rendu Cairo natif, sans JavaScript. ## Critères d'acceptation - [ ] `ChartConfig` : `chart_type: ChartType` (Line/Bar/Pie/Scatter), `title: Option<String>`, `labels: Vec<String>`, `datasets: Vec<Dataset>`, `options: ChartOptions` - [ ] `Dataset` : `label`, `data: Vec<f64>`, `color: Option<String>` - [ ] Rendu via `plotters` sur `GtkDrawingArea` avec backend Cairo - [ ] Support des 4 types de graphiques - [ ] Adaptation au thème (couleurs claires/sombres via GtkCssProvider) - [ ] Taille responsive dans la timeline (max largeur du message) - [ ] Fallback textuel affiché si `rich_render.level = "text"` ## Notes techniques - Dépend de : #27 (RichMessageParser) - `plotters` crate avec feature `cairo-rs` pour le backend GTK - Pas de dépendance JavaScript ni WebView pour ce bloc - Le fallback texte (pre/ASCII art) est toujours présent dans le HTML source
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#30
No description provided.