mod button_content;
mod custom_content;
mod debug_content;
mod item_buttons;
mod label_content;
#[expect(clippy::module_inception)]
mod list_item;
mod navigation;
mod property_content;
mod scope;
pub use button_content::*;
pub use custom_content::*;
pub use debug_content::*;
pub use item_buttons::*;
pub use label_content::*;
pub use list_item::*;
pub use property_content::*;
pub use scope::*;
#[derive(Debug, Clone)]
pub struct ContentContext<'a> {
pub rect: egui::Rect,
pub bg_rect: egui::Rect,
pub response: &'a egui::Response,
pub list_item: &'a ListItem,
pub layout_info: LayoutInfo,
pub visuals: ListVisuals,
}
#[derive(Debug, Clone, Copy)]
pub enum DesiredWidth {
Exact(f32),
AtLeast(f32),
}
impl Default for DesiredWidth {
fn default() -> Self {
Self::AtLeast(0.0)
}
}
pub trait ListItemContent {
fn ui(self: Box<Self>, ui: &mut egui::Ui, context: &ContentContext<'_>);
fn desired_width(&self, _ui: &egui::Ui) -> DesiredWidth {
DesiredWidth::AtLeast(0.0)
}
}