refactor(cosmic): Separate states across views
This commit is contained in:
parent
ad0443af3f
commit
0cea2023f8
6 changed files with 278 additions and 108 deletions
|
|
@ -3,16 +3,32 @@ use cosmic::{
|
|||
iced::widget::{column, text},
|
||||
widget::{list_column, settings, toggler},
|
||||
};
|
||||
use super::{Message, Page, Window};
|
||||
use super::{Page, Window};
|
||||
|
||||
impl Window {
|
||||
pub(super) fn view_bluetooth(&self) -> Element<Message> {
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
pub enum Message {
|
||||
Enable(bool)
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct State {
|
||||
enabled: bool
|
||||
}
|
||||
|
||||
impl State {
|
||||
pub(super) fn update(&mut self, message: Message) {
|
||||
match message {
|
||||
Message::Enable(value) => self.enabled = value,
|
||||
}
|
||||
}
|
||||
|
||||
pub(super) fn view<'a>(&'a self, window: &'a Window) -> Element<'a, Message> {
|
||||
settings::view_column(vec![
|
||||
self.page_title(Page::Bluetooth),
|
||||
window.page_title(Page::Bluetooth),
|
||||
|
||||
column!(
|
||||
list_column()
|
||||
.add(settings::item("Bluetooth", toggler(None, self.toggler_value, Message::TogglerToggled))),
|
||||
.add(settings::item("Bluetooth", toggler(None, self.enabled, Message::Enable))),
|
||||
text("Now visible as \"TODO\", just kidding")
|
||||
).spacing(8).into(),
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue