DreamGUI
Reference

UDreamProgressBar

A progress bar whose hierarchy is code, not an asset.

Inherits from UDreamUIControl.

Declared in Public/Controls/DreamProgressBar.h.

A progress bar whose hierarchy is code, not an asset.

Two nodes and no behaviour: a track that IS the root -- the button's face-is-root argument, a bar is one rectangle -- and a fill inside it that the control drives. UUIProgressBar exists and could drive the same geometry, but a behaviour earns its place by owning interaction or per-frame work (marquee), and a plain bar has neither; the control writing the fill itself is smaller than handing a part to a component whose other features it hides.

TWO SHAPES, ONE CONTROL. Bar spends the percent as the fill's WIDTH; Radial spends it as a swept ANGLE and the two rects become rings. That is one enum rather than two classes for the reason the slider has one Direction rather than two Blueprint presets: the parts, the property and the style are identical and only the drawing differs. Radial rides the fill rect's OWN RadialFill wedge -- no second visual, no mask, no material variant -- and the ring itself is the rect's border with its body switched off, because a border is the only hole this primitive has.

A Throbber falls out of that and needs no class of its own: a Radial bar at a fixed Percent whose RadialStartAngle (or the widget's rotation) an animation spins is exactly the spinner UMG ships, and it is styled from the same sheet as every other bar in the project.

UMG parity is UProgressBar's core: Percent in 0..1, SetPercent/GetPercent, no events -- progress is written by code, so there is nobody to notify.

/Script/DreamGUIControls.DreamProgressBar LoadProgress {
    Percent = 0.35

Properties

NameTypeCategoryIn the details panelFrom BlueprintDescription
StyleFDreamProgressBarStyleProgress BaryesGetStyle / SetStyleThis instance's own look. The project sheet wins while StyleSource says so AND a sheet actually exists; with no sheet in the project this IS the look in effect -- which is why it stays editable instead of being gated on the enum: the old edit condition greyed the exact values that were driving the control.
FillColorAndOpacityFColorProgress BaryesGetFillColorAndOpacity / SetFillColorAndOpacityA tint over the style's fill colour -- UMG's FillColorAndOpacity, which is a tint over SProgressBar's fill image for the same reason: the style says what a filled bar looks like, and this says what is happening to this one right now. White is no opinion.
PercentfloatProgress BaryesGetPercent / SetPercentHow much of the track is filled, 0..1. A property so .dui and bindings can see it; the value is stored as authored and clamped only where it becomes geometry, which is UMG's arrangement.
ShapeEDreamProgressShapeProgress BaryesGetShape / SetShapeWhich silhouette the percent is spent on: a bar's width, or a ring's swept angle. A property, not a subclass -- see the class comment, and EDreamProgressShape.
FillTypeEDreamProgressFillTypeProgress BaryesGetFillType / SetFillTypeWhich edge the fill grows from. Bar only -- a ring's direction is its RadialStartAngle, which the style already states.
bIsMarqueeboolProgress BaryesGetIsMarquee / SetIsMarqueeThe INDETERMINATE bar -- UMG's bIsMarquee: a short fill sweeping the track forever, for work whose length nobody knows.
MarqueeFractionfloatProgress BaryesGetMarqueeFraction / SetMarqueeFractionHow much of the track the sweeping fill covers, 0..1. A fraction rather than a pixel count for the reason every other length on this control is one: a bar is stretched by whoever placed it.
MarqueeDurationfloatProgress BaryesGetMarqueeDuration / SetMarqueeDurationSeconds for one sweep, entrance to exit. Zero or less parks the sweep at the start edge.
TrackNodeTObjectPtr<UDreamWidget>Progress Bar-read only
FillNodeTObjectPtr<UDreamWidget>Progress Bar-read only

Functions

FunctionKindDescription
FColor GetFillColorAndOpacity()pureGet Fill Color and Opacity
EDreamProgressFillType GetFillType()pureGet Fill Type
bool GetIsMarquee()pureGet Is Marquee
float GetMarqueeDuration()pureGet Marquee Duration
float GetMarqueeFraction()pureGet Marquee Fraction
float GetPercent()pureGet Percent
EDreamProgressShape GetShape()pureGet Shape
FDreamProgressBarStyle GetStyle()pureGet Style
void SetFillColorAndOpacity(FColor InFillColorAndOpacity)callableSet Fill Color and Opacity
void SetFillType(EDreamProgressFillType InFillType)callableRe-places the fill: the direction decides which edge it is anchored to and which axis it spends.
void SetIsMarquee(bool bInIsMarquee)callableTurning it on starts the sweep AND the per-frame tick it needs; turning it off stops both.
void SetMarqueeDuration(float InMarqueeDuration)callableSeconds for one sweep. Zero or less parks it at the start edge, which is where it re-places to.
void SetMarqueeFraction(float InMarqueeFraction)callableHow wide the sweeping fill is. Clamped where the property is, and re-placed at once: the width is read by the sweep, and a sweep parked by a zero duration would otherwise keep the old width until something else moved it.
void SetPercent(float InPercent)callableSet Percent
void SetShape(EDreamProgressShape InShape)callableRe-pushes the whole style, because the shape decides what every other knob means.
void SetStyle(FDreamProgressBarStyle InStyle)callableThis instance's whole look, replaced and pushed. See UDreamButton::SetStyle for the caveat.

Compared with UMG

Every Blueprint-facing member of the UMG class, and where it went. adopt: same name, same meaning. map: here under another name or on another type. reject: deliberately absent, with the reason.

UMGMemberStatusHereNote
UProgressBarWidgetStylemapStyleFDreamProgressBarStyle: track and fill colours and brushes, thickness, and the ring's numbers.
UProgressBarPercentadoptPercent
UProgressBarBarFillTypemapFillTypeEDreamProgressFillType. UMG's TopToBottom / BottomToTop / LeftToRight / RightToLeft; its two FillFromCenter values are the ring's business here (Shape = Radial), not a bar's.
UProgressBarBarFillStylerejectThe fill here is a RECT whose length IS the percent, and the brush on it is drawn to that rect -- which is UMG's Scale, the default and the only one of the two this geometry can express. Mask means holding the drawing at full bar width while a window reveals part of it, and there is nothing to hold it with: the face brush has no UV offset, so it would take a second node under a clip. Worth knowing before asking for it: for the plain colour fill the style ships, the two modes are pixel-identical, and the difference only appears for a fill carrying a picture.
UProgressBarbIsMarqueeadoptbIsMarqueeBar only, and it is what opts the control into ticking at all.
UProgressBarBorderPaddingmapFDreamProgressBarStyle::BorderPaddingSpent on the FILL rather than on the track, so the bar stays the size it looks and the fill sits inside it. The four margin numbers sort by what the FillType makes them: the edge the fill starts at, the edge it ends at, and the two sides (an uneven pair shifts the fill the way the bigger side pushes). Zero by default. The Radial shape ignores it -- a ring's fill sits exactly on its track, and insetting it would make a second, smaller ring.
UProgressBarFillColorAndOpacityadoptFillColorAndOpacityFColor, and a TINT over the style's fill colour -- which is what it is in Slate too.
UProgressBarSetPercentadoptSetPercent
UProgressBarSetIsMarqueeadoptSetIsMarquee
UProgressBarSetFillColorAndOpacityadoptSetFillColorAndOpacity
UProgressBarSetStyleadoptSetStyleNot a UFUNCTION on UProgressBar (its Setter meta names it); added here so a look can be replaced at runtime.

On this page