Name

VMultiProgressMeter, HMultiProgressMeter — Progress bar with multiple segments (optional widget)

Synopsis

VMultiProgressMeter ( List<integer>  maxValues );
HMultiProgressMeter ( List<integer>  maxValues );

Parameters

List<integer> maxValues

maximum values

Properties

string Values

the current values for all segments

Description

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]Note

This is a "special" widget, i.e. not all UIs necessarily support it. Check for availability with HasSpecialWidget( `MultiProgressMeter ) before using it.

Usage

 	if ( HasSpecialWidget( `MultiProgressMeter ) {...
 	`MultiProgressMeter( "Percentage", 1, 100, 50 )
 

Examples

          // 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();
}