pub struct Window<Behavior = WidgetInstance>where
Behavior: WindowBehavior,{
pub title: Value<MaybeLocalized>,
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,
pub resize_to_fit: Value<bool>,
/* private fields */
}Expand description
A Cushy window that is not yet running.
Fields§
§title: Value<MaybeLocalized>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: boolWhen true, the system fonts will be loaded into the font database. This is on by default.
serif_font_family: FontFamilyListThe list of font families to try to find when a FamilyOwned::Serif
font is requested.
sans_serif_font_family: FontFamilyListThe list of font families to try to find when a
FamilyOwned::SansSerif font is requested.
fantasy_font_family: FontFamilyListThe list of font families to try to find when a FamilyOwned::Fantasy
font is requested.
monospace_font_family: FontFamilyListThe list of font families to try to find when a
FamilyOwned::Monospace font is requested.
cursive_font_family: FontFamilyListThe list of font families to try to find when a FamilyOwned::Cursive
font is requested.
fonts: FontCollectionA collection of fonts that this window will load.
vsync: boolWhen 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: NonZeroU32The number of samples to perform for each pixel rendered to the screen. When 1, multisampling is disabled.
resize_to_fit: Value<bool>Resizes the window to fit the contents if true.
Implementations§
Source§impl Window
impl Window
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.
Source§impl<Behavior> Window<Behavior>where
Behavior: WindowBehavior,
impl<Behavior> Window<Behavior>where
Behavior: WindowBehavior,
Sourcepub fn new(context: Behavior::Context) -> Self
pub fn new(context: Behavior::Context) -> Self
Returns a new instance using context to initialize the window upon
opening.
Sourcepub const fn handle(&self) -> &WindowHandle
pub const fn handle(&self) -> &WindowHandle
Returns the handle to this window.
Sourcepub fn open_centered<App>(self, app: &mut App) -> Result<WindowHandle>where
App: Application + ?Sized,
pub fn open_centered<App>(self, app: &mut App) -> Result<WindowHandle>where
App: Application + ?Sized,
Opens self in the center of the monitor the window initially appears
on.
Sourcepub fn focused(self, focused: impl IntoValue<bool>) -> Self
pub fn focused(self, focused: impl IntoValue<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.
The current value of focused will inform the OS whether the window
should be activated upon opening.
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.
Sourcepub fn fullscreen(self, fullscreen: impl IntoValue<Option<Fullscreen>>) -> Self
pub fn fullscreen(self, fullscreen: impl IntoValue<Option<Fullscreen>>) -> Self
Sets the full screen mode for this window.
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 synchronized 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 outer_size(self, outer_size: impl IntoDynamic<Size<UPx>>) -> Self
pub fn outer_size(self, outer_size: impl IntoDynamic<Size<UPx>>) -> Self
Sets outer_size to be a dynamic synchronized with this window’s size,
including decorations.
When the window is resized, the dynamic will contain its new size.
Setting this dynamic with a new value does not change the window in any
way. To resize the window, use inner_size.
Sourcepub fn outer_position(
self,
position: impl IntoValue<Point<Px>>,
automatic_layout: bool,
) -> Self
pub fn outer_position( self, position: impl IntoValue<Point<Px>>, automatic_layout: bool, ) -> Self
Sets position to be a dynamic synchronized with this window’s outer
position.
If automatic_layout is true, the initial value of position will be
ignored and the window server will control the window’s initial
position.
When the window is moved, this dynamic will contain its new position. Setting this dynamic will attempt to move the window to the provided location.
Sourcepub fn inner_position(self, position: impl IntoDynamic<Point<Px>>) -> Self
pub fn inner_position(self, position: impl IntoDynamic<Point<Px>>) -> Self
Sets position to be a dynamic synchronized with this window’s inner
position.
When the window is moved, this dynamic will contain its new position.
Setting this dynamic to a new value has no effect. To move a window, use
outer_position.
Sourcepub fn resize_to_fit(self, resize_to_fit: impl IntoValue<bool>) -> Self
pub fn resize_to_fit(self, resize_to_fit: impl IntoValue<bool>) -> Self
Resizes this window to fit the contents when resize_to_fit is true.
Sourcepub fn content_protected(self, protected: impl IntoValue<bool>) -> Self
pub fn content_protected(self, protected: impl IntoValue<bool>) -> Self
Prevents the window contents from being captured by other apps.
Sourcepub fn cursor_hittest(self, hittest: impl IntoValue<bool>) -> Self
pub fn cursor_hittest(self, hittest: impl IntoValue<bool>) -> Self
Controls whether the cursor should interact with this window or not.
Sourcepub fn cursor_visible(self, visible: impl IntoValue<bool>) -> Self
pub fn cursor_visible(self, visible: impl IntoValue<bool>) -> Self
Sets whether the cursor is visible when above this window.
Sourcepub fn cursor_position(
self,
window_position: impl IntoDynamic<Point<Px>>,
) -> Self
pub fn cursor_position( self, window_position: impl IntoDynamic<Point<Px>>, ) -> Self
A dynamic providing access to the window coordinate of the cursor, or -1, -1 if the cursor is not currently hovering the window.
In the future, this dynamic will also support setting the position of the cursor within the window.
Sourcepub fn decorated(self, decorated: impl IntoValue<bool>) -> Self
pub fn decorated(self, decorated: impl IntoValue<bool>) -> Self
Controls whether window decorations are shown around this window.
Sets the enabled buttons for this window.
Sourcepub fn window_level(self, window_level: impl IntoValue<WindowLevel>) -> Self
pub fn window_level(self, window_level: impl IntoValue<WindowLevel>) -> Self
Controls the level of this window.
Sourcepub fn minimized(self, minimized: impl IntoDynamic<bool>) -> Self
pub fn minimized(self, minimized: impl IntoDynamic<bool>) -> Self
Provides a dynamic that is updated with the minimized status of this window.
Sourcepub fn maximized(self, maximized: impl IntoDynamic<bool>) -> Self
pub fn maximized(self, maximized: impl IntoDynamic<bool>) -> Self
Provides a dynamic that is updated with the maximized status of this window.
Sourcepub fn resizable(self, resizable: impl IntoValue<bool>) -> Self
pub fn resizable(self, resizable: impl IntoValue<bool>) -> Self
Controls whether the window is resizable by the user or not.
Sourcepub fn resize_increments(
self,
resize_increments: impl IntoValue<Size<UPx>>,
) -> Self
pub fn resize_increments( self, resize_increments: impl IntoValue<Size<UPx>>, ) -> Self
Controls the increments in which the window can be resized.
Sourcepub fn transparent(self) -> Self
pub fn transparent(self) -> Self
Sets this window to render with a transparent background.
Sourcepub fn visible(self, visible: impl IntoDynamic<bool>) -> Self
pub fn visible(self, visible: impl IntoDynamic<bool>) -> Self
Controls the visibility of this window.
Sourcepub fn zoom(self, zoom: impl IntoDynamic<Fraction>) -> Self
pub fn zoom(self, zoom: impl IntoDynamic<Fraction>) -> Self
Sets this window’s zoom factor.
The zoom factor is multiplied with the DPI scaling from the window server to allow an additional scaling factor to be applied.
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.
Sourcepub fn on_open<Function>(self, on_open: Function) -> Self
pub fn on_open<Function>(self, on_open: Function) -> Self
Invokes on_open when this window is first opened, even if it is not
visible.
Sourcepub fn on_init<Function>(self, on_init: Function) -> Self
pub fn on_init<Function>(self, on_init: Function) -> Self
Invokes on_init before the window initialization begins.
Sourcepub fn on_close<Function>(self, on_close: Function) -> Self
pub fn on_close<Function>(self, on_close: Function) -> Self
Invokes on_close when this window is closed.
Sourcepub fn on_close_requested<Function>(self, on_close_requested: Function) -> Self
pub fn on_close_requested<Function>(self, on_close_requested: Function) -> Self
Invokes on_close_requested when the window is requested to be closed.
If the function returns true, the window is allowed to be closed, otherwise the window remains open.
Sourcepub fn on_file_drop<Function>(self, on_file_drop: Function) -> Self
pub fn on_file_drop<Function>(self, on_file_drop: Function) -> Self
Invokes on_file_drop when a file is hovered or dropped on this window.
Sourcepub fn on_file_drop_notify(
self,
on_file_drop: impl Into<Notify<FileDrop>>,
) -> Self
pub fn on_file_drop_notify( self, on_file_drop: impl Into<Notify<FileDrop>>, ) -> Self
Notifies on_file_drop when a file is hovered or dropped on this window.
Sourcepub fn titled(self, title: impl IntoValue<MaybeLocalized>) -> Self
pub fn titled(self, title: impl IntoValue<MaybeLocalized>) -> Self
Sets the window’s title.
Sourcepub fn modifiers(self, modifiers: impl IntoDynamic<Modifiers>) -> Self
pub fn modifiers(self, modifiers: impl IntoDynamic<Modifiers>) -> Self
Sets modifiers to contain the state of the keyboard modifiers when
this window has keyboard focus.
Sourcepub fn app_name(self, name: impl Into<String>) -> Self
pub fn app_name(self, name: impl Into<String>) -> Self
Sets the name of the application.
WM_CLASSon X11- application ID on wayland
- class name on windows
Sourcepub fn with_shortcut<F>(
self,
key: impl Into<ShortcutKey>,
modifiers: ModifiersState,
callback: F,
) -> Self
pub fn with_shortcut<F>( self, key: impl Into<ShortcutKey>, modifiers: ModifiersState, callback: F, ) -> Self
Invokes callback when key is pressed while modifiers are pressed.
Widgets have a chance to handle keyboard input before the Window.
Sourcepub fn with_shortcuts(self, shortcuts: impl IntoValue<ShortcutMap>) -> Self
pub fn with_shortcuts(self, shortcuts: impl IntoValue<ShortcutMap>) -> Self
Invokes shortcuts when keyboard input is unhandled in this window.
Sourcepub fn with_repeating_shortcut<F>(
self,
key: impl Into<ShortcutKey>,
modifiers: ModifiersState,
callback: F,
) -> Self
pub fn with_repeating_shortcut<F>( self, key: impl Into<ShortcutKey>, modifiers: ModifiersState, callback: F, ) -> Self
Invokes callback when key is pressed while modifiers are pressed.
If the shortcut is held, the callback will be invoked on repeat events.
Widgets have a chance to handle keyboard input before the Window.
Trait Implementations§
Source§impl<Behavior> MakeWindow for Window<Behavior>where
Behavior: WindowBehavior,
impl<Behavior> MakeWindow for Window<Behavior>where
Behavior: WindowBehavior,
Source§fn make_window(self) -> Window<Self::Behavior>
fn make_window(self) -> Window<Self::Behavior>
self.Source§fn open_centered<App>(self, app: &mut App) -> Result<WindowHandle>
fn open_centered<App>(self, app: &mut App) -> Result<WindowHandle>
self in the center of the monitor the window initially appears
on.Source§fn run_centered(self) -> Resultwhere
Self: Sized,
fn run_centered(self) -> Resultwhere
Self: Sized,
self in the center of the monitor the window
initially appears on.Source§fn run_centered_in(self, app: PendingApp) -> Resultwhere
Self: Sized,
fn run_centered_in(self, app: PendingApp) -> Resultwhere
Self: Sized,
app after opening self in the center of the monitor the window
initially appears on.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>,
Source§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>,
Source§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> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
Source§impl<T> Open for Twhere
T: MakeWindow,
impl<T> Open for Twhere
T: MakeWindow,
Source§fn open<App>(self, app: &mut App) -> Result<WindowHandle, EventLoopError>where
App: Application + ?Sized,
fn open<App>(self, app: &mut App) -> Result<WindowHandle, EventLoopError>where
App: Application + ?Sized,
app.§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>,
Source§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