burrow/burrow-gtk/src/components/settings_screen.rs
2024-01-24 18:07:56 -08:00

44 lines
1.1 KiB
Rust

use super::*;
pub struct SettingsScreen {
_diag_group: AsyncController<settings::DiagGroup>,
}
pub struct SettingsScreenInit {
pub daemon_client: Arc<Mutex<Option<DaemonClient>>>,
}
#[relm4::component(pub)]
impl SimpleComponent for SettingsScreen {
type Init = SettingsScreenInit;
type Input = ();
type Output = ();
view! {
#[name(preferences)]
adw::PreferencesPage {}
}
fn init(
init: Self::Init,
root: Self::Root,
sender: ComponentSender<Self>,
) -> ComponentParts<Self> {
let diag_group = settings::DiagGroup::builder()
.launch(settings::DiagGroupInit {
daemon_client: Arc::clone(&init.daemon_client),
})
.forward(sender.input_sender(), |_| ());
let widgets = view_output!();
widgets.preferences.add(diag_group.widget());
let model = SettingsScreen {
_diag_group: diag_group,
};
ComponentParts { model, widgets }
}
fn update(&mut self, _: Self::Input, _sender: ComponentSender<Self>) {}
}