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
This commit is contained in:
Vadim Zeitlin
2000-01-29 02:38:19 +00:00
parent 3fd99dfceb
commit 1b6452dfc4
2 changed files with 36 additions and 26 deletions

View File

@@ -64,12 +64,12 @@ static void SetTimeLabel(unsigned long val, wxStaticText *label);
// event tables // event tables
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(wxProgressDialog, wxDialog) BEGIN_EVENT_TABLE(wxProgressDialog, wxDialog)
EVT_BUTTON(wxID_CANCEL, wxProgressDialog::OnCancel) EVT_BUTTON(wxID_CANCEL, wxProgressDialog::OnCancel)
EVT_CLOSE(wxProgressDialog::OnClose) EVT_CLOSE(wxProgressDialog::OnClose)
END_EVENT_TABLE() END_EVENT_TABLE()
IMPLEMENT_CLASS(wxProgressDialog, wxDialog) IMPLEMENT_CLASS(wxProgressDialog, wxDialog)
// ============================================================================ // ============================================================================
// implementation // implementation
@@ -148,21 +148,21 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
{ {
nTimeLabels++; nTimeLabels++;
m_elapsed = CreateLabel(wxT("Elapsed time : "), &lastWindow); m_elapsed = CreateLabel(_("Elapsed time : "), &lastWindow);
} }
if ( style & wxPD_ESTIMATED_TIME ) if ( style & wxPD_ESTIMATED_TIME )
{ {
nTimeLabels++; nTimeLabels++;
m_estimated = CreateLabel(wxT("Estimated time : "), &lastWindow); m_estimated = CreateLabel(_("Estimated time : "), &lastWindow);
} }
if ( style & wxPD_REMAINING_TIME ) if ( style & wxPD_REMAINING_TIME )
{ {
nTimeLabels++; nTimeLabels++;
m_remaining = CreateLabel(wxT("Remaining time : "), &lastWindow); m_remaining = CreateLabel(_("Remaining time : "), &lastWindow);
} }
if ( nTimeLabels > 0 ) if ( nTimeLabels > 0 )
@@ -209,7 +209,7 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
Centre(wxCENTER_FRAME | wxBOTH); Centre(wxCENTER_FRAME | wxBOTH);
if (m_disableParentOnly ) if ( m_disableParentOnly )
{ {
if ( m_parent ) if ( m_parent )
m_parent->Enable(FALSE); m_parent->Enable(FALSE);
@@ -224,9 +224,10 @@ wxProgressDialog::wxProgressDialog(wxString const &title,
// Update the display (especially on X, GTK) // Update the display (especially on X, GTK)
wxYield(); wxYield();
#ifdef __WXMAC__
MacUpdateImmediately() ; #ifdef __WXMAC__
#endif MacUpdateImmediately();
#endif
} }
wxStaticText *wxProgressDialog::CreateLabel(const wxString& text, wxStaticText *wxProgressDialog::CreateLabel(const wxString& text,
@@ -234,7 +235,7 @@ wxStaticText *wxProgressDialog::CreateLabel(const wxString& text,
{ {
wxLayoutConstraints *c; wxLayoutConstraints *c;
wxStaticText *label = new wxStaticText(this, -1, wxT("unknown")); wxStaticText *label = new wxStaticText(this, -1, _("unknown"));
c = new wxLayoutConstraints; c = new wxLayoutConstraints;
// VZ: I like the labels be centered - if the others don't mind, you may // 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 // update the display
wxYield(); wxYield();
} }
#ifdef __WXMAC__
MacUpdateImmediately() ; #ifdef __WXMAC__
#endif MacUpdateImmediately();
#endif
return m_state != Canceled; 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 // request to cancel was received, the next time Update() is called we
// will handle it // will handle it
m_state = Canceled; m_state = Canceled;
// update the button state immediately so that the user knows that the
// request has been noticed
m_btnAbort->Disable();
} }
} }

View File

@@ -46,9 +46,9 @@ wxWindowList wxModalDialogs;
wxWindowList wxModelessWindows; // Frames and modeless dialogs wxWindowList wxModelessWindows; // Frames and modeless dialogs
extern wxList WXDLLEXPORT wxPendingDelete; extern wxList WXDLLEXPORT wxPendingDelete;
IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel)
BEGIN_EVENT_TABLE(wxDialog, wxPanel) BEGIN_EVENT_TABLE(wxDialog, wxPanel)
EVT_SIZE(wxDialog::OnSize) EVT_SIZE(wxDialog::OnSize)
EVT_BUTTON(wxID_OK, wxDialog::OnOK) EVT_BUTTON(wxID_OK, wxDialog::OnOK)
EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) EVT_BUTTON(wxID_APPLY, wxDialog::OnApply)
@@ -56,7 +56,7 @@ extern wxList WXDLLEXPORT wxPendingDelete;
EVT_CHAR_HOOK(wxDialog::OnCharHook) EVT_CHAR_HOOK(wxDialog::OnCharHook)
EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged)
EVT_CLOSE(wxDialog::OnCloseWindow) EVT_CLOSE(wxDialog::OnCloseWindow)
END_EVENT_TABLE() END_EVENT_TABLE()
wxDialog::wxDialog() wxDialog::wxDialog()
{ {
@@ -171,6 +171,9 @@ wxDialog::~wxDialog()
Show(FALSE); 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) if (m_modalShowing)
{ {
// For some reason, wxWindows can activate another task altogether // For some reason, wxWindows can activate another task altogether
@@ -182,6 +185,7 @@ wxDialog::~wxDialog()
if (GetParent() && GetParent()->GetHWND()) if (GetParent() && GetParent()->GetHWND())
::BringWindowToTop((HWND) GetParent()->GetHWND()); ::BringWindowToTop((HWND) GetParent()->GetHWND());
} }
#endif // 0
m_modalShowing = FALSE; m_modalShowing = FALSE;