pub use super::render::register_input_coordinator_toolbar;
use super::state::ToolbarState;
pub fn handle_toolbar_overflow_scroll(state: &mut ToolbarState, delta: f64, max_scroll: f64) {
state.scroll(delta, 0.0, max_scroll.max(0.0));
}
pub fn handle_toolbar_keyboard(
state: &mut ToolbarState,
item_ids: &[&str],
forward: bool,
) {
if item_ids.is_empty() {
return;
}
let current_idx = state
.hovered_item_id
.as_deref()
.and_then(|id| item_ids.iter().position(|&s| s == id));
let next_idx = match current_idx {
None => 0,
Some(idx) => {
if forward {
(idx + 1) % item_ids.len()
} else {
idx.checked_sub(1).unwrap_or(item_ids.len().saturating_sub(1))
}
}
};
if let Some(&id) = item_ids.get(next_idx) {
state.hovered_item_id = Some(id.to_string());
}
}