// WARNING: the code in here is horrible. It is a behemoth that needs breaking up into simpler parts. use std::sync::Arc; use crate::{paint::*, widgets::*, *}; use super::*; /// Builder for a floating window which can be dragged, closed, collapsed, resized and scrolled (off by default). /// /// You can customize: /// * title /// * default, minimum, maximum and/or fixed size /// * if the window has a scroll area (off by default) /// * if the window can be collapsed (minimized) to just the title bar (yes, by default) /// * if there should be a close button (none by default) pub struct Window<'open> { pub title_label: Label, open: Option<&'open mut bool>, pub area: Area, pub frame: Option, pub resize: Resize, pub scroll: Option, pub collapsible: bool, } impl<'open> Window<'open> { // TODO: Into