pub struct Window<Data>where
Data: AppData,{ /* private fields */ }Expand description
The window widget
This widget is the root of any UI tree used as a window. It manages window decorations.
§Messages
kas::messages::SetWindowTitle may be used to set the title.
kas::messages::SetWindowIcon may be used to set the icon.
Implementations§
Source§impl<Data> Window<Data>where
Data: AppData,
impl<Data> Window<Data>where
Data: AppData,
Sourcepub fn new(
ui: impl Widget<Data = Data> + 'static,
title: impl ToString,
) -> Window<Data>
pub fn new( ui: impl Widget<Data = Data> + 'static, title: impl ToString, ) -> Window<Data>
Construct a window with a W: Widget and a title
Sourcepub fn new_boxed(
ui: Box<dyn Widget<Data = Data>>,
title: impl ToString,
) -> Window<Data>
pub fn new_boxed( ui: Box<dyn Widget<Data = Data>>, title: impl ToString, ) -> Window<Data>
Construct a window from a boxed ui widget and a title
Sourcepub fn boxed(self) -> BoxedWindow<Data>
pub fn boxed(self) -> BoxedWindow<Data>
Convert into a BoxedWindow
Sourcepub fn with_icon(self, icon: impl Into<Option<Icon>>) -> Window<Data>
pub fn with_icon(self, icon: impl Into<Option<Icon>>) -> Window<Data>
Set the window’s icon (inline)
Default: None
Sourcepub fn decorations(&self) -> Decorations
pub fn decorations(&self) -> Decorations
Get the preference for window decorations
Sourcepub fn with_decorations(self, decorations: Decorations) -> Window<Data>
pub fn with_decorations(self, decorations: Decorations) -> Window<Data>
Set the preference for window decorations
“Windowing” platforms (i.e. not mobile or web) usually include a title-bar, icons and potentially side borders. These are known as decorations.
This controls the preferred type of decorations. The resulting behaviour is platform-dependent.
Default: Decorations::Server.
Sourcepub fn restrictions(&self) -> (bool, bool)
pub fn restrictions(&self) -> (bool, bool)
Get window resizing restrictions: (restrict_min, restrict_max)
Sourcepub fn with_restrictions(
self,
restrict_min: bool,
restrict_max: bool,
) -> Window<Data>
pub fn with_restrictions( self, restrict_min: bool, restrict_max: bool, ) -> Window<Data>
Whether to limit the maximum size of a window
All widgets’ size rules allow calculation of two sizes: the minimum size and the ideal size. Windows are initially sized to the ideal size.
If restrict_min, the window may not be sized below the minimum size.
Default value: true.
If restrict_max, the window may not be sized above the ideal size.
Default value: false.
Sourcepub fn drag_anywhere(&self) -> bool
pub fn drag_anywhere(&self) -> bool
Get “drag anywhere” state
Sourcepub fn with_drag_anywhere(self, drag_anywhere: bool) -> Window<Data>
pub fn with_drag_anywhere(self, drag_anywhere: bool) -> Window<Data>
Whether to allow dragging the window from the background
If true, then any unhandled click+drag in the window may be used to
drag the window on supported platforms. Default value: true.
Sourcepub fn transparent(&self) -> bool
pub fn transparent(&self) -> bool
Get whether this window should use transparent rendering
Sourcepub fn with_transparent(self, transparent: bool) -> Window<Data>
pub fn with_transparent(self, transparent: bool) -> Window<Data>
Whether the window supports transparency
If true, painting with alpha < 1.0 makes the background visible.
Additionally, window draw targets are cleared to transparent. This does
not stop theme elements from drawing a solid background.
Note: results may vary by platform. Current output does not use pre-multiplied alpha which some platforms expect, thus pixels with partial transparency may have incorrect appearance.
Default: false.
Sourcepub fn with_alt_bypass(self) -> Window<Data>
pub fn with_alt_bypass(self) -> Window<Data>
Enable Alt bypass
Access keys usually require that Alt be held. This method allows access keys to be activated without holding Alt.
Disable navigation focus
Usually, widgets may be focussed and this focus may be navigated using the Tab key. This method prevents widgets from gaining focus.
Sourcepub fn set_modal_with_parent(&mut self, parent: WindowId)
pub fn set_modal_with_parent(&mut self, parent: WindowId)
Set the window as being modal with the given parent
If set, this window is considered modal: it is owned by parent, is not
listed on the taskbar, and prevents interaction with parent until it
has been closed.
Implementation status: partially implement on Windows only.
This feature uses WindowAttributesExtWindows’s with_owner_window
and with_skip_taskbar methods where available.
Winit currently provides no equivalents for other platforms.
Trait Implementations§
Source§impl<Data> Events for Window<Data>where
Data: AppData,
impl<Data> Events for Window<Data>where
Data: AppData,
Source§fn handle_event(
&mut self,
cx: &mut EventCx<'_>,
_: &<Window<Data> as Widget>::Data,
event: Event<'_>,
) -> IsUsed
fn handle_event( &mut self, cx: &mut EventCx<'_>, _: &<Window<Data> as Widget>::Data, event: Event<'_>, ) -> IsUsed
Source§fn handle_messages(
&mut self,
cx: &mut EventCx<'_>,
_: &<Window<Data> as Widget>::Data,
)
fn handle_messages( &mut self, cx: &mut EventCx<'_>, _: &<Window<Data> as Widget>::Data, )
Source§fn handle_scroll(&mut self, cx: &mut EventCx<'_>, data: &Data, _: Scroll)
fn handle_scroll(&mut self, cx: &mut EventCx<'_>, data: &Data, _: Scroll)
Source§const REDRAW_ON_MOUSE_OVER: bool = false
const REDRAW_ON_MOUSE_OVER: bool = false
Source§fn mouse_over_icon(&self) -> Option<CursorIcon>
fn mouse_over_icon(&self) -> Option<CursorIcon>
Source§fn configure_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
fn configure_recurse(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
Source§fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
fn update(&mut self, cx: &mut ConfigCx<'_>, data: &Self::Data)
Source§impl<Data> Layout for Window<Data>where
Data: AppData,
impl<Data> Layout for Window<Data>where
Data: AppData,
Source§impl<Data> Tile for Window<Data>where
Data: AppData,
impl<Data> Tile for Window<Data>where
Data: AppData,
Source§fn get_child(&self, index: usize) -> Option<&dyn Tile>
fn get_child(&self, index: usize) -> Option<&dyn Tile>
dyn Tile, if available Read moreSource§fn child_indices(&self) -> ChildIndices
fn child_indices(&self) -> ChildIndices
Source§fn role_child_properties(&self, cx: &mut dyn RoleCx, index: usize)
fn role_child_properties(&self, cx: &mut dyn RoleCx, index: usize)
index Read moreAuto Trait Implementations§
impl<Data> Freeze for Window<Data>
impl<Data> !RefUnwindSafe for Window<Data>
impl<Data> !Send for Window<Data>
impl<Data> !Sync for Window<Data>
impl<Data> Unpin for Window<Data>
impl<Data> !UnwindSafe for Window<Data>
Blanket Implementations§
Source§impl<W> AdaptWidget for Wwhere
W: Widget,
impl<W> AdaptWidget for Wwhere
W: Widget,
Source§fn pack(self, hints: AlignHints) -> Pack<Self>
fn pack(self, hints: AlignHints) -> Pack<Self>
Source§fn margins(self, dirs: Directions, style: MarginStyle) -> Margins<Self>
fn margins(self, dirs: Directions, style: MarginStyle) -> Margins<Self>
Source§fn on_configure<F>(self, f: F) -> AdaptEvents<Self>where
F: Fn(&mut AdaptConfigCx<'_, '_>, &mut Self) + 'static,
fn on_configure<F>(self, f: F) -> AdaptEvents<Self>where
F: Fn(&mut AdaptConfigCx<'_, '_>, &mut Self) + 'static,
Events::configure Read moreSource§fn on_update<F>(self, f: F) -> AdaptEvents<Self>
fn on_update<F>(self, f: F) -> AdaptEvents<Self>
Events::update Read moreSource§fn on_message<M, H>(self, handler: H) -> AdaptEvents<Self>
fn on_message<M, H>(self, handler: H) -> AdaptEvents<Self>
M Read moreSource§fn map_message<M, N, H>(self, handler: H) -> AdaptEvents<Self>
fn map_message<M, N, H>(self, handler: H) -> AdaptEvents<Self>
Source§fn on_messages<H>(self, handler: H) -> AdaptEvents<Self>
fn on_messages<H>(self, handler: H) -> AdaptEvents<Self>
Source§fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self>
fn with_min_size_px(self, w: i32, h: i32) -> Reserve<Self>
Source§fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self>
fn with_min_size_em(self, w: f32, h: f32) -> Reserve<Self>
Source§fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>
fn with_label<D, T>(self, direction: D, label: T) -> WithLabel<Self, D>
Source§impl<W> AdaptWidgetAny for W
impl<W> AdaptWidgetAny for W
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
impl<S, T> CastApprox<T> for Swhere
T: ConvApprox<S>,
Source§fn try_cast_approx(self) -> Result<T, Error>
fn try_cast_approx(self) -> Result<T, Error>
Source§fn cast_approx(self) -> T
fn cast_approx(self) -> T
Source§impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
impl<S, T> CastFloat<T> for Swhere
T: ConvFloat<S>,
Source§fn cast_trunc(self) -> T
fn cast_trunc(self) -> T
Source§fn cast_nearest(self) -> T
fn cast_nearest(self) -> T
Source§fn cast_floor(self) -> T
fn cast_floor(self) -> T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<W> TileExt for W
impl<W> TileExt for W
Source§fn is_strict_ancestor_of(&self, id: &Id) -> bool
fn is_strict_ancestor_of(&self, id: &Id) -> bool
id is not self and is a descendant Read more