1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Chart widgets and drawing contracts.
//!
//! # Two layers, deliberately
//!
//! This module is the **resolution-independent chart engine**: it owns the
//! geometry for cartesian layout, axes, tick marks and legends, and renders
//! through the [`types::ChartContext`] drawing trait. It has no widget semantics
//! (no `WidgetKind`, no events, no signals) and is not itself a widget.
//!
//! The widget-facing types live in [`crate::widget::chart_widgets`]. The two were
//! once disconnected — the engine had no callers and the widgets hand-rolled
//! their own margins, grid loops and tick math, duplicating it three times. The
//! `adapter` module now bridges them: a widget hands its `RenderContext` to
//! [`ChartContextAdapter`], and every chart widget draws its backdrop through
//! this engine. One implementation, tested once (including SVG snapshots),
//! used everywhere.
//!
//! Enabled by the `chart` feature. Builds without it (tablet/mobile) keep a
//! compact local fallback in the widgets.
/// Adapter presenting a widget `RenderContext` as a chart `ChartContext`.
///
/// This is what lets the chart engine in this module serve the
/// `widget::chart_widgets` types instead of their duplicating its math.
pub use crateChartContextAdapter;
pub use crate*;
pub use crate*;
pub use crate*;