Skip to main content

ProgressRing

Struct ProgressRing 

Source
pub struct ProgressRing { /* private fields */ }
Expand description

A themed determinate circular progress indicator.

Doubles as a circular gauge: pass ProgressRing::zones to colour the arc by which threshold band the fraction falls in, add a baseline-aligned unit suffix with ProgressRing::unit, and use ProgressRing::caption_below to anchor a descriptive caption underneath the ring instead of inside it.

// Default: 56 pt diameter, sky arc, percent in the centre.
ui.add(ProgressRing::new(0.42));

// Larger, green, custom centre text + sub-caption.
ui.add(
    ProgressRing::new(0.6)
        .size(88.0)
        .accent(Accent::Green)
        .text("12 / 20")
        .caption("files"),
);

// Donut-style gauge: threshold zones drive the arc colour, the
// unit suffix is baseline-aligned next to the value, and the
// caption sits below the ring.
ui.add(
    ProgressRing::new(0.68)
        .size(160.0)
        .zones(GaugeZones::new(0.6, 0.85))
        .text("68")
        .unit("GB")
        .caption_below("of 100"),
);

// Hide the centre text entirely with an empty override.
ui.add(ProgressRing::new(0.3).size(32.0).text(""));

Implementations§

Source§

impl ProgressRing

Source

pub fn new(fraction: f32) -> Self

Create a ring at fraction (0..=1). NaN and out-of-range values are clamped.

Source

pub fn size(self, size: f32) -> Self

Outer diameter in points. Default: 56. Clamped to at least 8.

Source

pub fn stroke_width(self, width: f32) -> Self

Arc stroke thickness in points. Defaults to ~8 % of size, clamped to [3.0, 10.0].

Source

pub fn color(self, color: Color32) -> Self

Paint the arc with an explicit colour. Clears any previously set accent.

Source

pub fn accent(self, accent: Accent) -> Self

Pick the arc colour from one of the theme’s accents. Clears any previously set explicit colour. Default: the theme’s sky.

Source

pub fn zones(self, zones: GaugeZones) -> Self

Drive the arc colour from threshold zones (success / warning / danger depending on which band the current fraction falls in), turning the ring into a circular gauge. Takes precedence over accent but loses to an explicit color.

Source

pub fn text(self, text: impl Into<String>) -> Self

Override the centre text. By default the ring shows the rounded percent (e.g. “42%”) once size >= 40; passing "" hides the text entirely.

Source

pub fn unit(self, unit: impl Into<String>) -> Self

Add a small muted unit suffix next to the centre text, baseline-aligned with the primary value (e.g. text("68"), unit("GB") reads as 68 GB with the unit slightly smaller and the bottoms aligned to the value’s baseline).

Source

pub fn caption(self, caption: impl Into<String>) -> Self

Add a small muted sub-caption directly under the primary text, inside the ring. See caption_below for a variant that anchors the caption outside the ring instead.

Source

pub fn caption_below(self, caption: impl Into<String>) -> Self

Add a small muted caption beneath the entire ring (outside the circle). Useful for descriptive phrases like "of 100" or "of monthly budget" that would crowd the centre if rendered inside. Reserves vertical space below the ring for the caption.

Trait Implementations§

Source§

impl Clone for ProgressRing

Source§

fn clone(&self) -> ProgressRing

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ProgressRing

Source§

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

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

impl Widget for ProgressRing

Source§

fn ui(self, ui: &mut Ui) -> Response

Allocate space, interact, paint, and return a Response. Read more

Auto Trait Implementations§

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<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, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(value: T, _simd: S) -> 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 = Infallible

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

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