use elicitation::Established;
use crate::{ContainerId, NoOverflow, UiResult, WidgetId};
pub trait UiLayoutManager: Send + Sync {
fn container_stack(
&self,
axis: &str,
children: Vec<WidgetId>,
) -> UiResult<(ContainerId, Established<NoOverflow>)>;
fn container_grid(
&self,
columns: u32,
children: Vec<WidgetId>,
) -> UiResult<(ContainerId, Established<NoOverflow>)>;
fn container_scroll(&self, child: WidgetId)
-> UiResult<(ContainerId, Established<NoOverflow>)>;
fn container_panel(&self, name: &str, content: Vec<WidgetId>) -> UiResult<ContainerId>;
fn add_child(&self, parent: ContainerId, child: WidgetId) -> UiResult<()>;
fn remove_widget(&self, id: WidgetId) -> UiResult<()>;
}