Struct WindowAttributes

#[non_exhaustive]
pub struct WindowAttributes {
Show 21 fields pub surface_size: Option<Size>, pub min_surface_size: Option<Size>, pub max_surface_size: Option<Size>, pub surface_resize_increments: Option<Size>, pub position: Option<Position>, pub resizable: bool, pub enabled_buttons: WindowButtons, pub title: String, pub maximized: bool, pub visible: bool, pub transparent: bool, pub blur: bool, pub decorations: bool, pub window_icon: Option<Icon>, pub preferred_theme: Option<Theme>, pub content_protected: bool, pub window_level: WindowLevel, pub active: bool, pub cursor: Cursor, pub fullscreen: Option<Fullscreen>, pub platform: Option<Box<dyn PlatformWindowAttributes>>, /* private fields */
}
Expand description

Attributes used when creating a window.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§surface_size: Option<Size>§min_surface_size: Option<Size>§max_surface_size: Option<Size>§surface_resize_increments: Option<Size>§position: Option<Position>§resizable: bool§enabled_buttons: WindowButtons§title: String§maximized: bool§visible: bool§transparent: bool§blur: bool§decorations: bool§window_icon: Option<Icon>§preferred_theme: Option<Theme>§content_protected: bool§window_level: WindowLevel§active: bool§cursor: Cursor§fullscreen: Option<Fullscreen>§platform: Option<Box<dyn PlatformWindowAttributes>>

Implementations§

§

impl WindowAttributes

pub fn parent_window(&self) -> Option<&RawWindowHandle>

Get the parent window stored on the attributes.

pub fn with_surface_size<S>(self, size: S) -> WindowAttributes
where S: Into<Size>,

Requests the surface to be of specific dimensions.

If this is not set, some platform-specific dimensions will be used.

See Window::request_surface_size for details.

pub fn with_min_surface_size<S>(self, min_size: S) -> WindowAttributes
where S: Into<Size>,

Sets the minimum dimensions the surface can have.

If this is not set, the surface will have no minimum dimensions (aside from reserved).

See Window::set_min_surface_size for details.

pub fn with_max_surface_size<S>(self, max_size: S) -> WindowAttributes
where S: Into<Size>,

Sets the maximum dimensions the surface can have.

If this is not set, the surface will have no maximum, or the maximum will be restricted to the primary monitor’s dimensions by the platform.

See Window::set_max_surface_size for details.

pub fn with_surface_resize_increments<S>( self, surface_resize_increments: S, ) -> WindowAttributes
where S: Into<Size>,

Build window with resize increments hint.

The default is None.

See Window::set_surface_resize_increments for details.

pub fn with_position<P>(self, position: P) -> WindowAttributes
where P: Into<Position>,

Sets a desired initial position for the window.

If this is not set, some platform-specific position will be chosen.

See Window::set_outer_position for details.

§Platform-specific
  • macOS: The top left corner position of the window content, the window’s “inner” position. The window title bar will be placed above it. The window will be positioned such that it fits on screen, maintaining set surface_size if any. If you need to precisely position the top left corner of the whole window you have to use Window::set_outer_position after creating the window.
  • Windows: The top left corner position of the window title bar, the window’s “outer” position. There may be a small gap between this position and the window due to the specifics of the Window Manager.
  • X11: The top left corner of the window, the window’s “outer” position.
  • Others: Ignored.

pub fn with_resizable(self, resizable: bool) -> WindowAttributes

Sets whether the window is resizable or not.

The default is true.

See Window::set_resizable for details.

pub fn with_enabled_buttons(self, buttons: WindowButtons) -> WindowAttributes

Sets the enabled window buttons.

The default is WindowButtons::all

See Window::set_enabled_buttons for details.

pub fn with_title<T>(self, title: T) -> WindowAttributes
where T: Into<String>,

Sets the initial title of the window in the title bar.

The default is "winit window".

See Window::set_title for details.

pub fn with_fullscreen(self, fullscreen: Option<Fullscreen>) -> WindowAttributes

Sets whether the window should be put into fullscreen upon creation.

The default is None.

See Window::set_fullscreen for details.

pub fn with_maximized(self, maximized: bool) -> WindowAttributes

Request that the window is maximized upon creation.

The default is false.

See Window::set_maximized for details.

pub fn with_visible(self, visible: bool) -> WindowAttributes

Sets whether the window will be initially visible or hidden.

The default is to show the window.

See Window::set_visible for details.

pub fn with_transparent(self, transparent: bool) -> WindowAttributes

Sets whether the background of the window should be transparent.

If this is true, writing colors with alpha values different than 1.0 will produce a transparent window. On some platforms this is more of a hint for the system and you’d still have the alpha buffer. To control it see Window::set_transparent.

The default is false.

pub fn with_blur(self, blur: bool) -> WindowAttributes

Sets whether the background of the window should be blurred by the system.

The default is false.

See Window::set_blur for details.

pub fn transparent(&self) -> bool

Get whether the window will support transparency.

pub fn with_decorations(self, decorations: bool) -> WindowAttributes

Sets whether the window should have a border, a title bar, etc.

The default is true.

See Window::set_decorations for details.

pub fn with_window_level(self, level: WindowLevel) -> WindowAttributes

Sets the window level.

This is just a hint to the OS, and the system could ignore it.

The default is WindowLevel::Normal.

See WindowLevel for details.

pub fn with_window_icon(self, window_icon: Option<Icon>) -> WindowAttributes

Sets the window icon.

The default is None.

See Window::set_window_icon for details.

pub fn with_theme(self, theme: Option<Theme>) -> WindowAttributes

Sets a specific theme for the window.

If None is provided, the window will use the system theme.

The default is None.

§Platform-specific
  • Wayland: This controls only CSD. When using None it’ll try to use dbus to get the system preference. When explicit theme is used, this will avoid dbus all together.
  • x11: Build window with _GTK_THEME_VARIANT hint set to dark or light.
  • iOS / Android / Web / x11 / Orbital: Ignored.

pub fn with_content_protected(self, protected: bool) -> WindowAttributes

Prevents the window contents from being captured by other apps.

The default is false.

§Platform-specific
  • macOS: if false, NSWindowSharingNone is used but doesn’t completely prevent all apps from reading the window content, for instance, QuickTime.
  • iOS / Android / Web / x11 / Orbital: Ignored.

pub fn with_active(self, active: bool) -> WindowAttributes

Whether the window will be initially focused or not.

The window should be assumed as not focused by default following by the WindowEvent::Focused.

§Platform-specific:

Android / iOS / X11 / Wayland / Orbital: Unsupported.

pub fn with_cursor(self, cursor: impl Into<Cursor>) -> WindowAttributes

Modifies the cursor icon of the window.

The default is CursorIcon::Default.

See Window::set_cursor() for more details.

pub unsafe fn with_parent_window( self, parent_window: Option<RawWindowHandle>, ) -> WindowAttributes

Build window with parent window.

The default is None.

§Safety

parent_window must be a valid window handle.

§Platform-specific

pub fn with_platform_attributes( self, platform: Box<dyn PlatformWindowAttributes>, ) -> WindowAttributes

Set the platform specific opaque attribute object.

The interpretation will depend on the underlying backend that will be used.

Trait Implementations§

§

impl Clone for WindowAttributes

§

fn clone(&self) -> WindowAttributes

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
§

impl Debug for WindowAttributes

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Default for WindowAttributes

§

fn default() -> WindowAttributes

Returns the “default value” for a type. Read more

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more