X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/638bc56cf906321b2e15b67dc7ea4513895135ed..8fbdfa4faf61ecc4177d9952d3f3718cf4514ae6:/src/generic/progdlgg.cpp?ds=inline diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index da963d14fd..94109c5660 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -93,7 +93,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, bool hasAbortButton = (style & wxPD_CAN_ABORT) != 0; -#ifdef __WXMSW__ +#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) // we have to remove the "Close" button from the title bar then as it is // confusing to have it - it doesn't work anyhow // @@ -128,7 +128,8 @@ wxProgressDialog::wxProgressDialog(wxString const &title, c->height.AsIs(); m_msg->SetConstraints(c); - wxSize sizeDlg, sizeLabel = m_msg->GetSize(); + wxSize sizeDlg, + sizeLabel = m_msg->GetSize(); sizeDlg.y = 2*LAYOUT_Y_MARGIN + sizeLabel.y; wxWindow *lastWindow = m_msg; @@ -160,19 +161,25 @@ wxProgressDialog::wxProgressDialog(wxString const &title, // create the estimated/remaining/total time zones if requested m_elapsed = m_estimated = m_remaining = (wxStaticText*)NULL; - int nTimeLabels = 0; + // if we are going to have at least one label, remmeber it in this var + wxStaticText *label = NULL; + + // also count how many labels we really have + size_t nTimeLabels = 0; + if ( style & wxPD_ELAPSED_TIME ) { nTimeLabels++; + label = m_elapsed = CreateLabel(_("Elapsed time : "), &lastWindow); - SetTimeLabel(0, m_elapsed); } if ( style & wxPD_ESTIMATED_TIME ) { nTimeLabels++; + label = m_estimated = CreateLabel(_("Estimated time : "), &lastWindow); } @@ -180,6 +187,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, { nTimeLabels++; + label = m_remaining = CreateLabel(_("Remaining time : "), &lastWindow); } @@ -187,7 +195,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, { // set it to the current time m_timeStart = wxGetCurrentTime(); - sizeDlg.y += nTimeLabels * (sizeLabel.y + LAYOUT_Y_MARGIN); + sizeDlg.y += nTimeLabels * (label->GetSize().y + LAYOUT_Y_MARGIN); } if ( hasAbortButton ) @@ -241,6 +249,14 @@ wxProgressDialog::wxProgressDialog(wxString const &title, Show(TRUE); Enable(TRUE); // enable this window + // this one can be initialized even if the others are unknown for now + // + // NB: do it after calling Layout() to keep the labels correctly aligned + if ( m_elapsed ) + { + SetTimeLabel(0, m_elapsed); + } + // Update the display (especially on X, GTK) wxYield(); @@ -322,7 +338,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg) // tell the user what he should do... m_btnAbort->SetLabel(_("Close")); } -#ifdef __WXMSW__ +#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) else // enable the close button to give the user a way to close the dlg { EnableCloseButton(TRUE);