adding presenter ui
This commit is contained in:
parent
7de3d8e5bc
commit
7be279c299
1
src/ui/mod.rs
Normal file
1
src/ui/mod.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
pub mod presenter;
|
60
src/ui/presenter.rs
Normal file
60
src/ui/presenter.rs
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
use cosmic::{
|
||||||
|
iced::{widget::text, ContentFit, Length},
|
||||||
|
iced_widget::stack,
|
||||||
|
prelude::*,
|
||||||
|
widget::{image, Container},
|
||||||
|
Task,
|
||||||
|
};
|
||||||
|
use tracing::debug;
|
||||||
|
|
||||||
|
use crate::Slide;
|
||||||
|
|
||||||
|
#[derive(Default, Clone, Debug)]
|
||||||
|
pub(crate) struct Presenter {
|
||||||
|
slides: Vec<Slide>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||||
|
pub(crate) enum Message {
|
||||||
|
NextSlide,
|
||||||
|
PrevSlide,
|
||||||
|
SlideChange(u8),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Presenter {
|
||||||
|
pub fn update(&mut self, message: Message) -> Task<cosmic::app::Message<Message>> {
|
||||||
|
match message {
|
||||||
|
Message::NextSlide => {
|
||||||
|
debug!("next slide");
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
Message::PrevSlide => {
|
||||||
|
debug!("prev slide");
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
Message::SlideChange(id) => {
|
||||||
|
debug!(id, "slide changed");
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn view(&self) -> Element<Message> {
|
||||||
|
// let window = self.windows.iter().position(|w| *w == id).unwrap();
|
||||||
|
// if let Some(_window) = self.windows.get(window) {}
|
||||||
|
// let video = Video::new(&Url::parse("/home/chris/vids/test/camprules2024.mp4").unwrap())
|
||||||
|
let text = text!("This is frodo").size(50);
|
||||||
|
let text = Container::new(text).center(Length::Fill);
|
||||||
|
let image = Container::new(
|
||||||
|
image("/home/chris/pics/frodo.jpg")
|
||||||
|
.content_fit(ContentFit::Cover)
|
||||||
|
.width(Length::Fill)
|
||||||
|
.height(Length::Fill),
|
||||||
|
);
|
||||||
|
// let video = Container::new(VideoPlayer::new(&video))
|
||||||
|
// .width(Length::Fill)
|
||||||
|
// .height(Length::Fill);
|
||||||
|
let stack = stack!(image, text).width(Length::Fill).height(Length::Fill);
|
||||||
|
stack.into()
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue