azalea_shell/window/taskbar/widget/
separator.rs1use 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}