X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bbdb0e1313e5fe26df04bc14bae1a1c723332102..8b260fbe33b67311ab69043e8fb1bc4c4d7ac1f2:/src/generic/progdlgg.cpp?ds=sidebyside diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index d7ef8b88e6..812b9a7e8c 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -41,7 +41,7 @@ #include "wx/intl.h" #include "wx/settings.h" #include "wx/dcclient.h" -# include "wx/timer.h" + #include "wx/timer.h" #endif #include "wx/generic/progdlgg.h" @@ -64,14 +64,12 @@ static void SetTimeLabel(unsigned long val, wxStaticText *label); // event tables // ---------------------------------------------------------------------------- -#if !USE_SHARED_LIBRARY BEGIN_EVENT_TABLE(wxProgressDialog, wxDialog) EVT_BUTTON(wxID_CANCEL, wxProgressDialog::OnCancel) EVT_CLOSE(wxProgressDialog::OnClose) END_EVENT_TABLE() IMPLEMENT_CLASS(wxProgressDialog, wxDialog) -#endif // ============================================================================ // implementation @@ -100,7 +98,14 @@ wxProgressDialog::wxProgressDialog(wxString const &title, wxClientDC dc(this); dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); long widthText; - dc.GetTextExtent(message, &widthText, NULL); +#if defined(__VISAGECPP__) +// have two versions of this in wxWindowDC tp avoid function hiding +// since there are two of these in wxDCBase, and in turn in wxDC. +// VA cannot resolve this so: + dc.GetTextExtent(message, &widthText, NULL, NULL, NULL, NULL); +#else + dc.GetTextExtent(message, &widthText, (long*)NULL); +#endif m_msg = new wxStaticText(this, -1, message); c = new wxLayoutConstraints; @@ -136,28 +141,28 @@ wxProgressDialog::wxProgressDialog(wxString const &title, m_gauge = (wxGauge *)NULL; // create the estimated/remaining/total time zones if requested - m_elapsed = m_estimated = m_remaining = NULL; + m_elapsed = m_estimated = m_remaining = (wxStaticText*)NULL; int nTimeLabels = 0; if ( style & wxPD_ELAPSED_TIME ) { nTimeLabels++; - m_elapsed = CreateLabel(_T("Elapsed time : "), &lastWindow); + m_elapsed = CreateLabel(wxT("Elapsed time : "), &lastWindow); } if ( style & wxPD_ESTIMATED_TIME ) { nTimeLabels++; - m_estimated = CreateLabel(_T("Estimated time : "), &lastWindow); + m_estimated = CreateLabel(wxT("Estimated time : "), &lastWindow); } if ( style & wxPD_REMAINING_TIME ) { nTimeLabels++; - m_remaining = CreateLabel(_T("Remaining time : "), &lastWindow); + m_remaining = CreateLabel(wxT("Remaining time : "), &lastWindow); } if ( nTimeLabels > 0 ) @@ -217,6 +222,12 @@ wxProgressDialog::wxProgressDialog(wxString const &title, Show(TRUE); Enable(TRUE); // enable this window + + // Update the display (especially on X, GTK) + wxYield(); + #ifdef __WXMAC__ + MacUpdateImmediately() ; + #endif } wxStaticText *wxProgressDialog::CreateLabel(const wxString& text, @@ -224,7 +235,7 @@ wxStaticText *wxProgressDialog::CreateLabel(const wxString& text, { wxLayoutConstraints *c; - wxStaticText *label = new wxStaticText(this, -1, _T("unknown")); + wxStaticText *label = new wxStaticText(this, -1, wxT("unknown")); c = new wxLayoutConstraints; // VZ: I like the labels be centered - if the others don't mind, you may @@ -255,8 +266,8 @@ wxStaticText *wxProgressDialog::CreateLabel(const wxString& text, bool wxProgressDialog::Update(int value, const wxString& newmsg) { - wxASSERT_MSG( value == -1 || m_gauge, _T("cannot update non existent dialog") ); - wxASSERT_MSG( value <= m_maximum, _T("invalid progress value") ); + wxASSERT_MSG( value == -1 || m_gauge, wxT("cannot update non existent dialog") ); + wxASSERT_MSG( value <= m_maximum, wxT("invalid progress value") ); if( m_gauge ) @@ -303,6 +314,9 @@ wxProgressDialog::Update(int value, const wxString& newmsg) // update the display wxYield(); } + #ifdef __WXMAC__ + MacUpdateImmediately() ; + #endif return m_state != Canceled; } @@ -364,7 +378,7 @@ static void SetTimeLabel(unsigned long val, wxStaticText *label) unsigned long hours = val / 3600; unsigned long minutes = (val % 3600) / 60; unsigned long seconds = val % 60; - s.Printf(_T("%lu:%02lu:%02lu"), hours, minutes, seconds); + s.Printf(wxT("%lu:%02lu:%02lu"), hours, minutes, seconds); if ( s != label->GetLabel() ) label->SetLabel(s);