X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/db1a42b8742c373d30118c3365dacee071eebe1c..7948c0c24401c496c04da3c28f1f1f2f282ba327:/src/generic/progdlgg.cpp diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index c6ca37e085..ee3323037a 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -108,7 +108,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, m_state = hasAbortButton ? Continue : Uncancelable; m_maximum = maximum; -#ifdef __WXMSW__ +#if defined(__WXMSW__) || defined(__WXPM__) // we can't have values > 65,536 in the progress control under Windows, so // scale everything down m_factor = m_maximum / 65536 + 1; @@ -212,7 +212,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, c = new wxLayoutConstraints; // Windows dialogs usually have buttons in the lower right corner -#ifdef __WXMSW__ +#if defined(__WXMSW__) || defined(__WXPM__) c->right.SameAs(this, wxRight, 2*LAYOUT_X_MARGIN); #else // !MSW c->centreX.SameAs(this, wxCentreX); @@ -268,7 +268,11 @@ 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(); @@ -285,7 +289,7 @@ wxStaticText *wxProgressDialog::CreateLabel(const wxString& text, // VZ: I like the labels be centered - if the others don't mind, you may // remove "#ifdef __WXMSW__" and use it for all ports -#ifdef __WXMSW__ +#if defined(__WXMSW__) || defined(__WXPM__) c->left.SameAs(this, wxCentreX, LAYOUT_X_MARGIN); #else // !MSW c->right.SameAs(this, wxRight, 2*LAYOUT_X_MARGIN); @@ -333,7 +337,11 @@ 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) ) @@ -347,7 +355,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg) SetTimeLabel(remaining, m_remaining); } - if ( (value == m_maximum ) ) + if ( value == m_maximum ) { // so that we return TRUE below and that out [Cancel] handler knew what // to do @@ -360,7 +368,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg) m_btnAbort->SetLabel(_("Close")); } #if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - else // enable the close button to give the user a way to close the dlg + else // enable the button to give the user a way to close the dlg { EnableCloseButton(TRUE); } @@ -373,21 +381,33 @@ wxProgressDialog::Update(int value, const wxString& newmsg) } wxYield(); + + // FIXME: shouldn't be needed +#ifdef __WXX11__ wxYield(); +#endif (void)ShowModal(); } - else + else // auto hide { - Hide(); + // 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 ReenableOtherWindows(); + + Hide(); } } else { // update the display wxYield(); + + // FIXME: shouldn't be needed +#ifdef __WXX11__ wxYield(); +#endif } #ifdef __WXMAC__