|
| ProgressMeter () |
| Makes a null progress meter, i.e. More...
|
|
| ProgressMeter (Double min, Double max, const String &title, const String &subtitle, const String &minlabel, const String &maxlabel, Bool estimateTime=True, Int updateEvery=1) |
| Create a progress meter with the given min and max values and labels. More...
|
|
| ProgressMeter (Double min, Double max, const String &title) |
|
| ~ProgressMeter () |
| The destruction of the meter will cause an update to be sent with the maximum value. More...
|
|
void | update (Double value, Bool force=False) |
|
void | _update (Double value, Bool force=False) |
|
void | busy () |
|
void | done () |
|
Double | min () const |
| Display the min and max values of the progress meter. More...
|
|
Double | max () const |
|
Visual indication of a tasks progress.
Intended use:
Public interface
Review Status
- Date Reviewed:
- yyyy/mm/dd
Synopsis
This class is used to provide a visual indication to the user of the progress of his task. If the process is not connected to the DO system, calls to the progress meter are NO-OP's, so you can safely use this class in general library code and it won't cause problems for processes which are not attached to the distributed object system. It also won't cause any extra stuff to be linked in to your executable in this case.
The progress meter will usually be removed from the screen once the maximum value is set, so you should not reuse the ProgressMeter after that has happened. It is harmless, but it will not result in any visual feedback for the user.
While the "min" is usually less than "max", if in fact it is greater than "max" the progress meter will count down correctly.
Example
Int skip = n / 200;
ProgressMeter meter(0, n,
"Title",
"Subtitle",
"",
"", True, skip);
for (
uInt i=0; i<n; i++) {
... calculate..\.
meter.update(i);
}
}
Motivation
Give the user visual indication of a long-running tasks progress.
To Do
-
When the upper bound isn't known, it might be useful to have a busy bar that just moves back and forth to show that activity is happening.
-
We should probably have some way to suppress progress bars for tasks that are only going to take a few seconds.
Definition at line 91 of file ProgressMeter.h.
Create a progress meter with the given min and max values and labels.
if estimateTime
is True
, an estimate of the time remaining will be made for the user. This estimate assumes that the remaining portion will compute at the same rate as the portion completed so far, so the time should not be estimated for processes which are non-linear.
Any labels which are set to the empty string will have sensible defaults supplied. In particular, minlabel
and maxlabel
will be set to the display the minimum and maximum values.
Normally the progress bar will be updated with every call to update()
. If however you will be sending many events then you might want to update the GUI every updateEvery
'th event for efficiency. Generally there's no point updating more than a couple of hundred times since the eye can't distinguish differences in the progress bar position at that level. If updateEvery is <=0, it is set to 1 for you.