X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/70f3fad6095afa8cfc1eed7a89f884a963250346..b916f809336755620b010293637b12763f01455d:/src/generic/progdlgg.cpp?ds=sidebyside diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index 4fc3c97542..33a8d648fc 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -89,11 +89,14 @@ 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; -#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 +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 ) @@ -329,7 +341,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);