]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/progdlgg.cpp
64 bit clean printing
[wxWidgets.git] / src / generic / progdlgg.cpp
index ec7f57c95133ee0f03cdefd27483915cb3f98b70..e1b79f34a0c9f1eb87c3ee05f3a7b0f537e70e0e 100644 (file)
@@ -97,7 +97,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
                                    int maximum,
                                    wxWindow *parent,
                                    int style)
                                    int maximum,
                                    wxWindow *parent,
                                    int style)
-                : wxDialog(parent, wxID_ANY, title),
+                : wxDialog(GetParentForModalDialog(parent), wxID_ANY, title),
                   m_skip(false),
                   m_delay(3),
                   m_hasAbortButton(false),
                   m_skip(false),
                   m_delay(3),
                   m_hasAbortButton(false),
@@ -141,7 +141,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
 
     wxClientDC dc(this);
     dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
 
     wxClientDC dc(this);
     dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
-    long widthText = 0;
+    wxCoord widthText = 0;
     dc.GetTextExtent(message, &widthText, NULL, NULL, NULL, NULL);
 
     wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
     dc.GetTextExtent(message, &widthText, NULL, NULL, NULL, NULL);
 
     wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
@@ -176,7 +176,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
     m_display_estimated = m_last_timeupdate = m_break = 0;
     m_ctdelay = 0;
 
     m_display_estimated = m_last_timeupdate = m_break = 0;
     m_ctdelay = 0;
 
-    // if we are going to have at least one label, remmeber it in this var
+    // if we are going to have at least one label, remember it in this var
     wxStaticText *label = NULL;
 
     // also count how many labels we really have
     wxStaticText *label = NULL;
 
     // also count how many labels we really have
@@ -261,9 +261,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
         sizeDlg.y += 2*LAYOUT_MARGIN;
 
         // try to make the dialog not square but rectangular of reasonable width
         sizeDlg.y += 2*LAYOUT_MARGIN;
 
         // try to make the dialog not square but rectangular of reasonable width
-        sizeDlg.x = (wxCoord)wxMax(widthText*2, 4*sizeDlg.y/3);
-        sizeDlg.x *= 3;
-        sizeDlg.x /= 2;
+        sizeDlg.x = (wxCoord)wxMax(3*widthText/2, 4*sizeDlg.y/3);
         SetClientSize(sizeDlg);
     }
 
         SetClientSize(sizeDlg);
     }
 
@@ -338,12 +336,8 @@ wxProgressDialog::Update(int value, const wxString& newmsg, bool *skip)
 
     wxASSERT_MSG( value <= m_maximum, wxT("invalid progress value") );
 
 
     wxASSERT_MSG( value <= m_maximum, wxT("invalid progress value") );
 
-    // fill up the gauge if value == maximum because this means that the dialog
-    // is going to close and the gauge shouldn't be partly empty in this case
-    if ( m_gauge && value <= m_maximum )
-    {
-        m_gauge->SetValue(value == m_maximum ? value : value + 1);
-    }
+    if ( m_gauge )
+        m_gauge->SetValue(value);
 
     UpdateMessage(newmsg);
 
 
     UpdateMessage(newmsg);