pub struct Window<Behavior = WidgetInstance>where
Behavior: WindowBehavior,{
pub attributes: WindowAttributes,
pub title: Value<String>,
pub theme: Value<ThemePair>,
pub load_system_fonts: bool,
pub serif_font_family: FontFamilyList,
pub sans_serif_font_family: FontFamilyList,
pub fantasy_font_family: FontFamilyList,
pub monospace_font_family: FontFamilyList,
pub cursive_font_family: FontFamilyList,
pub fonts: FontCollection,
pub vsync: bool,
pub multisample_count: NonZeroU32,
/* private fields */
}
Expand description
A Cushy window that is not yet running.
Fields§
§attributes: WindowAttributes
The attributes of this window.
title: Value<String>
The title to display in the title bar of the window.
theme: Value<ThemePair>
The colors to use to theme the user interface.
load_system_fonts: bool
When true, the system fonts will be loaded into the font database. This is on by default.
serif_font_family: FontFamilyList
The list of font families to try to find when a FamilyOwned::Serif
font is requested.
sans_serif_font_family: FontFamilyList
The list of font families to try to find when a
FamilyOwned::SansSerif
font is requested.
fantasy_font_family: FontFamilyList
The list of font families to try to find when a FamilyOwned::Fantasy
font is requested.
monospace_font_family: FontFamilyList
The list of font families to try to find when a
FamilyOwned::Monospace
font is requested.
cursive_font_family: FontFamilyList
The list of font families to try to find when a FamilyOwned::Cursive
font is requested.
fonts: FontCollection
A collection of fonts that this window will load.
vsync: bool
When true, Cushy will try to use “vertical sync” to try to eliminate graphical tearing that can occur if the graphics card has a new frame presented while the monitor is currently rendering another frame.
Under the hood, Cushy uses wgpu::PresentMode::AutoVsync
when true and
wgpu::PresentMode::AutoNoVsync
when false.
multisample_count: NonZeroU32
The number of samples to perform for each pixel rendered to the screen. When 1, multisampling is disabled.
Implementations§
source§impl Window<WidgetInstance>
impl Window<WidgetInstance>
sourcepub fn for_widget<W>(widget: W) -> Selfwhere
W: MakeWidget,
pub fn for_widget<W>(widget: W) -> Selfwhere
W: MakeWidget,
Returns a new instance using widget
as its contents.
sourcepub fn focused(self, focused: impl IntoDynamic<bool>) -> Self
pub fn focused(self, focused: impl IntoDynamic<bool>) -> Self
Sets focused
to be the dynamic updated when this window’s focus status
is changed.
When the window is focused for user input, the dynamic will contain
true
.
focused
will be initialized with an initial state
of false
.
sourcepub fn occluded(self, occluded: impl IntoDynamic<bool>) -> Self
pub fn occluded(self, occluded: impl IntoDynamic<bool>) -> Self
Sets occluded
to be the dynamic updated when this window’s occlusion
status is changed.
When the window is occluded (completely hidden/offscreen/minimized), the
dynamic will contain true
. If the window is at least partially
visible, this value will contain true
.
occluded
will be initialized with an initial state of false
.
sourcepub fn inner_size(self, inner_size: impl IntoDynamic<Size<UPx>>) -> Self
pub fn inner_size(self, inner_size: impl IntoDynamic<Size<UPx>>) -> Self
Sets inner_size
to be the dynamic syncrhonized with this window’s
inner size.
When the window is resized, the dynamic will contain its new size. When the dynamic is updated with a new value, a resize request will be made with the new inner size.
sourcepub fn themed_mode(self, theme_mode: impl IntoValue<ThemeMode>) -> Self
pub fn themed_mode(self, theme_mode: impl IntoValue<ThemeMode>) -> Self
Sets the ThemeMode
for this window.
If a ThemeMode
is provided, the window will be set to this theme
mode upon creation and will not be updated while the window is running.
If a Dynamic
is provided, the initial value will be ignored and the
dynamic will be updated when the window opens with the user’s current
theme mode. The dynamic will also be updated any time the user’s theme
mode changes.
Setting the Dynamic
’s value will also update the window with the new
mode until a mode change is detected, upon which the new mode will be
stored.
sourcepub fn themed(self, theme: impl IntoValue<ThemePair>) -> Self
pub fn themed(self, theme: impl IntoValue<ThemePair>) -> Self
Applies theme
to the widgets in this window.
sourcepub fn loading_font(self, font_data: Vec<u8>) -> Self
pub fn loading_font(self, font_data: Vec<u8>) -> Self
Adds font_data
to the list of fonts to load for availability when
rendering.
All font families contained in font_data
will be loaded.
Trait Implementations§
source§impl<Behavior> Open for Window<Behavior>where
Behavior: WindowBehavior,
impl<Behavior> Open for Window<Behavior>where
Behavior: WindowBehavior,
source§fn open<App>(self, app: &mut App) -> Result<Option<WindowHandle>>where
App: Application + ?Sized,
fn open<App>(self, app: &mut App) -> Result<Option<WindowHandle>>where
App: Application + ?Sized,
app
.source§fn run_in(self, app: PendingApp) -> Result
fn run_in(self, app: PendingApp) -> Result
app
, returning Ok(())
upon successful execution and program exit. Note that this function may
not ever return on some platforms.Auto Trait Implementations§
impl<Behavior> Freeze for Window<Behavior>
impl<Behavior = WidgetInstance> !RefUnwindSafe for Window<Behavior>
impl<Behavior> Send for Window<Behavior>
impl<Behavior = WidgetInstance> !Sync for Window<Behavior>
impl<Behavior> Unpin for Window<Behavior>
impl<Behavior = WidgetInstance> !UnwindSafe for Window<Behavior>
Blanket Implementations§
source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters
when converting.source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar> ) -> T
self
into C
, using the provided parameters.§impl<A> Cast for A
impl<A> Cast for A
source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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
.§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
.§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.§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> FromAngle<T> for T
impl<T> FromAngle<T> for T
source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle
.source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other
into Self
, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
source§fn into_angle(self) -> U
fn into_angle(self) -> U
T
.source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters
when converting.source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar> ) -> T
self
into C
, using the provided parameters.source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
source§fn into_color(self) -> U
fn into_color(self) -> U
source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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> IntoReadOnly<T> for T
impl<T> IntoReadOnly<T> for T
source§fn into_read_only(self) -> ReadOnly<T>
fn into_read_only(self) -> ReadOnly<T>
self
as a ReadOnly
.source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self
into T
, while performing the appropriate scaling,
rounding and clamping.source§impl<T> IntoValue<T> for T
impl<T> IntoValue<T> for T
source§fn into_value(self) -> Value<T>
fn into_value(self) -> Value<T>
Value
.§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors
fails to cast.source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains
the unclamped color. Read more