use std::{rc::Rc, time::Duration}; use cosmic::{ dialog::ashpd::url::Url, iced::{ font::{Family, Stretch, Style, Weight}, Background, Border, Color, ContentFit, Font, Length, Shadow, Vector, }, iced_widget::{ scrollable::{Direction, Scrollbar}, stack, }, prelude::*, widget::{ container, image, mouse_area, responsive, scrollable, text, Container, Responsive, Row, Space, }, Task, }; use iced_video_player::{Position, Video, VideoPlayer}; use miette::{Context, IntoDiagnostic, Result}; use tracing::{debug, error, info}; use crate::{ core::{ service_items::{ServiceItem, ServiceItemModel}, slide::Slide, }, BackgroundKind, }; // #[derive(Default, Clone, Debug)] pub(crate) struct Presenter { pub slides: Vec, pub items: ServiceItemModel, pub current_slide: Slide, pub current_slide_index: u16, pub video: Option