---
title: "ClikaRT::progress::ProgressBar"
sidebar_label: "ProgressBar"
description: "A standalone determinate progress bar over an arbitrary [min, max] range."
---

<!-- Generated by tools/doxygen2mdx from Doxygen XML. Do not edit. -->

<span class="api-kind api-kind--class">class</span>

**Header:** `ClikaRT/progress/progress.h`

A standalone determinate progress bar over an arbitrary \[min, max\] range.

## Member functions

### ProgressBar() {#ProgressBar}

<div class="api-signature">

**`ProgressBar`**()

</div>

an unstarted bar (first drive draws it)

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 64

</div>

### \~ProgressBar() {#ProgressBar-2}

<div class="api-signature">

**`~ProgressBar`**()

</div>

destructor

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 65

</div>

### ProgressBar(ProgressBar) {#ProgressBar-3}

<div class="api-signature">

**`ProgressBar`**(`ProgressBar&&` `other`) `noexcept`

</div>

move-construct

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 66

</div>

### operator=(ProgressBar) {#operator-assign}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`operator=`**([`ProgressBar`](./ProgressBar.md)`&&` `other`) `noexcept`

</div>

move-assign

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 67

</div>

### ProgressBar(ProgressBar) {#ProgressBar-4}

<div class="api-signature">

**`ProgressBar`**(`const ProgressBar&`) `=delete`

</div>

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 68

</div>

### operator=(ProgressBar) {#operator-assign-2}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`operator=`**(`const` [`ProgressBar`](./ProgressBar.md)`&`) `=delete`

</div>

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 69

</div>

### total() {#total}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`total`**(`double` `max`)

</div>

upper bound (default 100)

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 72

</div>

### min() {#min}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`min`**(`double` `value`)

</div>

lower bound (default 0)

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 73

</div>

### width() {#width}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`width`**(`int` `cells`)

</div>

bar cells; 0 = auto-fit (default)

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 74

</div>

### prefix() {#prefix}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`prefix`**(`std::string_view` `text`)

</div>

text before the bar

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 75

</div>

### postfix() {#postfix}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`postfix`**(`std::string_view` `text`)

</div>

text after the bar

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 76

</div>

### color() {#color}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`color`**([`Color`](./index.md#Color) `c`)

</div>

bar color

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 77

</div>

### unit() {#unit}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`unit`**(`std::string_view` `u`)

</div>

rate/count unit (default "it")

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 78

</div>

### as\_bytes() {#as_bytes}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`as_bytes`**(`bool` `on` `=` `true`)

</div>

humanize counts/rate as bytes

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 79

</div>

### smoothing\_window() {#smoothing_window}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`smoothing_window`**(`std::size_t` `n`)

</div>

Average the rate/ETA over the last `n` updates (a sliding window) so the displayed speed doesn't jump each tick; `n == 0` keeps EMA smoothing.

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 82

</div>

### ascii() {#ascii}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`ascii`**(`bool` `on` `=` `true`)

</div>

force the ASCII glyph set

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 83

</div>

### transient() {#transient}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`transient`**(`bool` `on` `=` `true`)

</div>

erase the bar on [done()](./ProgressBar.md#done)

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 84

</div>

### block() {#block}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`block`**(`bool` `on` `=` `true`)

</div>

smooth sub-cell (block-eighth) fill

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 85

</div>

### show\_percent() {#show_percent}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`show_percent`**(`bool` `on` `=` `true`)

</div>

show percent complete

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 86

</div>

### show\_count() {#show_count}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`show_count`**(`bool` `on` `=` `true`)

</div>

n/total

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 87

</div>

### show\_elapsed() {#show_elapsed}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`show_elapsed`**(`bool` `on` `=` `true`)

</div>

show elapsed time

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 88

</div>

### show\_eta() {#show_eta}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`show_eta`**(`bool` `on` `=` `true`)

</div>

show time remaining

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 89

</div>

### show\_rate() {#show_rate}

<div class="api-signature">

[`ProgressBar`](./ProgressBar.md)`&` **`show_rate`**(`bool` `on` `=` `true`)

</div>

show rate (unit/s)

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 90

</div>

### set\_progress() {#set_progress}

<div class="api-signature">

`void` **`set_progress`**(`double` `value`)

</div>

absolute progress, clamped to \[min, max\]

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 93

</div>

### tick() {#tick}

<div class="api-signature">

`void` **`tick`**(`double` `n` `=` `1.0`)

</div>

advance by n

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 94

</div>

### set\_total() {#set_total}

<div class="api-signature">

`void` **`set_total`**(`double` `max`)

</div>

change the total mid-run

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 95

</div>

### set\_postfix() {#set_postfix}

<div class="api-signature">

`void` **`set_postfix`**(`std::string_view` `text`)

</div>

update the postfix mid-run

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 96

</div>

### mark\_completed() {#mark_completed}

<div class="api-signature">

`void` **`mark_completed`**()

</div>

jump to 100%

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 97

</div>

### done() {#done}

<div class="api-signature">

`void` **`done`**()

</div>

finalize (leave the line, or erase if transient)

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 98

</div>

### value() {#value}

<div class="api-signature">

`double` **`value`**() `const`

</div>

current progress value

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 100

</div>

### total\_value() {#total_value}

<div class="api-signature">

`double` **`total_value`**() `const`

</div>

the configured total

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 101

</div>

### completed() {#completed}

<div class="api-signature">

`bool` **`completed`**() `const`

</div>

whether the bar finished (done / mark\_completed)

<div class="api-declared">

Declared in `ClikaRT/progress/progress.h`, line 102

</div>
