plushie_renderer_lib/
view.rs1use iced::widget::{container, text};
5use iced::{Element, Fill, window};
6
7use plushie_widget_sdk::runtime::Message;
8
9use crate::App;
10
11impl App {
12 pub fn view_window(&self, iced_id: window::Id) -> Element<'_, Message> {
15 let window_id = match self.windows.get_window_id(&iced_id) {
16 Some(id) => id,
17 None => {
18 return container(text("unknown window"))
19 .width(Fill)
20 .height(Fill)
21 .center(Fill)
22 .into();
23 }
24 };
25
26 let resolved_theme = self.theme_ref_for_window(iced_id);
27 let theme_chrome = self.theme_chrome_for_window(iced_id);
28
29 match self.core.tree.find_window(window_id) {
30 Some(window_node) => {
31 let ctx = plushie_widget_sdk::render_ctx::RenderCtx {
32 caches: &self.core.caches,
33 images: &self.image_registry,
34 theme: resolved_theme,
35 theme_chrome,
36 registry: &self.registry,
37 default_text_size: self.core.default_text_size,
38 default_font: self.core.default_font,
39 window_id,
40 scale_factor: self.scale_factor_for_window(iced_id),
41 validate_props: self.core.is_validate_props_enabled(),
42 };
43 plushie_widget_sdk::runtime::render(window_node, ctx)
44 }
45 None => container(text("waiting for snapshot..."))
46 .width(Fill)
47 .height(Fill)
48 .center(Fill)
49 .into(),
50 }
51 }
52}