azalea_shell/window/taskbar/widget/
separator.rs

1use crate::icon;
2
3use gtk::prelude::*;
4use relm4::{ComponentParts, ComponentSender, SimpleComponent, component};
5
6crate::init! {
7    Model {
8        separator: String,
9    }
10
11    Config {
12        separator: Option<String>,
13    }
14}
15
16#[component(pub)]
17impl SimpleComponent for Model {
18    type Init = Init;
19    type Input = ();
20    type Output = ();
21
22    view! {
23        gtk::Image {
24            set_css_classes: &[
25                "azalea-primary-fg",
26            ],
27            set_icon_name: Some(&model.separator),
28        }
29    }
30
31    fn init(
32        init: Self::Init,
33        _root: Self::Root,
34        _sender: ComponentSender<Self>,
35    ) -> ComponentParts<Self> {
36        let model = Model {
37            separator: init
38                .config
39                .separator
40                .unwrap_or(String::from(icon::SLASH_FORWARD)),
41        };
42
43        let widgets = view_output!();
44
45        ComponentParts { model, widgets }
46    }
47}