#ifndef __PROGDLGH_G__
#define __PROGDLGH_G__
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "progdlgg.h"
-#endif
-
#include "wx/defs.h"
+#include "wx/progdlg.h"
#if wxUSE_PROGRESSDLG
#include "wx/dialog.h"
-class WXDLLEXPORT wxButton;
-class WXDLLEXPORT wxGauge;
-class WXDLLEXPORT wxStaticText;
+class WXDLLIMPEXP_FWD_CORE wxButton;
+class WXDLLIMPEXP_FWD_CORE wxGauge;
+class WXDLLIMPEXP_FWD_CORE wxStaticText;
/* Progress dialog which shows a moving progress bar.
Taken from the Mahogany project.*/
/* Destructor.
Re-enables event handling for other windows.
*/
- ~wxProgressDialog();
+ virtual ~wxProgressDialog();
/* Update the status bar to the new value.
@param value new value
*/
virtual bool Update(int value, const wxString& newmsg = wxEmptyString, bool *skip = NULL);
+ /* Switches the dialog to use a gauge in indeterminate mode and calls
+ wxGauge::Pulse() to show to the user a bit of progress */
+ virtual bool Pulse(const wxString& newmsg = wxEmptyString, bool *skip = NULL);
+
+ // Must provide overload to avoid hiding it (and warnings about it)
+ virtual void Update() { wxDialog::Update(); }
+
/* Can be called to continue after the cancel button has been pressed, but
the program decided to continue the operation (e.g., user didn't
confirm it)
// as the next windows in the sizer, returns the created control
wxStaticText *CreateLabel(const wxString& text, wxSizer *sizer);
+ // updates the label message
+ void UpdateMessage(const wxString &newmsg);
+
+ // common part of Update() and Pulse(), returns true if not cancelled
+ bool DoAfterUpdate(bool *skip);
+
+ // shortcuts for enabling buttons
+ void EnableClose();
+ void EnableSkip(bool enable=true);
+ void EnableAbort(bool enable=true);
+ inline void DisableSkip() { EnableSkip(false); }
+ inline void DisableAbort() { EnableAbort(false); }
+
// the status bar
wxGauge *m_gauge;
// the message displayed
// parent top level window (may be NULL)
wxWindow *m_parentTop;
- // continue processing or not (return value for Update())
- enum
- {
- Uncancelable = -1, // dialog can't be canceled
- Canceled, // can be cancelled and, in fact, was
- Continue, // can be cancelled but wasn't
- Finished // finished, waiting to be removed from screen
- } m_state;
+ // continue processing or not (return value for Update())
+ enum
+ {
+ Uncancelable = -1, // dialog can't be canceled
+ Canceled, // can be cancelled and, in fact, was
+ Continue, // can be cancelled but wasn't
+ Finished // finished, waiting to be removed from screen
+ } m_state;
- // skip some portion
- bool m_skip;
+ // skip some portion
+ bool m_skip;
#if !defined(__SMARTPHONE__)
- // the abort and skip buttons (or NULL if none)
- wxButton *m_btnAbort;
- wxButton *m_btnSkip;
+ // the abort and skip buttons (or NULL if none)
+ wxButton *m_btnAbort;
+ wxButton *m_btnSkip;
#endif
- // the maximum value
- int m_maximum;
+ // the maximum value
+ int m_maximum;
+
+ // saves the time when elapsed time was updated so there is only one
+ // update per second
+ unsigned long m_last_timeupdate;
+ // tells how often a change of the estimated time has to be confirmed
+ // before it is actually displayed - this reduces the frequence of updates
+ // of estimated and remaining time
+ const int m_delay;
+ // counts the confirmations
+ int m_ctdelay;
+ unsigned long m_display_estimated;
- // saves the time when elapsed time was updated so there is only one
- // update per second
- unsigned long m_last_timeupdate;
- // tells how often a change of the estimated time has to be confirmed
- // before it is actually displayed - this reduces the frequence of updates
- // of estimated and remaining time
- const int m_delay;
- // counts the confirmations
- int m_ctdelay;
- unsigned long m_display_estimated;
+ bool m_hasAbortButton,
+ m_hasSkipButton;
#if defined(__WXMSW__ ) || defined(__WXPM__)
- // the factor we use to always keep the value in 16 bit range as the native
- // control only supports ranges from 0 to 65,535
- size_t m_factor;
+ // the factor we use to always keep the value in 16 bit range as the native
+ // control only supports ranges from 0 to 65,535
+ size_t m_factor;
#endif // __WXMSW__
- // for wxPD_APP_MODAL case
- class WXDLLEXPORT wxWindowDisabler *m_winDisabler;
-
- DECLARE_EVENT_TABLE()
-private:
- // Virtual function hiding supression
- virtual void Update() { wxDialog::Update(); }
+ // for wxPD_APP_MODAL case
+ class WXDLLIMPEXP_FWD_CORE wxWindowDisabler *m_winDisabler;
+ DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxProgressDialog)
};