X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ff095200f79b459f1159f59d031b1c50c0b3194b..245f35816d761212279e8cf223475efb7a367553:/src/generic/progdlgg.cpp diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index ee3323037a..4bdb7c3fea 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -6,7 +6,7 @@ // Created: 09.05.1999 // RCS-ID: $Id$ // Copyright: (c) Karsten Ballüder -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -269,11 +269,6 @@ wxProgressDialog::wxProgressDialog(wxString const &title, // Update the display (especially on X, GTK) wxYield(); - // FIXME: shouldn't be needed -#ifdef __WXX11__ - wxYield(); -#endif - #ifdef __WXMAC__ MacUpdateImmediately(); #endif @@ -327,7 +322,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg) wxASSERT_MSG( value <= m_maximum, wxT("invalid progress value") ); - if ( m_gauge ) + if ( m_gauge && value < m_maximum ) { m_gauge->SetValue(value + 1); } @@ -337,17 +332,12 @@ wxProgressDialog::Update(int value, const wxString& newmsg) m_msg->SetLabel(newmsg); wxYield(); - - // FIXME: shouldn't be needed -#ifdef __WXX11__ - wxYield(); -#endif } if ( (m_elapsed || m_remaining || m_estimated) && (value != 0) ) { unsigned long elapsed = wxGetCurrentTime() - m_timeStart; - unsigned long estimated = elapsed * m_maximum / value; + unsigned long estimated = (unsigned long)(( (double) elapsed * m_maximum ) / ((double)value)) ; unsigned long remaining = estimated - elapsed; SetTimeLabel(elapsed, m_elapsed); @@ -382,11 +372,6 @@ wxProgressDialog::Update(int value, const wxString& newmsg) wxYield(); - // FIXME: shouldn't be needed -#ifdef __WXX11__ - wxYield(); -#endif - (void)ShowModal(); } else // auto hide @@ -403,11 +388,6 @@ wxProgressDialog::Update(int value, const wxString& newmsg) { // update the display wxYield(); - - // FIXME: shouldn't be needed -#ifdef __WXX11__ - wxYield(); -#endif } #ifdef __WXMAC__ @@ -426,6 +406,17 @@ void wxProgressDialog::Resume() m_btnAbort->Enable(); } +bool wxProgressDialog::Show( bool show ) +{ + // reenable other windows before hiding this one because otherwise + // Windows wouldn't give the focus back to the window which had + // been previously focused because it would still be disabled + if(!show) + ReenableOtherWindows(); + + return wxDialog::Show(show); +} + // ---------------------------------------------------------------------------- // event handlers // ----------------------------------------------------------------------------