From 28479cf7460f053625842de2e8df98b2e3363ede Mon Sep 17 00:00:00 2001 From: guigues Date: Tue, 19 May 2009 10:19:23 +0000 Subject: [PATCH] *** empty log message *** --- kernel/src/bbtkMessageManager.cxx | 14 +++++++-- kernel/src/bbtkPackage.h | 14 +++++++-- kernel/src/bbtkQtBlackBoxDialog.cxx | 8 +++-- kernel/src/bbtkQtBlackBoxDialog.h | 2 +- kernel/src/bbtkWidgetBlackBox.txx | 20 +++++++----- kernel/src/bbtkWidgetBlackBoxWindow.h | 6 ++-- kernel/src/bbtkWidgetBlackBoxWindow.txx | 16 ++++++---- kernel/src/bbtkWx.cxx | 16 +++++----- kernel/src/bbtkWxBlackBox.cxx | 42 ++++++++++++++++++------- kernel/src/bbtkWxBlackBox.h | 8 ++--- 10 files changed, 97 insertions(+), 49 deletions(-) diff --git a/kernel/src/bbtkMessageManager.cxx b/kernel/src/bbtkMessageManager.cxx index eae9e3b..4d673d4 100644 --- a/kernel/src/bbtkMessageManager.cxx +++ b/kernel/src/bbtkMessageManager.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkMessageManager.cxx,v $ Language: C++ - Date: $Date: 2008/12/08 12:54:27 $ - Version: $Revision: 1.14 $ + Date: $Date: 2009/05/19 10:19:23 $ + Version: $Revision: 1.15 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -86,10 +86,18 @@ namespace bbtk mMessageLevel[key] = 0; mMessageHelp[key] = "Data related messages"; if (mMaxMessageLength::bbUserFinalizeProcessing() { bbtkDebugMessage("widget",9,"==> WidgetBlackBox::bbUserFinalizeProcessing() ["<bbClose(); - bbSetWindow(0); - } + if (bbGetWindow()) + { + if (GetUseCount()==0) + { + if (bbGetWindow()->bbIsShown()) DecNbWindowsShown(); + DecNbWindowsAlive(); + } + bbGetWindow()->bbDestroy(); + bbSetWindow(0); + } bbtkDebugMessage("widget",9,"<== WidgetBlackBox::bbUserFinalizeProcessing() ["< WidgetBlackBox::bbCloseWindow() [" <bbClose(); + if (bbGetWindow()!=0) bbGetWindow()->bbDestroy(); bbtkDebugMessageDec("widget",2,"<= WidgetBlackBox::bbCloseWindow() [" <DecNbWindowsAlive(); if (!mBox.expired()) { + mBox.lock()->DecNbWindowsAlive(); mBox.lock()->bbSetWindow(0); } } @@ -93,7 +93,7 @@ namespace bbtk template void WidgetBlackBoxWindow::bbHide() { - if (!bbIsShown()) return; + if ((!bbIsShown())||(mBox.expired())) return; bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbHide() [" <bbGetName()<<"]"<DecNbWindowsShown(); @@ -103,10 +103,14 @@ namespace bbtk //========================================================================= template - void WidgetBlackBoxWindow::bbClose() + void WidgetBlackBoxWindow::bbDestroy() { - bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbClose() [" + if (mBox.expired()) return; + bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbDestroy() [" <bbGetName()<<"]"<DecNbWindowsAlive(); + mBox.lock()->bbSetWindow(0); } //========================================================================= diff --git a/kernel/src/bbtkWx.cxx b/kernel/src/bbtkWx.cxx index a15bb86..820a60f 100644 --- a/kernel/src/bbtkWx.cxx +++ b/kernel/src/bbtkWx.cxx @@ -2,8 +2,8 @@ Program: bbtk Module: $RCSfile: bbtkWx.cxx,v $ Language: C++ - Date: $Date: 2009/04/08 07:56:11 $ - Version: $Revision: 1.13 $ + Date: $Date: 2009/05/19 10:19:23 $ + Version: $Revision: 1.14 $ =========================================================================*/ /* --------------------------------------------------------------------- @@ -134,7 +134,8 @@ namespace bbtk _T("TOP BBTK FRAME (YOU SHOULD NOT SEE ME !!)")); top->Hide(); - Wx::SetTopWindow(top); + //if (mgTopWindowParent==0) + Wx::SetTopWindow(top); } //========================================================================= @@ -142,7 +143,8 @@ namespace bbtk void Wx::DestroyTopWindowIfNeeded() { if ( (mgNbWindowsAlive==0) && - (mgAutoDestroyTopWindow) ) + (mgAutoDestroyTopWindow) && + (mgTopWindow != 0)) { bbtkDebugMessage("wx",1," --> Destructing bbtk top window"<Close(); @@ -258,7 +260,7 @@ namespace bbtk bbtkDebugMessage("wx",2,"* Number of windows shown = "<GetId() ); + if (mBox.expired()) return; bbtkDebugMessage("wx",9, "WxBlackBoxWidgetEventHandler::~WxBlackBoxWidgetEventHandler() [" <bbGetFullName()<<"]"<bbSetWidgetEventHandler(0); + + mBox.lock()->bbSetWidgetEventHandler(0); } //========================================================================= //========================================================================= void WxBlackBoxWidgetEventHandler::OnWindowDestroy(wxWindowDestroyEvent&) { + bbtkDebugMessage("wx",9,"WxBlackBoxWidgetEventHandler::OnWindowDestroy() []"<bbGetFullName()<<"]"<bbSetOutputWidget(0); - // LGSIGNAL - // mBox.lock()->bbSetModifiedStatus(); } //========================================================================= @@ -308,6 +319,13 @@ namespace bbtk //========================================================================= void WxBlackBox::bbUserFinalizeProcessing() { + bbtkDebugMessage("wx",9,"WxBlackBox::bbUserFinalizeProcessing()"<