+bool wxGenericProgressDialog::Show( bool show )
+{
+ // reenable other windows before hiding this one because otherwise
+ // Windows wouldn't give the focus back to the window which had
+ // been previously focused because it would still be disabled
+ if(!show)
+ ReenableOtherWindows();
+
+ return wxDialog::Show(show);
+}
+
+int wxGenericProgressDialog::GetValue() const
+{
+ wxCHECK_MSG( m_gauge, -1, "dialog should be fully created" );
+
+ return m_gauge->GetValue();
+}
+
+int wxGenericProgressDialog::GetRange() const
+{
+ return m_maximum;
+}
+
+wxString wxGenericProgressDialog::GetMessage() const
+{
+ return m_msg->GetLabel();
+}
+
+void wxGenericProgressDialog::SetRange(int maximum)
+{
+ wxCHECK_RET( m_gauge, "dialog should be fully created" );
+
+ wxCHECK_RET( maximum > 0, "Invalid range" );
+
+ m_gauge->SetRange(maximum);
+
+ SetMaximum(maximum);
+}
+
+void wxGenericProgressDialog::SetMaximum(int 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;
+#endif // __WXMSW__
+}
+
+
+bool wxGenericProgressDialog::WasCancelled() const
+{
+ return HasPDFlag(wxPD_CAN_ABORT) && m_state == Canceled;
+}
+
+bool wxGenericProgressDialog::WasSkipped() const
+{
+ return HasPDFlag(wxPD_CAN_SKIP) && m_skip;
+}
+
+// static
+void wxGenericProgressDialog::SetTimeLabel(unsigned long val,
+ wxStaticText *label)
+{
+ if ( label )
+ {
+ wxString s;
+
+ if (val != (unsigned long)-1)
+ {
+ s = GetFormattedTime(val);
+ }
+ else
+ {
+ s = _("Unknown");
+ }
+
+ if ( s != label->GetLabel() )
+ label->SetLabel(s);
+ }