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
impl ProgressRing
Sourcepub fn new(fraction: f32) -> Self
pub fn new(fraction: f32) -> Self
Create a ring at fraction (0..=1). NaN and out-of-range values
are clamped.
Sourcepub fn size(self, size: f32) -> Self
pub fn size(self, size: f32) -> Self
Outer diameter in points. Default: 56. Clamped to at least 8.
Sourcepub fn stroke_width(self, width: f32) -> Self
pub fn stroke_width(self, width: f32) -> Self
Arc stroke thickness in points. Defaults to ~8 % of size,
clamped to [3.0, 10.0].
Sourcepub fn color(self, color: Color32) -> Self
pub fn color(self, color: Color32) -> Self
Paint the arc with an explicit colour. Clears any previously set accent.
Sourcepub fn accent(self, accent: Accent) -> Self
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.
Sourcepub fn zones(self, zones: GaugeZones) -> Self
pub fn zones(self, zones: GaugeZones) -> Self
Sourcepub fn text(self, text: impl Into<String>) -> Self
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.
Sourcepub fn unit(self, unit: impl Into<String>) -> Self
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).
Sourcepub fn caption(self, caption: impl Into<String>) -> Self
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.
Sourcepub fn caption_below(self, caption: impl Into<String>) -> Self
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
impl Clone for ProgressRing
Source§fn clone(&self) -> ProgressRing
fn clone(&self) -> ProgressRing
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more