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(); ~wxLogWindow();
// window operations // window operations
// show/hide the log window // show/hide the log window
void Show(bool bShow = TRUE); void Show(bool bShow = TRUE);
// retrieve the pointer to the frame // retrieve the pointer to the frame
wxFrame *GetFrame() const; wxFrame *GetFrame() const;
// accessors // accessors
// the previous log target (may be NULL) // the previous log target (may be NULL)
wxLog *GetOldLog() const { return m_pOldLog; } 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; } bool IsPassingMessages() const { return m_bPassMessages; }
// we can pass the messages to the previous log target (we're in this mode by // 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; } void PassMessages(bool bDoPass) { m_bPassMessages = bDoPass; }
// base class virtuals // 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(); virtual void Flush();
// overridables // overridables
// called immediately after the log frame creation allowing for // called immediately after the log frame creation allowing for
// any extra initializations // any extra initializations
virtual void OnFrameCreate(wxFrame *frame); 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); virtual void OnFrameDelete(wxFrame *frame);
protected: protected:

View File

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