adding presenter ui

This commit is contained in:
Chris Cochrun 2024-10-31 12:01:16 -05:00
parent 7de3d8e5bc
commit 7be279c299
2 changed files with 61 additions and 0 deletions

1
src/ui/mod.rs Normal file
View file

@ -0,0 +1 @@
pub mod presenter;

60
src/ui/presenter.rs Normal file
View 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()
}
}