use crate::input::{InputCoordinator, Sense, WidgetKind};
use crate::render::RenderContext;
use crate::types::{CompositeId, WidgetId};
use super::types::{ActiveFrameKind, ActiveFrameView};
pub fn draw_active_frame(
ctx: &mut dyn RenderContext,
view: &ActiveFrameView<'_>,
kind: ActiveFrameKind,
) {
match kind {
ActiveFrameKind::Stroke => {
ctx.set_stroke_color(view.color);
ctx.set_stroke_width(view.width);
ctx.set_line_dash(&[]);
ctx.stroke_rect(view.rect.x, view.rect.y, view.rect.width, view.rect.height);
}
}
}
pub fn register_child_active_frame(
coord: &mut InputCoordinator,
parent: &CompositeId,
id: impl Into<WidgetId>,
view: &ActiveFrameView<'_>,
kind: ActiveFrameKind,
ctx: &mut dyn RenderContext,
) {
coord.register_child(parent, id.into(), WidgetKind::Custom, view.rect, Sense::NONE);
draw_active_frame(ctx, view, kind);
}