wxWidgets/interface/wx/appprogress.h
Vadim Zeitlin 28516f5643 Make wxAppProgressIndicator actually usable.
First of all, do define it under non-MSW platforms.

Second, don't crash in it when running under XP where wxTaskBarButton is not
available.

Also add IsAvailable() method to check for its availability explicitly and add
a demonstration of this class to the dialogs sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-14 23:58:26 +00:00

73 lines
2.1 KiB
Objective-C

/////////////////////////////////////////////////////////////////////////////
// Name: interface/wx/appprogress.h
// Purpose: interface of wxAppProgressIndicator
// Author: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@class wxAppProgressIndicator
A helper class that can be used to update the progress bar in the taskbar button.
@library{wxcore}
@category{misc}
@onlyfor{wxmsw}
@see wxTaskBarButton
@since 3.1.0
*/
class WXDLLIMPEXP_CORE wxAppProgressIndicator
{
public:
/**
Constructs the wxAppProgressIndicator.
@param parent
The parent window of wxAppProgressIndicator. Note that the
window should has taskbar button showing. If parent is NULL,
the progress will reflect on the taskbar buttons of all the
top level windows.
@param maxValue
Integer range (maximum value) of the progress indicator.
*/
wxAppProgressIndicator(wxWindow* parent = NULL, int maxValue = 100);
/**
Destructor, stops displaying progress and returns the indicator to its
normal state.
*/
virtual ~wxAppProgressIndicator();
/**
Check if the application progress display is available.
Currently this only returns @true when using wxMSW and running under
Vista or later system, which provide task bar button API.
If this method returns @false, no other methods of this class do
anything, but they may still be called without any ill effects.
*/
bool IsAvailable() const;
/**
Set the progress value in taskbar button of parent window.
@param value
The new value of the progress meter. It should be less than or equal
to the range.
*/
void SetValue(int value);
/**
Set the progress range in taskbar button of parent window.
*/
void SetRange(int range);
/**
Makes the progress bar run in indeterminate mode.
*/
bool Pulse();
};