X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e54266add728b5cf83a4d1b2136ecfca55fdc146..79cb759dc8580da2e82e880cd94a08cd38bb814e:/src/generic/progdlgg.cpp diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index 25a42355ae..d05fdad6b1 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -38,6 +38,7 @@ #include "wx/dcclient.h" #include "wx/timer.h" #include "wx/settings.h" + #include "wx/app.h" #endif #include "wx/progdlg.h" @@ -148,7 +149,6 @@ wxProgressDialog::wxProgressDialog(const wxString& title, m_msg = new wxStaticText(this, wxID_ANY, message); sizerTop->Add(m_msg, 0, wxLEFT | wxTOP, 2*LAYOUT_MARGIN); - wxSize sizeLabel = m_msg->GetSize(); if ( maximum > 0 ) { int gauge_style = wxGA_HORIZONTAL; @@ -388,7 +388,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg, bool *skip) // so that we return true below and that out [Cancel] handler knew what // to do m_state = Finished; - if( !(GetWindowStyle() & wxPD_AUTO_HIDE) ) + if( !HasFlag(wxPD_AUTO_HIDE) ) { EnableClose(); DisableSkip(); @@ -402,7 +402,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg, bool *skip) m_msg->SetLabel(_("Done.")); } - wxYieldIfNeeded() ; + wxTheApp->YieldFor(wxEVT_CATEGORY_UI); (void)ShowModal(); } @@ -452,7 +452,7 @@ bool wxProgressDialog::DoAfterUpdate(bool *skip) { // we have to yield because not only we want to update the display but // also to process the clicks on the cancel and skip buttons - wxYieldIfNeeded(); + wxTheApp->YieldFor(wxEVT_CATEGORY_UI|wxEVT_CATEGORY_USER_INPUT); Update(); @@ -488,6 +488,25 @@ bool wxProgressDialog::Show( bool show ) return wxDialog::Show(show); } +int wxProgressDialog::GetValue() const +{ + if (m_gauge) + return m_gauge->GetValue(); + return wxNOT_FOUND; +} + +int wxProgressDialog::GetRange() const +{ + if (m_gauge) + return m_gauge->GetRange(); + return wxNOT_FOUND; +} + +wxString wxProgressDialog::GetMessage() const +{ + return m_msg->GetLabel(); +} + // ---------------------------------------------------------------------------- // event handlers // ---------------------------------------------------------------------------- @@ -557,10 +576,10 @@ wxProgressDialog::~wxProgressDialog() void wxProgressDialog::ReenableOtherWindows() { - if ( GetWindowStyle() & wxPD_APP_MODAL ) + if ( HasFlag(wxPD_APP_MODAL) ) { delete m_winDisabler; - m_winDisabler = (wxWindowDisabler *)NULL; + m_winDisabler = NULL; } else { @@ -581,10 +600,10 @@ static void SetTimeLabel(unsigned long val, wxStaticText *label) if (val != (unsigned long)-1) { - unsigned long hours = val / 3600; - unsigned long minutes = (val % 3600) / 60; - unsigned long seconds = val % 60; - s.Printf(wxT("%lu:%02lu:%02lu"), hours, minutes, seconds); + unsigned long hours = val / 3600; + unsigned long minutes = (val % 3600) / 60; + unsigned long seconds = val % 60; + s.Printf(wxT("%lu:%02lu:%02lu"), hours, minutes, seconds); } else { @@ -650,7 +669,9 @@ void wxProgressDialog::UpdateMessage(const wxString &newmsg) { m_msg->SetLabel(newmsg); - wxYieldIfNeeded() ; + Fit(); // adapt to the new label size + + wxTheApp->YieldFor(wxEVT_CATEGORY_UI); } }