use crate::app_context::ContextManager;
use crate::input::core::coordinator::{InputCoordinator, LayerId};
use crate::input::core::sense::Sense;
use crate::input::core::widget_kind::WidgetKind;
use crate::types::{Rect, WidgetId};
use super::state::TooltipState;
pub fn register_tooltip(
coord: &mut InputCoordinator,
id: impl Into<WidgetId>,
rect: Rect,
layer: &LayerId,
) {
coord.register_atomic(id, WidgetKind::Tooltip, rect, Sense::HOVER, layer);
}
pub fn register_input_coordinator_tooltip(
coord: &mut InputCoordinator,
id: impl Into<WidgetId>,
rect: Rect,
layer: &LayerId,
_state: &mut TooltipState,
) {
coord.register_atomic(id, WidgetKind::Tooltip, rect, Sense::HOVER, layer);
}
pub fn register_context_manager_tooltip(
ctx: &mut ContextManager,
id: impl Into<WidgetId>,
rect: Rect,
layer: &LayerId,
) {
let id: WidgetId = id.into();
let state = ctx.registry.get_or_insert_with(id.clone(), TooltipState::default);
register_input_coordinator_tooltip(&mut ctx.input, id, rect, layer, state);
}