From b23e843b99fb99049804faa82714b8828982bbca Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Fri, 12 Jul 2002 16:08:03 +0000 Subject: [PATCH] Added wxView::OnClosingDocument so the application can do cleanup. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16149 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 6 ++++++ docs/latex/wx/view.tex | 7 +++++++ include/wx/docview.h | 2 ++ src/common/docview.cpp | 13 +++++++++++++ 4 files changed, 28 insertions(+) diff --git a/docs/changes.txt b/docs/changes.txt index 388db44..01738d4 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -213,6 +213,8 @@ All (GUI): so that erroneous help strings are no longer found as the hash table fills up - updated libpng from 1.0.3 to 1.2.4 +- Added wxView::OnClosingDocument so the application can do + cleanup. wxMSW: @@ -302,6 +304,7 @@ All (GUI): - wxGrid cell editing veto support (Roger Gammans) - wxListCtrl ITEM_FOCUSED event added - support for ICO files in wxImage added (Chris Elliott) +- improvements to wxDragImage (Chuck Messenger) wxMSW: @@ -312,6 +315,9 @@ wxMSW: wxGTK: - fixed popup menu positioning bug +- fixed the edit function for wxListCtrl (Chuck Messenger) +- fixed the key-hitting events for wxListCtrl and wxTreeCtrl, so they + correctly return the key which was pressed (Chuck Messenger) wxMac: diff --git a/docs/latex/wx/view.tex b/docs/latex/wx/view.tex index d9fa115..acb0fc4 100644 --- a/docs/latex/wx/view.tex +++ b/docs/latex/wx/view.tex @@ -126,6 +126,13 @@ all share the same window, you need to disassociate the window from the view and perhaps clear the window. If {\it deleteWindow} is TRUE, delete the frame associated with the view. +\membersection{wxView::OnClosingDocument}\label{wxviewonclosingdocument} + +\func{virtual void}{OnClosingDoocument}{\void} + +Override this to clean up the view when the document is being +closed. + \membersection{wxView::OnCreate} \func{virtual bool}{OnCreate}{\param{wxDocument* }{doc}, \param{long}{ flags}} diff --git a/include/wx/docview.h b/include/wx/docview.h index 52f0c25..0fc38cf 100644 --- a/include/wx/docview.h +++ b/include/wx/docview.h @@ -133,6 +133,7 @@ public: wxView *GetFirstView() const; virtual void UpdateAllViews(wxView *sender = (wxView *) NULL, wxObject *hint = (wxObject *) NULL); + virtual void NotifyClosing(); // Remove all views (because we're closing the document) virtual bool DeleteAllViews(); @@ -183,6 +184,7 @@ public: virtual void OnDraw(wxDC *dc) = 0; virtual void OnPrint(wxDC *dc, wxObject *info); virtual void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL); + virtual void OnClosingDocument() {}; virtual void OnChangeFilename(); // Called by framework if created automatically by the default document diff --git a/src/common/docview.cpp b/src/common/docview.cpp index c368a8e..c0b5b82 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -164,6 +164,8 @@ bool wxDocument::Close() bool wxDocument::OnCloseDocument() { + // Tell all views that we're about to close + NotifyClosing(); DeleteContents(); Modify(FALSE); return TRUE; @@ -508,6 +510,17 @@ void wxDocument::UpdateAllViews(wxView *sender, wxObject *hint) } } +void wxDocument::NotifyClosing() +{ + wxNode *node = m_documentViews.First(); + while (node) + { + wxView *view = (wxView *)node->Data(); + view->OnClosingDocument(); + node = node->Next(); + } +} + void wxDocument::SetFilename(const wxString& filename, bool notifyViews) { m_documentFile = filename; -- 2.7.4