Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/toolkit/crashreporter/client/app/src/ui/model/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 1 kB image not shown  

SSL window.rs   Sprache: unbekannt

 
rahmenlose Ansicht.rs DruckansichtUnknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

use super::{Element, ElementBuilder, TypedElement};
use crate::data::Event;

/// A window.
#[derive(Debug, Default)]
pub struct Window {
    pub title: String,
    /// The window content is the first element.
    pub content: Option<Box<Element>>,
    /// Logical child windows.
    pub children: Vec<TypedElement<Self>>,
    pub modal: bool,
    pub close: Option<Event<()>>,
}

impl ElementBuilder<Window> {
    /// Set the window title.
    pub fn title(&mut self, s: impl Into<String>) {
        self.element_type.title = s.into();
    }

    /// Set whether the window is modal (blocking interaction with other windows when displayed).
    pub fn modal(&mut self, value: bool) {
        self.element_type.modal = value;
    }

    /// Register an event to close the window.
    pub fn close_when(&mut self, event: &Event<()>) {
        self.element_type.close = Some(event.clone());
    }

    /// Add a window as a logical child of this one.
    ///
    /// Logical children are always displayed above their parents.
    pub fn child_window(&mut self, window: TypedElement<Window>) {
        self.element_type.children.push(window);
    }

    pub fn add_child(&mut self, child: Element) {
        Self::single_child(&mut self.element_type.content, child);
    }
}

[ Verzeichnis aufwärts0.48unsichere Verbindung  ]