Expand description
Canvas toolkit for interactive pan/zoom canvases with hit testing.
blinc_canvas_kit provides viewport management (pan, zoom, coordinate
conversion) and element interaction (click, drag, hover) for
blinc_layout::Canvas elements. All state persists across UI rebuilds
via BlincContextState.
§Usage
ⓘ
use blinc_canvas_kit::prelude::*;
let kit = CanvasKit::new("diagram");
kit.on_element_click(|evt| {
tracing::info!("Clicked {:?}", evt.region_id);
});
kit.element(|ctx, bounds| {
let r = Rect::new(100.0, 100.0, 200.0, 150.0);
ctx.fill_rect(r, 8.0.into(), Brush::Solid(Color::BLUE));
kit.hit_rect("my_node", r);
})Re-exports§
pub use background::CanvasBackground;pub use background::PatternConfig;pub use background::ZoomAdaptive;pub use hit::CanvasDragEvent;pub use hit::CanvasEvent;pub use hit::HitRegion;pub use hit::InteractionState;pub use pan::PanController;pub use selection::CanvasTool;pub use selection::MarqueeState;pub use selection::SelectionChangeEvent;pub use selection::SelectionState;pub use snap::SnapController;pub use spatial::SpatialIndex;pub use viewport::affine_inverse;pub use viewport::CanvasViewport;pub use zoom::ZoomController;
Modules§
- background
- Viewport-aware infinite canvas background patterns.
- hit
- pan
- prelude
- Prelude for convenient imports.
- selection
- Multi-select and marquee selection for canvas elements.
- snap
- Snap-to-grid controller for content-space coordinates.
- spatial
- Uniform-grid spatial hash for fast AABB queries.
- viewport
- zoom
Structs§
- Canvas
Kit - Interactive canvas toolkit — receives events, manages viewport state, and provides hit testing for canvas-drawn elements.