[][src]Struct winit::window::Window

pub struct Window { /* fields omitted */ }

Represents a window.

Example

use winit::{
    event::{Event, WindowEvent},
    event_loop::{ControlFlow, EventLoop},
    window::Window,
};

let mut event_loop = EventLoop::new();
let window = Window::new(&event_loop).unwrap();

event_loop.run(move |event, _, control_flow| {
    match event {
        Event::WindowEvent {
            event: WindowEvent::CloseRequested,
            ..
        } => *control_flow = ControlFlow::Exit,
        _ => *control_flow = ControlFlow::Wait,
    }
});

Methods

impl Window[src]

Base Window functions.

pub fn new<T: 'static>(
    event_loop: &EventLoopWindowTarget<T>
) -> Result<Window, OsError>
[src]

Creates a new Window for platforms where this is appropriate.

This function is equivalent to WindowBuilder::new().build(event_loop).

Error should be very rare and only occur in case of permission denied, incompatible system, out of memory, etc.

pub fn id(&self) -> WindowId[src]

Returns an identifier unique to the window.

pub fn hidpi_factor(&self) -> f64[src]

Returns the DPI factor that can be used to map logical pixels to physical pixels, and vice versa.

See the dpi module for more information.

Note that this value can change depending on user action (for example if the window is moved to another screen); as such, tracking WindowEvent::HiDpiFactorChanged events is the most robust way to track the DPI you need to use to draw.

Platform-specific

  • X11: This respects Xft.dpi, and can be overridden using the WINIT_HIDPI_FACTOR environment variable.
  • Android: Always returns 1.0.
  • iOS: Can only be called on the main thread. Returns the underlying UIView's contentScaleFactor.

pub fn request_redraw(&self)[src]

Emits a WindowEvent::RedrawRequested event in the associated event loop after all OS events have been processed by the event loop.

This is the strongly encouraged method of redrawing windows, as it can integrate with OS-requested redraws (e.g. when a window gets resized).

This function can cause RedrawRequested events to be emitted after Event::EventsCleared but before Event::NewEvents if called in the following circumstances:

  • While processing EventsCleared.
  • While processing a RedrawRequested event that was sent during EventsCleared or any directly subsequent RedrawRequested event.

Platform-specific

  • iOS: Can only be called on the main thread.

impl Window[src]

Position and size functions.

pub fn inner_position(&self) -> Result<LogicalPosition, NotSupportedError>[src]

Returns the position of the top-left hand corner of the window's client area relative to the top-left hand corner of the desktop.

The same conditions that apply to outer_position apply to this method.

Platform-specific

  • iOS: Can only be called on the main thread. Returns the top left coordinates of the window's safe area in the screen space coordinate system.

pub fn outer_position(&self) -> Result<LogicalPosition, NotSupportedError>[src]

Returns the position of the top-left hand corner of the window relative to the top-left hand corner of the desktop.

Note that the top-left hand corner of the desktop is not necessarily the same as the screen. If the user uses a desktop with multiple monitors, the top-left hand corner of the desktop is the top-left hand corner of the monitor at the top-left of the desktop.

The coordinates can be negative if the top-left hand corner of the window is outside of the visible screen region.

Platform-specific

  • iOS: Can only be called on the main thread. Returns the top left coordinates of the window in the screen space coordinate system.

pub fn set_outer_position(&self, position: LogicalPosition)[src]

Modifies the position of the window.

See outer_position for more information about the coordinates.

This is a no-op if the window has already been closed.

Platform-specific

  • iOS: Can only be called on the main thread. Sets the top left coordinates of the window in the screen space coordinate system.

pub fn inner_size(&self) -> LogicalSize[src]

Returns the logical size of the window's client area.

The client area is the content of the window, excluding the title bar and borders.

Converting the returned LogicalSize to PhysicalSize produces the size your framebuffer should be.

Platform-specific

  • iOS: Can only be called on the main thread. Returns the LogicalSize of the window's safe area in screen space coordinates.

pub fn set_inner_size(&self, size: LogicalSize)[src]

Modifies the inner size of the window.

See inner_size for more information about the values.

Platform-specific

  • iOS: Unimplemented. Currently this panics, as it's not clear what set_inner_size would mean for iOS.

pub fn outer_size(&self) -> LogicalSize[src]

Returns the logical size of the entire window.

These dimensions include the title bar and borders. If you don't want that (and you usually don't), use inner_size instead.

Platform-specific

  • iOS: Can only be called on the main thread. Returns the LogicalSize of the window in screen space coordinates.

pub fn set_min_inner_size(&self, dimensions: Option<LogicalSize>)[src]

