added wxLogWindow::OnFrameClose()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2000-05-02 07:52:35 +00:00
parent 5eabe5bbbf
commit 69400134a8
2 changed files with 32 additions and 10 deletions

View File

@@ -327,15 +327,15 @@ public:
~wxLogWindow();
// window operations
// show/hide the log window
// show/hide the log window
void Show(bool bShow = TRUE);
// retrieve the pointer to the frame
// retrieve the pointer to the frame
wxFrame *GetFrame() const;
// accessors
// the previous log target (may be NULL)
// the previous log target (may be NULL)
wxLog *GetOldLog() const { return m_pOldLog; }
// are we passing the messages to the previous log target?
// are we passing the messages to the previous log target?
bool IsPassingMessages() const { return m_bPassMessages; }
// we can pass the messages to the previous log target (we're in this mode by
@@ -344,14 +344,20 @@ public:
void PassMessages(bool bDoPass) { m_bPassMessages = bDoPass; }
// base class virtuals
// we don't need it ourselves, but we pass it to the previous logger
// we don't need it ourselves, but we pass it to the previous logger
virtual void Flush();
// overridables
// called immediately after the log frame creation allowing for
// any extra initializations
// called immediately after the log frame creation allowing for
// any extra initializations
virtual void OnFrameCreate(wxFrame *frame);
// called right before the log frame is going to be deleted
// called if the user closes the window interactively, will not be
// called if it is destroyed for another reason (such as when program
// exits) - return TRUE from here to allow the frame to close, FALSE
// to prevent this from happening
virtual bool OnFrameClose(wxFrame *frame);
// called right before the log frame is going to be deleted: will
// always be called unlike OnFrameClose()
virtual void OnFrameDelete(wxFrame *frame);
protected:

View File

@@ -404,8 +404,8 @@ private:
Menu_Clear = wxID_CLEAR
};
// instead of closing just hide the window to be able to Show() it later
void DoClose() { Show(FALSE); }
// common part of OnClose() and OnCloseWindow()
void DoClose();
wxTextCtrl *m_pTextCtrl;
wxLogWindow *m_log;
@@ -455,6 +455,16 @@ wxLogFrame::wxLogFrame(wxFrame *pParent, wxLogWindow *log, const wxChar *szTitle
m_log->OnFrameCreate(this);
}
void wxLogFrame::DoClose()
{
if ( m_log->OnFrameClose(this) )
{
// instead of closing just hide the window to be able to Show() it
// later
Show(FALSE);
}
}
void wxLogFrame::OnClose(wxCommandEvent& WXUNUSED(event))
{
DoClose();
@@ -643,6 +653,12 @@ void wxLogWindow::OnFrameCreate(wxFrame * WXUNUSED(frame))
{
}
bool wxLogWindow::OnFrameClose(wxFrame * WXUNUSED(frame))
{
// allow to close
return TRUE;
}
void wxLogWindow::OnFrameDelete(wxFrame * WXUNUSED(frame))
{
m_pLogFrame = (wxLogFrame *)NULL;