VMultiProgressMeter, HMultiProgressMeter — Progress bar with multiple segments (optional widget)
VMultiProgressMeter
( | List<integer> | maxValues
) ; |
HMultiProgressMeter
( | List<integer> | maxValues
) ; |
A vertical (VMultiProgressMeter) or horizontal (HMultiProgressMeter) progress display with multiple segments. The numbers passed on widget creation are the maximum numbers of each individual segment. Segments sizes will be displayed proportionally to these numbers.
This widget is intended for applications like showing the progress of installing from multiple CDs while giving the user a hint how much will be installed from each individual CD.
Set actual values later with UI::ChangeWidget(`id(...), `Values, [ 1, 2, ...] ); |
The widget may choose to reserve a minimum amount of space for each segment even if that means that some segments will be shown slightly out of proportion.
![]() | Note |
---|---|
This is a "special" widget, i.e. not all UIs necessarily support it. Check for availability with HasSpecialWidget( `MultiProgressMeter ) before using it. |
if ( HasSpecialWidget( `MultiProgressMeter ) {... `MultiProgressMeter( "Percentage", 1, 100, 50 ) |
// Simple example for MultiProgressMeter { if ( ! UI::HasSpecialWidget(`HMultiProgressMeter ) ) { UI::OpenDialog( `VBox( `Label("Error: This UI doesn't support the MultiProgressMeter widget!"), `PushButton(`opt(`default), "&OK") ) ); UI::UserInput(); UI::CloseDialog(); return; } UI::OpenDialog( `VBox( `HMultiProgressMeter(`id(`prog), [ 1000, 200, 500, 20, 100 ] ), `PushButton(`opt(`default), "&Ok" ) ) ); UI::ChangeWidget(`prog, `Values, [ 1000, 200, 500, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 800, 200, 500, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 500, 200, 500, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 200, 200, 500, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 0, 200, 500, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 0, 100, 500, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 0, 20, 500, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 0, 0, 500, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 0, 0, 400, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 0, 0, 300, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 0, 0, 200, 20, 100 ] ); UI::UserInput(); UI::ChangeWidget(`prog, `Values, [ 0, 0, 100, 20, 100 ] ); UI::UserInput(); } |