pub struct Window<Data: 'static> { /* 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: 'static> Window<Data>
impl<Data: 'static> Window<Data>
Sourcepub fn new(ui: impl Widget<Data = Data> + 'static, title: impl ToString) -> Self
pub fn new(ui: impl Widget<Data = Data> + 'static, title: impl ToString) -> Self
Construct a window with a W: Widget
and a title
Sourcepub fn new_boxed(ui: Box<dyn Widget<Data = Data>>, title: impl ToString) -> Self
pub fn new_boxed(ui: Box<dyn Widget<Data = Data>>, title: impl ToString) -> Self
Construct a window from a boxed ui
widget and a title
Sourcepub fn with_icon(self, icon: impl Into<Option<Icon>>) -> Self
pub fn with_icon(self, icon: impl Into<Option<Icon>>) -> Self
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) -> Self
pub fn with_decorations(self, decorations: Decorations) -> Self
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) -> Self
pub fn with_restrictions(self, restrict_min: bool, restrict_max: bool) -> Self
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) -> Self
pub fn with_drag_anywhere(self, drag_anywhere: bool) -> Self
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) -> Self
pub fn with_transparent(self, transparent: bool) -> Self
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) -> Self
pub fn with_alt_bypass(self) -> Self
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.
Trait Implementations§
Source§impl<Data: 'static> Events for Window<Data>
impl<Data: 'static> Events for Window<Data>
Source§fn handle_event(
&mut self,
cx: &mut EventCx<'_>,
_: &Self::Data,
event: Event<'_>,
) -> IsUsed
fn handle_event( &mut self, cx: &mut EventCx<'_>, _: &Self::Data, event: Event<'_>, ) -> IsUsed
Source§fn handle_messages(&mut self, cx: &mut EventCx<'_>, _: &Self::Data)
fn handle_messages(&mut self, cx: &mut EventCx<'_>, _: &Self::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: 'static> Layout for Window<Data>
impl<Data: 'static> Layout for Window<Data>
Source§impl<Data: 'static> Tile for Window<Data>
impl<Data: 'static> Tile for Window<Data>
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<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