]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/progdlgg.cpp
remove incorrect cast of wxString to char* (unnecessary and breaks wxUSE_STL build)
[wxWidgets.git] / src / generic / progdlgg.cpp
index 25a42355ae779be7ce2db4b41e097af304ee5b7a..d05fdad6b1c1b12b50ff3a8ca3020d4bdcc5059c 100644 (file)
@@ -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);
     }
 }