]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWidgetBlackBoxWindow.txx
*** empty log message ***
[bbtk.git] / kernel / src / bbtkWidgetBlackBoxWindow.txx
index 2c7c2668bd75e69c52fde73e9b0c4ccc0b0d8303..aee878575f2f0af8ae148fd51a109ef16bbe04f1 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkWidgetBlackBoxWindow.txx,v $
   Language:  C++
-  Date:      $Date: 2009/04/08 07:56:11 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2009/05/19 10:19:23 $
+  Version:   $Revision: 1.2 $
 =========================================================================*/
 
 /* ---------------------------------------------------------------------
@@ -67,9 +67,9 @@ namespace bbtk
                     "WidgetBlackBoxWindow::~WidgetBlackBoxWindow() "
                     <<this<<std::endl);
     bbHide();
-    mBox.lock()->DecNbWindowsAlive();
     if (!mBox.expired())
       {
+       mBox.lock()->DecNbWindowsAlive();
        mBox.lock()->bbSetWindow(0);
       }
   }
@@ -93,7 +93,7 @@ namespace bbtk
   template <class W>
   void WidgetBlackBoxWindow<W>::bbHide()
   {
-    if (!bbIsShown()) return;
+    if ((!bbIsShown())||(mBox.expired())) return;
     bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbHide() ["
                     <<mBox.lock()->bbGetName()<<"]"<<std::endl);
     mBox.lock()->DecNbWindowsShown();
@@ -103,10 +103,14 @@ namespace bbtk
 
   //=========================================================================
   template <class W>
-  void WidgetBlackBoxWindow<W>::bbClose()
+  void WidgetBlackBoxWindow<W>::bbDestroy()
   {
-    bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbClose() [" 
+    if (mBox.expired()) return;
+    bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbDestroy() [" 
                     <<mBox.lock()->bbGetName()<<"]"<<std::endl);
+    bbHide();
+    mBox.lock()->DecNbWindowsAlive();
+    mBox.lock()->bbSetWindow(0);
   }
   //=========================================================================