Added basic layout
Signed-off-by: Louis Hollingworth <louis@hollingworth.nl>
This commit is contained in:
parent
3ce7592d22
commit
9bbe8c6091
1 changed files with 35 additions and 6 deletions
41
src/main.rs
41
src/main.rs
|
|
@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue