+ // Initialize all our members that we always use (even when we don't
+ // create a valid window in this class).
+
+ m_pdStyle = style;
+
+ m_parentTop = wxGetTopLevelParent(parent);
+
+ m_gauge = NULL;
+ m_msg = NULL;
+ m_elapsed =
+ m_estimated =
+ m_remaining = NULL;
+
+ m_state = Uncancelable;
+ m_maximum = 0;
+
+ m_timeStart = wxGetCurrentTime();
+ m_timeStop = (unsigned long)-1;
+ m_break = 0;
+
+ m_skip = false;
+
+#if !defined(__SMARTPHONE__)
+ m_btnAbort =
+ m_btnSkip = NULL;
+#endif
+
+ m_display_estimated =
+ m_last_timeupdate =
+ m_ctdelay = 0;
+
+ m_delay = 3;
+
+ m_winDisabler = NULL;
+ m_tempEventLoop = NULL;
+}
+
+wxGenericProgressDialog::wxGenericProgressDialog(wxWindow *parent, int style)
+ : wxDialog()
+{
+ Init(parent, style);
+}
+
+wxGenericProgressDialog::wxGenericProgressDialog(const wxString& title,
+ const wxString& message,
+ int maximum,
+ wxWindow *parent,
+ int style)
+ : wxDialog()
+{
+ Init(parent, style);
+
+ Create( title, message, maximum, parent, style );
+}
+
+void wxGenericProgressDialog::Create( const wxString& title,
+ const wxString& message,
+ int maximum,
+ wxWindow *parent,
+ int style )
+{
+ wxDialog::Create(GetParentForModalDialog(parent, style), wxID_ANY, title);
+
+ SetParent( GetParentForModalDialog(parent, style) );
+ SetTitle( title );
+
+ SetMaximum(maximum);
+
+ // We need a running event loop in order to update the dialog and be able
+ // to process clicks on its buttons, so ensure that there is one running
+ // even if this means we have to start it ourselves (this happens most
+ // commonly during the program initialization, e.g. for the progress
+ // dialogs shown from overridden wxApp::OnInit()).
+ if ( !wxEventLoopBase::GetActive() )
+ {
+ m_tempEventLoop = new wxEventLoop;
+ wxEventLoop::SetActive(m_tempEventLoop);
+ }