use iced::widget::{container, text};
use iced::{Element, Fill, window};
use plushie_widget_sdk::runtime::Message;
use crate::App;
impl App {
pub fn view_window(&self, iced_id: window::Id) -> Element<'_, Message> {
let window_id = match self.windows.get_window_id(&iced_id) {
Some(id) => id,
None => {
return container(text("unknown window"))
.width(Fill)
.height(Fill)
.center(Fill)
.into();
}
};
let resolved_theme = self.theme_ref_for_window(iced_id);
let theme_chrome = self.theme_chrome_for_window(iced_id);
match self.core.tree.find_window(window_id) {
Some(window_node) => {
let ctx = plushie_widget_sdk::render_ctx::RenderCtx {
caches: &self.core.caches,
images: &self.image_registry,
theme: resolved_theme,
theme_chrome,
registry: &self.registry,
default_text_size: self.core.default_text_size,
default_font: self.core.default_font,
window_id,
scale_factor: self.scale_factor_for_window(iced_id),
validate_props: self.core.is_validate_props_enabled(),
};
plushie_widget_sdk::runtime::render(window_node, ctx)
}
None => container(text("waiting for snapshot..."))
.width(Fill)
.height(Fill)
.center(Fill)
.into(),
}
}
}