From: Vadim Zeitlin Date: Sat, 29 Jan 2000 02:38:19 +0000 (+0000) Subject: 1. small changes to wxProgressDialog to make it more user-friendly X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/1b6452dfc41c07ddfcb851b01dc6537edc238ce0 1. small changes to wxProgressDialog to make it more user-friendly 2. attempt to correct the disappearing focus problem git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index 473e9db487..34890e763c 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -64,12 +64,12 @@ static void SetTimeLabel(unsigned long val, wxStaticText *label); // event tables // ---------------------------------------------------------------------------- - BEGIN_EVENT_TABLE(wxProgressDialog, wxDialog) - EVT_BUTTON(wxID_CANCEL, wxProgressDialog::OnCancel) - EVT_CLOSE(wxProgressDialog::OnClose) - END_EVENT_TABLE() +BEGIN_EVENT_TABLE(wxProgressDialog, wxDialog) + EVT_BUTTON(wxID_CANCEL, wxProgressDialog::OnCancel) + EVT_CLOSE(wxProgressDialog::OnClose) +END_EVENT_TABLE() - IMPLEMENT_CLASS(wxProgressDialog, wxDialog) +IMPLEMENT_CLASS(wxProgressDialog, wxDialog) // ============================================================================ // implementation @@ -148,21 +148,21 @@ wxProgressDialog::wxProgressDialog(wxString const &title, { nTimeLabels++; - m_elapsed = CreateLabel(wxT("Elapsed time : "), &lastWindow); + m_elapsed = CreateLabel(_("Elapsed time : "), &lastWindow); } if ( style & wxPD_ESTIMATED_TIME ) { nTimeLabels++; - m_estimated = CreateLabel(wxT("Estimated time : "), &lastWindow); + m_estimated = CreateLabel(_("Estimated time : "), &lastWindow); } if ( style & wxPD_REMAINING_TIME ) { nTimeLabels++; - m_remaining = CreateLabel(wxT("Remaining time : "), &lastWindow); + m_remaining = CreateLabel(_("Remaining time : "), &lastWindow); } if ( nTimeLabels > 0 ) @@ -209,7 +209,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title, Centre(wxCENTER_FRAME | wxBOTH); - if (m_disableParentOnly ) + if ( m_disableParentOnly ) { if ( m_parent ) m_parent->Enable(FALSE); @@ -224,9 +224,10 @@ wxProgressDialog::wxProgressDialog(wxString const &title, // Update the display (especially on X, GTK) wxYield(); - #ifdef __WXMAC__ - MacUpdateImmediately() ; - #endif + +#ifdef __WXMAC__ + MacUpdateImmediately(); +#endif } wxStaticText *wxProgressDialog::CreateLabel(const wxString& text, @@ -234,7 +235,7 @@ wxStaticText *wxProgressDialog::CreateLabel(const wxString& text, { wxLayoutConstraints *c; - wxStaticText *label = new wxStaticText(this, -1, wxT("unknown")); + wxStaticText *label = new wxStaticText(this, -1, _("unknown")); c = new wxLayoutConstraints; // VZ: I like the labels be centered - if the others don't mind, you may @@ -313,9 +314,10 @@ wxProgressDialog::Update(int value, const wxString& newmsg) // update the display wxYield(); } - #ifdef __WXMAC__ - MacUpdateImmediately() ; - #endif + +#ifdef __WXMAC__ + MacUpdateImmediately(); +#endif return m_state != Canceled; } @@ -337,6 +339,10 @@ void wxProgressDialog::OnCancel(wxCommandEvent& event) // request to cancel was received, the next time Update() is called we // will handle it m_state = Canceled; + + // update the button state immediately so that the user knows that the + // request has been noticed + m_btnAbort->Disable(); } } diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp index 2820cfaa33..874fecd083 100644 --- a/src/msw/dialog.cpp +++ b/src/msw/dialog.cpp @@ -46,17 +46,17 @@ wxWindowList wxModalDialogs; wxWindowList wxModelessWindows; // Frames and modeless dialogs extern wxList WXDLLEXPORT wxPendingDelete; - IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) - - BEGIN_EVENT_TABLE(wxDialog, wxPanel) - EVT_SIZE(wxDialog::OnSize) - EVT_BUTTON(wxID_OK, wxDialog::OnOK) - EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) - EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) - EVT_CHAR_HOOK(wxDialog::OnCharHook) - EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) - EVT_CLOSE(wxDialog::OnCloseWindow) - END_EVENT_TABLE() +IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) + +BEGIN_EVENT_TABLE(wxDialog, wxPanel) + EVT_SIZE(wxDialog::OnSize) + EVT_BUTTON(wxID_OK, wxDialog::OnOK) + EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) + EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) + EVT_CHAR_HOOK(wxDialog::OnCharHook) + EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) + EVT_CLOSE(wxDialog::OnCloseWindow) +END_EVENT_TABLE() wxDialog::wxDialog() { @@ -171,6 +171,9 @@ wxDialog::~wxDialog() Show(FALSE); + // VZ: this is bogus and breaks focus handling - it won't be returned to the + // window which had it previosuly if we do this +#if 0 if (m_modalShowing) { // For some reason, wxWindows can activate another task altogether @@ -182,6 +185,7 @@ wxDialog::~wxDialog() if (GetParent() && GetParent()->GetHWND()) ::BringWindowToTop((HWND) GetParent()->GetHWND()); } +#endif // 0 m_modalShowing = FALSE;