// should be no side-effects
wxEventLoopBase::GetActive()->YieldFor(wxEVT_CATEGORY_UI);
+ // NOTE: this call results in a new event loop being created
+ // and to a call to ProcessPendingEvents() (which may generate
+ // unwanted re-entrancies).
(void)ShowModal();
}
else // auto hide
return m_msg->GetLabel();
}
+void wxProgressDialog::SetRange(int maximum)
+{
+ wxASSERT_MSG(m_gauge, "The dialog should have been constructed with a range > 0");
+ wxASSERT_MSG(maximum > 0, "Invalid range");
+
+ m_gauge->SetRange(maximum);
+ m_maximum = maximum;
+
+#if defined(__WXMSW__) || defined(__WXPM__)
+ // we can't have values > 65,536 in the progress control under Windows, so
+ // scale everything down
+ m_factor = m_maximum / 65536 + 1;
+ m_maximum /= m_factor;
+#endif // __WXMSW__
+}
+
// ----------------------------------------------------------------------------
// event handlers
// ----------------------------------------------------------------------------
{
m_msg->SetLabel(newmsg);
- Fit(); // adapt to the new label size
-
// allow the window to repaint:
// NOTE: since we yield only for UI events with this call, there
// should be no side-effects