Skip to main content

Crate blinc_canvas_kit

Crate blinc_canvas_kit 

Source
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§

CanvasKit
Interactive canvas toolkit — receives events, manages viewport state, and provides hit testing for canvas-drawn elements.