From ef8698d677c97b2d662ee1c5adbdaadf58103e0e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 7 Oct 2000 21:34:35 +0000 Subject: [PATCH] 1. more warnings fixed 2. fixed wxProgressDialog to work as wxDialog now does git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/generic/progdlgg.h | 14 +++++++++++--- src/generic/progdlgg.cpp | 24 ++++++++++++++++++++++-- src/generic/treectlg.cpp | 4 ++-- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/include/wx/generic/progdlgg.h b/include/wx/generic/progdlgg.h index b02ba1ef28..3c6de05288 100644 --- a/include/wx/generic/progdlgg.h +++ b/include/wx/generic/progdlgg.h @@ -63,12 +63,20 @@ public: */ void Resume() { m_state = Continue; } - // implementation from now on - // callback for optional abort button +protected: + // callback for optional abort button void OnCancel(wxCommandEvent& event); - // callback to disable "hard" window closing + + // callback to disable "hard" window closing void OnClose(wxCloseEvent& event); + // callback to detect when the dialog is closed + void OnShow(wxShowEvent& event); + + // must be called to reenable the other windows temporarily disabled while + // the dialog was shown + void ReenableOtherWindows(); + private: // create the label with given text and another one to show the time nearby // under the lastWindow and modify it to be the same as the control created diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp index 90436f9340..e9c031ab2a 100644 --- a/src/generic/progdlgg.cpp +++ b/src/generic/progdlgg.cpp @@ -65,8 +65,11 @@ static void SetTimeLabel(unsigned long val, wxStaticText *label); // ---------------------------------------------------------------------------- BEGIN_EVENT_TABLE(wxProgressDialog, wxDialog) - EVT_BUTTON(wxID_CANCEL, wxProgressDialog::OnCancel) - EVT_CLOSE(wxProgressDialog::OnClose) + EVT_BUTTON(wxID_CANCEL, wxProgressDialog::OnCancel) + + EVT_SHOW(wxProgressDialog::OnShow) + + EVT_CLOSE(wxProgressDialog::OnClose) END_EVENT_TABLE() IMPLEMENT_CLASS(wxProgressDialog, wxDialog) @@ -377,15 +380,32 @@ void wxProgressDialog::OnClose(wxCloseEvent& event) } } +void wxProgressDialog::OnShow(wxShowEvent& event) +{ + // if the dialog is being hidden, it was closed, so reenable other windows + // now + if ( event.GetShow() ) + { + ReenableOtherWindows(); + } +} + // ---------------------------------------------------------------------------- // destruction // ---------------------------------------------------------------------------- wxProgressDialog::~wxProgressDialog() +{ + // normally this should have been already done, but just in case + ReenableOtherWindows(); +} + +void wxProgressDialog::ReenableOtherWindows() { if ( GetWindowStyle() & wxPD_APP_MODAL ) { delete m_winDisabler; + m_winDisabler = (wxWindowDisabler *)NULL; } else { diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index e45f6f08f7..01072caca3 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -178,10 +178,10 @@ public: // status inquiries bool HasChildren() const { return !m_children.IsEmpty(); } - bool IsSelected() const { return m_hasHilight; } + bool IsSelected() const { return m_hasHilight != 0; } bool IsExpanded() const { return !m_isCollapsed; } bool HasPlus() const { return m_hasPlus || HasChildren(); } - bool IsBold() const { return m_isBold; } + bool IsBold() const { return m_isBold != 0; } // attributes // get them - may be NULL -- 2.45.2