Added basic layout

Signed-off-by: Louis Hollingworth <louis@hollingworth.nl>
This commit is contained in:
Louis Hollingworth 2025-02-09 21:02:15 +00:00
parent 3ce7592d22
commit 9bbe8c6091
Signed by: lucxjo
GPG key ID: A11415CB3DC7809B

View file

@ -1,14 +1,43 @@
#[derive(Default)] #[derive(Default)]
struct App {} struct App {
current_screen: Screen,
}
#[derive(Debug)] #[derive(Debug, Clone)]
enum Message {} enum Message {
ChangeScreen(Screen),
}
#[derive(Debug, Default, Clone, Copy)]
enum Screen {
#[default]
Home,
Search,
}
impl App { impl App {
fn update(&mut self, message: Message) {} fn update(&mut self, message: Message) {
match message {
Message::ChangeScreen(s) => self.current_screen = s,
}
}
fn view(&self) -> iced::Element<'_, Message> { fn view(&self) -> iced::Element<'_, Message> {
let content = iced::widget::column!["Saluton, Mondo!"]; let side_bar = iced::widget::column![
content.into() iced::widget::button("Home")
.on_press(Message::ChangeScreen(Screen::Home))
.width(iced::Length::Fixed(100.0)),
iced::widget::button("Search")
.on_press(Message::ChangeScreen(Screen::Search))
.width(iced::Length::Fixed(100.0))
];
let screen = match self.current_screen {
Screen::Home => "Home",
Screen::Search => "Search",
};
let content = iced::widget::column!["You are at:", screen];
let page = iced::widget::row![side_bar, content].spacing(20);
iced::widget::container(page).into()
} }
} }