Enum ChromeRole
pub enum ChromeRole {
Bar,
Panel,
Control,
Selector,
Object,
}Expand description
What a chrome surface is. Picking the role fixes radius, surface and border together, so two surfaces of the same role are consistent without their authors having to coordinate.
Variants§
Bar
Docked chrome fixed to a screen edge — the top bar.
Panel
A floating surface opened over content — quick settings, the palette, a popover, a sheet.
Control
Something inside a Bar or Panel that you press — an action tile, a list row, a slider, a field.
Selector
One of a set you choose between — a tab pill, the tray pill, a workspace chip, a strip segment, a scope chip.
Object
A thing that holds app content — a window card or tile.
Implementations§
§impl ChromeRole
impl ChromeRole
pub fn radius(self, theme: &Theme, height: f64) -> f64
pub fn radius(self, theme: &Theme, height: f64) -> f64
height is used only by ChromeRole::Selector, a capsule that
resolves to half its own height rather than the degenerate
radii.full (9999), which breaks the rounded-rect path on a short
rect.
pub fn surface(self, theme: &Theme) -> AlphaColor<Srgb>
pub fn surface(self, theme: &Theme) -> AlphaColor<Srgb>
The role’s opaque surface colour. Reads the semantic surface
tokens, never a ramp slot, so it survives a theme whose author never
saw this code. A Panel’s body is painted in the floating material
(crate::floating_surface::paint_material); this is the colour
that material tints with, and what it is where blur is unavailable.
Trait Implementations§
§impl Clone for ChromeRole
impl Clone for ChromeRole
§fn clone(&self) -> ChromeRole
fn clone(&self) -> ChromeRole
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for ChromeRole
impl Debug for ChromeRole
§impl PartialEq for ChromeRole
impl PartialEq for ChromeRole
impl Copy for ChromeRole
impl Eq for ChromeRole
impl StructuralPartialEq for ChromeRole
Auto Trait Implementations§
impl Freeze for ChromeRole
impl RefUnwindSafe for ChromeRole
impl Send for ChromeRole
impl Sync for ChromeRole
impl Unpin for ChromeRole
impl UnsafeUnpin for ChromeRole
impl UnwindSafe for ChromeRole
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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> 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 more