Struct WindowModal

Source
pub struct WindowModal(/* private fields */);
Available on crate feature gui only.
Expand description

An user modal window, which can handle events. Can be programmatically created or load a dialog resource from a .res file.

Implementations§

Source§

impl WindowModal

Source

pub fn new(opts: WindowModalOpts) -> Self

Instantiates a new WindowModal object, to be created internally with HWND::CreateWindowEx.

Source

pub fn new_dlg(dlg_id: u16) -> Self

Instantiates a new WindowModal object, to be loaded from a dialog resource with HINSTANCE::DialogBoxParam.

Source

pub fn show_modal(&self, parent: &impl GuiParent) -> AnyResult<()>

Physically creates the window, then runs the modal loop. This method will block until the window is closed.

Note that, if the user clicks the “X” to close the modal, the default behavior is to call EndDialog(0). To override this behavior, handle the modal’s wm_close yourself.

§Panics

Panics if the window is already created.

Panics if the creation process fails.

Source

pub fn close(&self)

Closes the window by posting a WM_CLOSE message. This is the safest way to close any popup window, because you’ll able to process the wm_close event, just like if the user clicked the window “X” button.

Trait Implementations§

Source§

impl Clone for WindowModal

Source§

fn clone(&self) -> WindowModal

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl GuiParent for WindowModal

Source§

fn on(&self) -> &WindowEvents

Exposes methods to handle the basic window messages, plus timer and native control notifications. Read more
Source§

fn spawn_thread<F>(&self, func: F)
where F: FnOnce() -> AnyResult<()> + Send + 'static,

This method calls std::thread::spawn, but it allows the returning of an error value. This error value will be forwarded to the original UI thread, allowing it to be caught at WindowMain::run_main. Read more
Source§

fn run_ui_thread<F>(&self, func: F)
where F: FnOnce() -> AnyResult<()> + Send + 'static,

Runs a closure synchronously in the window’s original UI thread, allowing UI updates without the risk of a deadlock. Read more
Source§

impl GuiWindow for WindowModal

Source§

fn hwnd(&self) -> &HWND

Returns the underlying handle for this window. Read more
Source§

fn as_any(&self) -> &dyn Any

Converts a reference to the Any trait. This is useful when storing a collection of polymorphic controls, because Any allows downcasting. Read more
Source§

impl Send for WindowModal

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.