]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/progdlgg.cpp
Ensure there is valid context for DrawRectangle
[wxWidgets.git] / src / generic / progdlgg.cpp
index dcecbc62e8e92ad893e9a6336cc7aa3be85195af..7f48ba31f331e4748683bf4f9c8f07800de91f1f 100644 (file)
@@ -87,7 +87,7 @@ wxIMPLEMENT_CLASS(wxProgressDialog, wxDialog)
 // wxGenericProgressDialog creation
 // ----------------------------------------------------------------------------
 
-void wxGenericProgressDialog::Init(wxWindow *parent, int style)
+void wxGenericProgressDialog::Init()
 {
     // we may disappear at any moment, let the others know about it
     SetExtraStyle(GetExtraStyle() | wxWS_EX_TRANSIENT);
@@ -95,9 +95,8 @@ void wxGenericProgressDialog::Init(wxWindow *parent, int style)
     // 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_pdStyle = 0;
+    m_parentTop = NULL;
 
     m_gauge = NULL;
     m_msg = NULL;
@@ -129,10 +128,10 @@ void wxGenericProgressDialog::Init(wxWindow *parent, int style)
     m_tempEventLoop = NULL;
 }
 
-wxGenericProgressDialog::wxGenericProgressDialog(wxWindow *parent, int style)
+wxGenericProgressDialog::wxGenericProgressDialog()
                        : wxDialog()
 {
-    Init(parent, style);
+    Init();
 }
 
 wxGenericProgressDialog::wxGenericProgressDialog(const wxString& title,
@@ -142,21 +141,32 @@ wxGenericProgressDialog::wxGenericProgressDialog(const wxString& title,
                                                  int style)
                        : wxDialog()
 {
-    Init(parent, style);
+    Init();
 
     Create( title, message, maximum, parent, style );
 }
 
-void wxGenericProgressDialog::Create( const wxString& title,
+void wxGenericProgressDialog::SetTopParent(wxWindow* parent)
+{
+    m_parentTop = GetParentForModalDialog(parent, GetWindowStyle());
+}
+
+bool wxGenericProgressDialog::Create( const wxString& title,
                                       const wxString& message,
                                       int maximum,
                                       wxWindow *parent,
                                       int style )
 {
-    wxDialog::Create(GetParentForModalDialog(parent, style), wxID_ANY, title);
+    SetTopParent(parent);
 
-    SetParent( GetParentForModalDialog(parent, style) );
-    SetTitle( title );
+    m_parentTop = wxGetTopLevelParent(parent);
+    m_pdStyle = style;
+
+    wxWindow* const
+        realParent = GetParentForModalDialog(parent, GetWindowStyle());
+
+    if (!wxDialog::Create(realParent, wxID_ANY, title))
+        return false;
 
     SetMaximum(maximum);
 
@@ -261,7 +271,7 @@ void wxGenericProgressDialog::Create( const wxString& title,
 
     // Windows dialogs usually have buttons in the lower right corner
     const int sizerFlags =
-#if defined(__WXMSW__) || defined(__WXPM__)
+#if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXOSX__)
                            wxALIGN_RIGHT | wxALL
 #else // !MSW
                            wxALIGN_CENTER_HORIZONTAL | wxBOTTOM | wxTOP
@@ -306,6 +316,7 @@ void wxGenericProgressDialog::Create( const wxString& title,
     }
 
     Update();
+    return true;
 }
 
 void wxGenericProgressDialog::UpdateTimeEstimates(int value,