# wxGauge

###
Module

wxGauge

###
Module Summary

Functions for wxGauge class

###
Description

A gauge is a horizontal or vertical bar which shows a quantity (often time).

wxGauge supports two working modes: determinate and indeterminate progress.

The first is the usual working mode (see setValue/2 and setRange/2) while the second can be used when the program is doing some processing but you don't know how much progress is being done. In this case, you can periodically call the pulse/1 function to make the progress bar switch to indeterminate mode (graphically it's usually a set of blocks which move or bounce in the bar control).

wxGauge supports dynamic switch between these two work modes.

There are no user commands for the gauge.

Styles

This class supports the following styles:

See: wxSlider, wxScrollBar

This class is derived (and can use functions) from: wxControl wxWindow wxEvtHandler

wxWidgets docs: wxGauge

###
Data Types

####
wxGauge() = wx:wx_object()

###
Exports

####
new() -> wxGauge()

Default constructor.

####
new(Parent, Id, Range) -> wxGauge()

### Types

Parent = wxWindow:wxWindow()
Id = Range = integer()

####
new(Parent, Id, Range, Options :: [Option]) -> wxGauge()

### Types

Parent = wxWindow:wxWindow()
Id = Range = integer()
Option =
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()} |
{validator, wx:wx_object()}

Constructor, creating and showing a gauge.

See: create/5

####
destroy(This :: wxGauge()) -> ok

Destructor, destroying the gauge.

####
create(This, Parent, Id, Range) -> boolean()

### Types

This = wxGauge()
Parent = wxWindow:wxWindow()
Id = Range = integer()

####
create(This, Parent, Id, Range, Options :: [Option]) -> boolean()

### Types

This = wxGauge()
Parent = wxWindow:wxWindow()
Id = Range = integer()
Option =
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()} |
{validator, wx:wx_object()}

Creates the gauge for two-step construction.

See new/4 for further details.

####
getRange(This) -> integer()

### Types

This = wxGauge()

Returns the maximum position of the gauge.

See: setRange/2

####
getValue(This) -> integer()

### Types

This = wxGauge()

Returns the current position of the gauge.

See: setValue/2

####
isVertical(This) -> boolean()

### Types

This = wxGauge()

Returns true if the gauge is vertical (has wxGA_VERTICAL style) and false otherwise.

####
setRange(This, Range) -> ok

### Types

This = wxGauge()
Range = integer()

Sets the range (maximum value) of the gauge.

This function makes the gauge switch to determinate mode, if it's not already.

When the gauge is in indeterminate mode, under wxMSW the gauge repeatedly goes from zero to range and back; under other ports when in indeterminate mode, the range setting is ignored.

See: getRange/1

####
setValue(This, Pos) -> ok

### Types

This = wxGauge()
Pos = integer()

Sets the position of the gauge.

The pos must be between 0 and the gauge range as returned by getRange/1, inclusive.

This function makes the gauge switch to determinate mode, if it was in indeterminate mode before.

See: getValue/1

####
pulse(This) -> ok

### Types

This = wxGauge()

Switch the gauge to indeterminate mode (if required) and makes the gauge move a bit to indicate the user that some progress has been made.

Note: After calling this function the value returned by getValue/1 is undefined and thus you need to explicitly call setValue/2 if you want to restore the determinate mode.