]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/progdlgg.cpp
check for m_parentMenu being NULL in IsChecked/Checked/Enable() too (closes #10460)
[wxWidgets.git] / src / generic / progdlgg.cpp
index 6f4fec1fe830278a6ea82043fe72ccfb1e8a40ea..2f77e37bf08978e656160e3db1156310909c2930 100644 (file)
@@ -148,7 +148,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;
@@ -182,9 +181,6 @@ wxProgressDialog::wxProgressDialog(const wxString& title,
     m_break = 0;
     m_ctdelay = 0;
 
-    // if we are going to have at least one label, remember it in this var
-    wxStaticText *label = NULL;
-
     // also count how many labels we really have
     size_t nTimeLabels = 0;
 
@@ -194,7 +190,6 @@ wxProgressDialog::wxProgressDialog(const wxString& title,
     {
         nTimeLabels++;
 
-        label =
         m_elapsed = CreateLabel(_("Elapsed time:"), sizerLabels);
     }
 
@@ -202,7 +197,6 @@ wxProgressDialog::wxProgressDialog(const wxString& title,
     {
         nTimeLabels++;
 
-        label =
         m_estimated = CreateLabel(_("Estimated time:"), sizerLabels);
     }
 
@@ -210,7 +204,6 @@ wxProgressDialog::wxProgressDialog(const wxString& title,
     {
         nTimeLabels++;
 
-        label =
         m_remaining = CreateLabel(_("Remaining time:"), sizerLabels);
     }
     sizerTop->Add(sizerLabels, 0, wxALIGN_CENTER_HORIZONTAL | wxTOP, LAYOUT_MARGIN);
@@ -394,7 +387,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();
@@ -408,7 +401,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg, bool *skip)
                 m_msg->SetLabel(_("Done."));
             }
 
-            wxYieldIfNeeded() ;
+            wxYieldIfNeeded();
 
             (void)ShowModal();
         }
@@ -494,6 +487,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
 // ----------------------------------------------------------------------------
@@ -563,10 +575,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
     {
@@ -587,10 +599,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
         {
@@ -656,6 +668,8 @@ void wxProgressDialog::UpdateMessage(const wxString &newmsg)
     {
         m_msg->SetLabel(newmsg);
 
+        Fit();   // adapt to the new label size
+
         wxYieldIfNeeded() ;
     }
 }