pub struct WindowsCapabilities {
pub version: WindowsVersion,
pub corner_preference: bool,
pub border_color: bool,
pub title_background_color: bool,
pub title_text_color: bool,
pub system_backdrop: bool,
}Expand description
Windows runtime support flags for version-dependent chrome features.
Fields§
§version: WindowsVersion§corner_preference: bool§border_color: bool§title_background_color: bool§title_text_color: bool§system_backdrop: boolImplementations§
Source§impl WindowsCapabilities
impl WindowsCapabilities
Sourcepub fn supports_dwm_visuals(self) -> bool
pub fn supports_dwm_visuals(self) -> bool
Returns true when the Windows 11 DWM visual chrome APIs are available.
Examples found in repository?
examples/custom_titlebar.rs (line 645)
639 fn chrome_settings(self) -> ChromeSettings {
640 let mut chrome = ChromeSettings::default();
641
642 match self {
643 Self::Windows => {
644 if let Some(capabilities) = current_windows_capabilities() {
645 if capabilities.supports_dwm_visuals() {
646 chrome.windows.corner_preference = Some(WindowCornerPreference::Round);
647 }
648
649 if capabilities.supports_system_backdrop() {
650 chrome.windows.backdrop = Some(WindowsBackdrop::Mica);
651 }
652 }
653 }
654 Self::Macos => {
655 chrome.macos.titlebar = true;
656 chrome.macos.title = false;
657 chrome.macos.traffic_lights = true;
658 chrome.macos.titlebar_transparent = true;
659 chrome.macos.fullsize_content_view = true;
660 chrome.macos.titlebar_height = Some(TITLEBAR_HEIGHT_F64);
661 chrome.macos.traffic_light_offset_y = Some(MACOS_TRAFFIC_LIGHT_OFFSET);
662 chrome.macos.titlebar_separator_style = Some(MacosTitlebarSeparatorStyle::None);
663 }
664 Self::LinuxX11 => {
665 chrome.linux.decorations = false;
666 }
667 Self::LinuxWayland | Self::Other => {}
668 }
669
670 chrome
671 }Sourcepub fn supports_system_backdrop(self) -> bool
pub fn supports_system_backdrop(self) -> bool
Returns true when the newer system backdrop material API is available.
Examples found in repository?
examples/custom_titlebar.rs (line 649)
639 fn chrome_settings(self) -> ChromeSettings {
640 let mut chrome = ChromeSettings::default();
641
642 match self {
643 Self::Windows => {
644 if let Some(capabilities) = current_windows_capabilities() {
645 if capabilities.supports_dwm_visuals() {
646 chrome.windows.corner_preference = Some(WindowCornerPreference::Round);
647 }
648
649 if capabilities.supports_system_backdrop() {
650 chrome.windows.backdrop = Some(WindowsBackdrop::Mica);
651 }
652 }
653 }
654 Self::Macos => {
655 chrome.macos.titlebar = true;
656 chrome.macos.title = false;
657 chrome.macos.traffic_lights = true;
658 chrome.macos.titlebar_transparent = true;
659 chrome.macos.fullsize_content_view = true;
660 chrome.macos.titlebar_height = Some(TITLEBAR_HEIGHT_F64);
661 chrome.macos.traffic_light_offset_y = Some(MACOS_TRAFFIC_LIGHT_OFFSET);
662 chrome.macos.titlebar_separator_style = Some(MacosTitlebarSeparatorStyle::None);
663 }
664 Self::LinuxX11 => {
665 chrome.linux.decorations = false;
666 }
667 Self::LinuxWayland | Self::Other => {}
668 }
669
670 chrome
671 }Trait Implementations§
Source§impl Clone for WindowsCapabilities
impl Clone for WindowsCapabilities
Source§fn clone(&self) -> WindowsCapabilities
fn clone(&self) -> WindowsCapabilities
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for WindowsCapabilities
impl Debug for WindowsCapabilities
Source§impl Hash for WindowsCapabilities
impl Hash for WindowsCapabilities
Source§impl PartialEq for WindowsCapabilities
impl PartialEq for WindowsCapabilities
impl Copy for WindowsCapabilities
impl Eq for WindowsCapabilities
impl StructuralPartialEq for WindowsCapabilities
Auto Trait Implementations§
impl Freeze for WindowsCapabilities
impl RefUnwindSafe for WindowsCapabilities
impl Send for WindowsCapabilities
impl Sync for WindowsCapabilities
impl Unpin for WindowsCapabilities
impl UnsafeUnpin for WindowsCapabilities
impl UnwindSafe for WindowsCapabilities
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&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> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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<State, Message> IntoBoot<State, Message> for State
impl<State, Message> IntoBoot<State, Message> for State
Source§fn into_boot(self) -> (State, Task<Message>)
fn into_boot(self) -> (State, Task<Message>)
Turns some type into the initial state of some
Application.