Add basic methods into NavigatedPage

This commit is contained in:
2026-08-13 22:03:47 +03:00
parent d8e7cbbc36
commit 4ca7aa7044
17 changed files with 590 additions and 324 deletions
+37 -35
View File
@@ -29,6 +29,41 @@ impl NavigatedPage<WritingMessage> for WritingState {
fn navigated(&mut self) {
}
fn update(&mut self, message: WritingMessage) -> Task<RootMessage> {
match message {
WritingMessage::Back => todo!(),
WritingMessage::Next => self.next(),
WritingMessage::SwitchShowMode(b) => self.show_all = b,
}
Task::none()
}
fn view(&self) -> Element<'_, WritingMessage> {
container(
iced::widget::column![
checkbox(self.show_all)
.label("Показывать все сразу")
.on_toggle(WritingMessage::SwitchShowMode),
text!("{}", self.roman_total).size(34),
text!("{}", self.kana).size(48),
self.answers(),
row![
button(text!("{}", self.next_text))
.style(jl_button)
.on_press(WritingMessage::Next),
button("Закончить")
.style(jl_button)
.on_press(WritingMessage::Back),
]
.spacing(DEFAULT_SPACING)
]
.spacing(DEFAULT_SPACING)
.align_x(alignment::Horizontal::Center),
)
.center_x(Fill)
.center_y(Fill)
.padding(10)
.into()
}
}
impl WritingState {
@@ -48,14 +83,7 @@ impl WritingState {
}
impl WritingState {
pub fn update(&mut self, message: WritingMessage) -> Task<RootMessage> {
match message {
WritingMessage::Back => todo!(),
WritingMessage::Next => self.next(),
WritingMessage::SwitchShowMode(b) => self.show_all = b,
}
Task::none()
}
fn next(&mut self) {
if self.set.is_empty() {
@@ -85,33 +113,7 @@ impl WritingState {
}
}
pub fn view(&self) -> Element<'_, WritingMessage> {
container(
iced::widget::column![
checkbox(self.show_all)
.label("Показывать все сразу")
.on_toggle(WritingMessage::SwitchShowMode),
text!("{}", self.roman_total).size(34),
text!("{}", self.kana).size(48),
self.answers(),
row![
button(text!("{}", self.next_text))
.style(jl_button)
.on_press(WritingMessage::Next),
button("Закончить")
.style(jl_button)
.on_press(WritingMessage::Back),
]
.spacing(DEFAULT_SPACING)
]
.spacing(DEFAULT_SPACING)
.align_x(alignment::Horizontal::Center),
)
.center_x(Fill)
.center_y(Fill)
.padding(10)
.into()
}
fn answers(&self) -> Element<'_, WritingMessage> {
if self.set.is_empty() {