Skip to content

ProgressCircle

Construct ProgressCircle() for ongoing work with unknown completion, or pass a normalized progress value for determinate work.

Row {
ProgressCircle(),
Text("Connecting"),
ProgressCircle(progress),
Text::Format("{}%", static_cast<int>(progress * 100.0F)),
}.With(
Spacing(10.0F),
CrossAlign(CrossAxisAlignment::Center)
)

Progress is controlled by the caller. Passing State<float> reads its current value; update the state to supply the next progress.

The component exposes progress-indicator semantics. Determinate mode reports its range value, while indeterminate mode communicates busy progress without inventing a percentage.

ProgressCircleStyle controls size, stroke width, track and indicator colors, track gap, indeterminate motion, arc fractions, and animation duration. Reduced-motion themes suppress or simplify continuous motion.

  • Constructors: ProgressCircle(), ProgressCircle(float), ProgressCircle(State<float>).
  • Common modifiers: Frame, Opacity, Semantics for an application-specific label.
  • Theme style: ProgressCircleStyle and ProgressCircleIndeterminateMotion.

Use ProgressBar when the available width should communicate progress along a linear track.

All three constructors are declared in huxerui, <huxerui/view.h>. The no-value constructor means indeterminate; an explicit zero is a determinate empty arc. Progress values represent fractions, so use 0.75F for 75 percent. The control normalizes its display; retain meaningful domain progress in application state.

ProgressCircleStyle field Effect
size, stroke_width Preferred diameter and ring stroke.
track_color, indeterminate_track_color Background tracks for the two modes.
indicator_color, track_gap Active arc color and separation from its track.
indeterminate_motion Sweep or PulsingArc.
minimum_indeterminate_arc_fraction, maximum_indeterminate_arc_fraction Shortest and longest visible indeterminate arc.
animation_duration Cycle duration in seconds.

Flat uses a steady-length sweeping arc; Material varies the arc extent. Keep a useful textual status alongside the indicator for reduced-motion users and assistive technologies. Hiding or removing the indicator does not cancel the operation it represents.