Sets a minimum dimension size for the window.

Platform-specific

  • iOS: Has no effect.

pub fn set_max_inner_size(&self, dimensions: Option<LogicalSize>)[src]

Sets a maximum dimension size for the window.

Platform-specific

  • iOS: Has no effect.

impl Window[src]

Misc. attribute functions.

pub fn set_title(&self, title: &str)[src]

Modifies the title of the window.

Platform-specific

  • Has no effect on iOS.

pub fn set_visible(&self, visible: bool)[src]

Modifies the window's visibility.

If false, this will hide the window. If true, this will show the window.

Platform-specific

  • Android: Has no effect.
  • iOS: Can only be called on the main thread.

pub fn set_resizable(&self, resizable: bool)[src]

Sets whether the window is resizable or not.

Note that making the window unresizable doesn't exempt you from handling Resized, as that event can still be triggered by DPI scaling, entering fullscreen mode, etc.

Platform-specific

This only has an effect on desktop platforms.

Due to a bug in XFCE, this has no effect on Xfwm.

Platform-specific

  • iOS: Has no effect.

pub fn set_maximized(&self, maximized: bool)[src]

Sets the window to maximized or back.

Platform-specific

  • iOS: Has no effect.

pub fn set_fullscreen(&self, monitor: Option<MonitorHandle>)[src]

Sets the window to fullscreen or back.

Platform-specific

  • iOS: Can only be called on the main thread.

pub fn fullscreen(&self) -> Option<MonitorHandle>[src]

Gets the window's current fullscreen state.

Platform-specific

  • iOS: Can only be called on the main thread.

pub fn set_decorations(&self, decorations: bool)[src]

Turn window decorations on or off.

Platform-specific

pub fn set_always_on_top(&self, always_on_top: bool)[src]

Change whether or not the window will always be on top of other windows.

Platform-specific

  • iOS: Has no effect.

pub fn set_window_icon(&self, window_icon: Option<Icon>)[src]

Sets the window icon. On Windows and X11, this is typically the small icon in the top-left corner of the titlebar.

For more usage notes, see WindowBuilder::with_window_icon.

Platform-specific

This only has an effect on Windows and X11.

pub fn set_ime_position(&self, position: LogicalPosition)[src]

Sets location of IME candidate box in client area coordinates relative to the top left.

Platform-specific

iOS: Has no effect.

impl Window[src]

Cursor functions.

pub fn set_cursor_icon(&self, cursor: CursorIcon)[src]

Modifies the cursor icon of the window.

Platform-specific

  • iOS: Has no effect.
  • Android: Has no effect.

pub fn set_cursor_position(
    &self,
    position: LogicalPosition
) -> Result<(), ExternalError>
[src]

Changes the position of the cursor in window coordinates.

Platform-specific

  • iOS: Always returns an Err.

pub fn set_cursor_grab(&self, grab: bool) -> Result<(), ExternalError>[src]

Grabs the cursor, preventing it from leaving the window.

Platform-specific

  • macOS: This presently merely locks the cursor in a fixed location, which looks visually awkward.
  • Android: Has no effect.
  • iOS: Always returns an Err.

pub fn set_cursor_visible(&self, visible: bool)[src]

Modifies the cursor's visibility.

If false, this will hide the cursor. If true, this will show the cursor.

Platform-specific

  • Windows: The cursor is only hidden within the confines of the window.
  • X11: The cursor is only hidden within the confines of the window.
  • macOS: The cursor is hidden as long as the window has input focus, even if the cursor is outside of the window.
  • iOS: Has no effect.
  • Android: Has no effect.

impl Window[src]

Monitor info functions.

pub fn current_monitor(&self) -> MonitorHandle[src]

Returns the monitor on which the window currently resides

Platform-specific

iOS: Can only be called on the main thread.

Important traits for AvailableMonitorsIter
pub fn available_monitors(&self) -> AvailableMonitorsIter[src]

Returns the list of all the monitors available on the system.

This is the same as EventLoop::available_monitors, and is provided for convenience.

Platform-specific

iOS: Can only be called on the main thread.

pub fn primary_monitor(&self) -> MonitorHandle[src]

Returns the primary monitor of the system.

This is the same as EventLoop::primary_monitor, and is provided for convenience.

Platform-specific

iOS: Can only be called on the main thread.

Trait Implementations

impl WindowExtUnix for Window[src]

impl Debug for Window[src]

Auto Trait Implementations

impl Send for Window

impl Unpin for Window

impl Sync for Window

impl !UnwindSafe for Window

impl !RefUnwindSafe for Window

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]