X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cff7ef893d9ddea0c90abd6d4b9281be3d809370..b916f809336755620b010293637b12763f01455d:/src/generic/progdlgg.cpp?ds=sidebyside diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index 12a2aa1797..33a8d648fc 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -89,6 +89,9 @@ wxProgressDialog::wxProgressDialog(wxString const &title, int style) : wxDialog(parent, -1, title) { + // we may disappear at any moment, let the others know about it + SetExtraStyle(GetExtraStyle() | wxWS_EX_TRANSIENT); + m_windowStyle |= style; bool hasAbortButton = (style & wxPD_CAN_ABORT) != 0; @@ -128,7 +131,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,11 +164,17 @@ 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); } @@ -172,6 +182,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, { nTimeLabels++; + label = m_estimated = CreateLabel(_("Estimated time : "), &lastWindow); } @@ -179,6 +190,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, { nTimeLabels++; + label = m_remaining = CreateLabel(_("Remaining time : "), &lastWindow); } @@ -186,7 +198,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 )