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, InputTokens};
18
19use crate::primitives::RectWidget;
20
21#[derive(Debug, Default, Clone, Copy)]
23pub struct RecipeListContainerStyle;
24
25impl RecipeListContainerStyle {
26 pub fn for_tokens(_tokens: &InputTokens) -> Self {
33 Self
34 }
35}
36
37impl ListContainerStyle for RecipeListContainerStyle {
38 fn make_insertion_indicator(
39 &self,
40 cfg: &ListInsertionConfig,
41 ctx: &mut BuildContext,
42 ) -> WidgetId {
43 let _ = cfg.axis_offset; let _ = cfg.width;
47 ctx.add(RectWidget::new().background(BorderRole::Accent))
48 }
49
50 fn insertion(&self) -> ListInsertionRecipe {
51 ListInsertionRecipe::default()
52 }
53}
54
55pub fn resolve_list_container_style(
56 override_: &Option<SharedListContainerStyle>,
57 ctx: &BuildContext,
58) -> SharedListContainerStyle {
59 if let Some(s) = override_.clone() {
60 return s;
61 }
62 ctx.theme_signal()
63 .get()
64 .style_slots
65 .list_container
66 .clone()
67 .unwrap_or_else(|| std::rc::Rc::new(RecipeListContainerStyle) as SharedListContainerStyle)
68}