From 701d31a887fccfb004f8fb9bbd7ec88d832dd9bb Mon Sep 17 00:00:00 2001 From: Konkitoman Date: Wed, 18 Oct 2023 15:20:21 +0300 Subject: [PATCH] Viewports example: * fix typo * fix == instead of != * added a spinner, to see if the redraw request are working as supposed to! --- examples/viewports/src/main.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/viewports/src/main.rs b/examples/viewports/src/main.rs index 759ba7cd8..a1583d755 100644 --- a/examples/viewports/src/main.rs +++ b/examples/viewports/src/main.rs @@ -23,7 +23,7 @@ pub struct App { impl eframe::App for App { fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { egui::CentralPanel::default().show(ctx, |ui| { - generic_ui(ui, "Central Pannel"); + generic_ui(ui, "Central Panel"); ui.label("Look at the \"Frame: \" will tell you, what viewport is rendering!"); { let mut force_embedding = ctx.force_embedding(); @@ -336,8 +336,18 @@ fn generic_ui(ui: &mut egui::Ui, container_id: impl Into) { outer_rect.size() )); + let container_id = container_id.into(); let ctx = ui.ctx().clone(); - if ctx.viewport_id() == ctx.parent_viewport_id() { + + let mut show_spinner = + ui.data_mut(|data| *data.get_temp_mut_or(container_id.with("show_spinner"), false)); + ui.checkbox(&mut show_spinner, "Show Spinner"); + if show_spinner { + ui.spinner(); + } + ui.data_mut(|data| data.insert_temp(container_id.with("show_spinner"), show_spinner)); + + if ctx.viewport_id() != ctx.parent_viewport_id() { let parent = ctx.parent_viewport_id(); if ui.button("Set parent pos 0,0").clicked() { ctx.viewport_command_for( @@ -350,8 +360,6 @@ fn generic_ui(ui: &mut egui::Ui, container_id: impl Into) { use std::collections::HashMap; use std::sync::OnceLock; - let container_id = container_id.into(); - const COLS: usize = 2; static DATA: OnceLock> = OnceLock::new(); let data = DATA.get_or_init(Default::default);