]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWidgetBlackBoxWindow.txx
#2536 BBTK Feature New Normal - wt-version Package
[bbtk.git] / kernel / src / bbtkWidgetBlackBoxWindow.txx
index 2c7c2668bd75e69c52fde73e9b0c4ccc0b0d8303..13d1273afdacf4f4dd56b9ea518b1c4f619a5f68 100644 (file)
@@ -1,32 +1,40 @@
+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ #                        pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ #  This software is governed by the CeCILL-B license under French law and
+ #  abiding by the rules of distribution of free software. You can  use,
+ #  modify and/ or redistribute the software under the terms of the CeCILL-B
+ #  license as circulated by CEA, CNRS and INRIA at the following URL
+ #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ #  or in the file LICENSE.txt.
+ #
+ #  As a counterpart to the access to the source code and  rights to copy,
+ #  modify and redistribute granted by the license, users are provided only
+ #  with a limited warranty  and the software's author,  the holder of the
+ #  economic rights,  and the successive licensors  have only  limited
+ #  liability.
+ #
+ #  The fact that you are presently reading this means that you have had
+ #  knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+
+
 /*=========================================================================                                                                               
   Program:   bbtk
   Module:    $RCSfile: bbtkWidgetBlackBoxWindow.txx,v $
   Language:  C++
-  Date:      $Date: 2009/04/08 07:56:11 $
-  Version:   $Revision: 1.1 $
+  Date:      $Date: 2012/11/16 08:49:01 $
+  Version:   $Revision: 1.5 $
 =========================================================================*/
 
-/* ---------------------------------------------------------------------
-
-* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
-* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
-*
-*  This software is governed by the CeCILL-B license under French law and 
-*  abiding by the rules of distribution of free software. You can  use, 
-*  modify and/ or redistribute the software under the terms of the CeCILL-B 
-*  license as circulated by CEA, CNRS and INRIA at the following URL 
-*  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
-*  or in the file LICENSE.txt.
-*
-*  As a counterpart to the access to the source code and  rights to copy,
-*  modify and redistribute granted by the license, users are provided only
-*  with a limited warranty  and the software's author,  the holder of the
-*  economic rights,  and the successive licensors  have only  limited
-*  liability. 
-*
-*  The fact that you are presently reading this means that you have had
-*  knowledge of the CeCILL-B license and that you accept its terms.
-* ------------------------------------------------------------------------ */                                                                         
+
+
 
 /**
  *  \file 
@@ -66,10 +74,12 @@ namespace bbtk
     bbtkDebugMessage("widget",9,
                     "WidgetBlackBoxWindow::~WidgetBlackBoxWindow() "
                     <<this<<std::endl);
+    std::cout << "**** WidgetBlackBoxWindow::~WidgetBlackBoxWindow() "
+             <<this<<std::endl;
     bbHide();
-    mBox.lock()->DecNbWindowsAlive();
     if (!mBox.expired())
       {
+       mBox.lock()->DecNbWindowsAlive();
        mBox.lock()->bbSetWindow(0);
       }
   }
@@ -93,7 +103,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 +113,16 @@ 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);
+    
   }
   //=========================================================================