Skip to main content

Frame

Struct Frame 

Source
pub struct Frame {
    pub inner_margin: Margin,
    pub outer_margin: Margin,
    pub visuals: FrameVisuals,
    pub sense: Sense,
    pub interactive: bool,
    pub selected: bool,
    pub fill_width: bool,
}
Expand description

A frame around some content: margin, fill ([Fill]), stroke, rounding, shadow.

Same geometry as egui::Frame: content_size + inner_margin + 2 * stroke.width + outer_margin.

The difference is the fill is a [Fill], so it can be a two-stop gradient, and state colors live on FrameVisuals like the other widgets.

Stroke width is taken from the idle border at begin. Changing stroke width on hover after begin does not relayout.

Fields§

§inner_margin: Margin§outer_margin: Margin§visuals: FrameVisuals§sense: Sense§interactive: bool

When false, paint always uses idle fill / border, even if the pointer is over the frame. Hover / click fills need Self::interactive.

§selected: bool

Paint FrameVisuals::bg_selected instead of idle / hover / click.

§fill_width: bool

Stretch the frame to the available width (useful for sidebar rows).

Implementations§

Source§

impl Frame

Source

pub const NONE: Self

Source

pub const fn new() -> Self

Source

pub fn from_egui(frame: Frame) -> Self

Copy margins, idle fill, stroke, radius, and shadow from an egui::Frame. Hover / click start equal to idle.

Source

pub fn inner_margin(self, inner_margin: impl Into<Margin>) -> Self

Source

pub fn outer_margin(self, outer_margin: impl Into<Margin>) -> Self

Source

pub fn fill(self, fill: impl Into<Color32>) -> Self

Idle fill. Does not change hover / click unless they were still the old idle fill.

Source

pub fn stroke(self, stroke: impl Into<Stroke>) -> Self

Source

pub fn corner_radius(self, corner_radius: impl Into<CornerRadius>) -> Self

Source

pub fn square_corners(self) -> Self

Make the frame square corners.

Source

pub fn shadow(self, shadow: Shadow) -> Self

Source

pub fn visuals(self, visuals: FrameVisuals) -> Self

Replace fill, stroke, radius, and shadow. Margins and sense are kept.

Source

pub fn sense(self, sense: Sense) -> Self

Source

pub fn interactive(self, interactive: bool) -> Self

true → Sense::click and hover / click fills. false → idle chrome only (pointer hover does not swap fill).

Source

pub fn selected(self, selected: bool) -> Self

Paint FrameVisuals::bg_selected even when not hovered.

Source

pub fn fill_width(self, fill: bool) -> Self

Stretch the frame to the available width.

The content Ui also gets that min width, so inner right-to-left rows (unread counts, timestamps) land on the far edge.

Source

pub fn multiply_with_opacity(self, opacity: f32) -> Self

Source

pub fn total_margin(&self) -> MarginF32

Idle stroke width is part of the margin (same as egui::Frame).

Source

pub fn fill_rect(&self, content_rect: Rect) -> Rect

Source

pub fn widget_rect(&self, content_rect: Rect) -> Rect

Source

pub fn outer_rect(&self, content_rect: Rect) -> Rect

Source§

impl Frame

Source

pub fn begin(self, ui: &mut Ui) -> Prepared

Source

pub fn show<R>( self, ui: &mut Ui, add_contents: impl FnOnce(&mut Ui) -> R, ) -> InnerResponse<R>

Trait Implementations§

Source§

impl Clone for Frame

Source§

fn clone(&self) -> Frame

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Frame

Source§

impl Debug for Frame

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Frame

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Frame

Source§

fn eq(&self, other: &Frame) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Frame

Auto Trait Implementations§

§

impl Freeze for Frame

§

impl RefUnwindSafe for Frame

§

impl Send for Frame

§

impl Sync for Frame

§

impl Unpin for Frame

§

impl UnsafeUnpin for Frame

§

impl UnwindSafe for Frame

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.