teksilo_widgets/styles/
recipe_list_container_style.rs1use teksilo_core::build_context::BuildContext;
13use teksilo_core::styles::{
14 ListContainerStyle, ListInsertionConfig, ListInsertionRecipe, SharedListContainerStyle,
15};
16use teksilo_core::widget_id::WidgetId;
17use teksilo_tokens::BorderRole;
18
19use crate::primitives::RectWidget;
20
21#[derive(Debug, Default, Clone, Copy)]
23pub struct RecipeListContainerStyle;
24
25impl ListContainerStyle for RecipeListContainerStyle {
26 fn make_insertion_indicator(
27 &self,
28 cfg: &ListInsertionConfig,
29 ctx: &mut BuildContext,
30 ) -> WidgetId {
31 let _ = cfg.axis_offset; let _ = cfg.width;
35 ctx.add(RectWidget::new().background(BorderRole::Accent))
36 }
37
38 fn insertion(&self) -> ListInsertionRecipe {
39 ListInsertionRecipe::default()
40 }
41}
42
43pub fn resolve_list_container_style(
44 override_: &Option<SharedListContainerStyle>,
45 ctx: &BuildContext,
46) -> SharedListContainerStyle {
47 if let Some(s) = override_.clone() {
48 return s;
49 }
50 ctx.theme_signal()
51 .get()
52 .style_slots
53 .list_container
54 .clone()
55 .unwrap_or_else(|| std::rc::Rc::new(RecipeListContainerStyle) as SharedListContainerStyle)
56}