1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
use crate::get_context; pub struct WindowParams { pub label: String, pub movable: bool, pub close_button: bool, } impl Default for WindowParams { fn default() -> WindowParams { WindowParams { label: "".to_string(), movable: true, close_button: false, } } } pub fn set_ui_style(style: megaui::Style) { get_context().draw_context.ui.set_style(style); } pub fn draw_window<F: FnOnce(&mut megaui::Ui)>( id: megaui::Id, position: glam::Vec2, size: glam::Vec2, params: impl Into<Option<WindowParams>>, f: F, ) -> bool { let context = &mut get_context().draw_context; let params = params.into(); megaui::widgets::Window::new( id, megaui::Vector2::new(position.x(), position.y()), megaui::Vector2::new(size.x(), size.y()), ) .label(params.as_ref().map_or("", |params| ¶ms.label)) .movable(params.as_ref().map_or(true, |params| params.movable)) .close_button(params.as_ref().map_or(false, |params| params.close_button)) .ui(&mut context.ui, f) }