bbtkWidgetBlackBoxWindow.txx

Go to the documentation of this file.
00001 /*=========================================================================                                                                               
00002   Program:   bbtk
00003   Module:    $RCSfile: bbtkWidgetBlackBoxWindow.txx,v $
00004   Language:  C++
00005   Date:      $Date: 2009/06/10 11:36:52 $
00006   Version:   $Revision: 1.4 $
00007 =========================================================================*/
00008 
00009 /* ---------------------------------------------------------------------
00010 
00011 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
00012 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
00013 *
00014 *  This software is governed by the CeCILL-B license under French law and 
00015 *  abiding by the rules of distribution of free software. You can  use, 
00016 *  modify and/ or redistribute the software under the terms of the CeCILL-B 
00017 *  license as circulated by CEA, CNRS and INRIA at the following URL 
00018 *  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
00019 *  or in the file LICENSE.txt.
00020 *
00021 *  As a counterpart to the access to the source code and  rights to copy,
00022 *  modify and redistribute granted by the license, users are provided only
00023 *  with a limited warranty  and the software's author,  the holder of the
00024 *  economic rights,  and the successive licensors  have only  limited
00025 *  liability. 
00026 *
00027 *  The fact that you are presently reading this means that you have had
00028 *  knowledge of the CeCILL-B license and that you accept its terms.
00029 * ------------------------------------------------------------------------ */                                                                         
00030 
00037 namespace bbtk
00038 {
00039 
00040 
00041 
00042 
00043   //=========================================================================
00044   // WidgetBlackBoxWindow
00045   //=========================================================================
00046 
00047 
00048 
00049   //=========================================================================
00050   template <class W>
00051   WidgetBlackBoxWindow<W>::WidgetBlackBoxWindow
00052   (typename WidgetBlackBox<W>::Pointer box)
00053     : mBox(box), mShown(false)
00054   {
00055     bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::WidgetBlackBoxWindow("
00056                      <<mBox.lock()->bbGetName()<<")"<<std::endl);
00057     mBox.lock()->bbSetWindow(this);
00058     mBox.lock()->IncNbWindowsAlive();
00059   }
00060   //=========================================================================
00061 
00062   //=========================================================================
00063   template <class W>
00064   WidgetBlackBoxWindow<W>::~WidgetBlackBoxWindow()
00065   {
00066     bbtkDebugMessage("widget",9,
00067                      "WidgetBlackBoxWindow::~WidgetBlackBoxWindow() "
00068                      <<this<<std::endl);
00069     std::cout << "**** WidgetBlackBoxWindow::~WidgetBlackBoxWindow() "
00070               <<this<<std::endl;
00071     bbHide();
00072     if (!mBox.expired())
00073       {
00074         mBox.lock()->DecNbWindowsAlive();
00075         mBox.lock()->bbSetWindow(0);
00076       }
00077   }
00078   //========================================================================= 
00079 
00080 
00081   //=========================================================================
00082   template <class W>
00083   void WidgetBlackBoxWindow<W>::bbShow()
00084   {
00085     if (bbIsShown()) return;
00086     bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbShow() ["
00087                      <<mBox.lock()->bbGetName()<<"]"<<std::endl);
00088     mBox.lock()->IncNbWindowsShown();
00089     mShown = true;
00090     if (bbGetBlackBox()) bbGetBlackBox()->bbUserOnShow();
00091   }
00092   //=========================================================================
00093 
00094   //=========================================================================
00095   template <class W>
00096   void WidgetBlackBoxWindow<W>::bbHide()
00097   {
00098     if ((!bbIsShown())||(mBox.expired())) return;
00099     bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbHide() ["
00100                      <<mBox.lock()->bbGetName()<<"]"<<std::endl);
00101     mBox.lock()->DecNbWindowsShown();
00102     mShown = false;
00103   }
00104   //=========================================================================
00105 
00106   //=========================================================================
00107   template <class W>
00108   void WidgetBlackBoxWindow<W>::bbDestroy()
00109   {
00110     
00111     if (mBox.expired()) return;
00112     bbtkDebugMessage("widget",9,"WidgetBlackBoxWindow::bbDestroy() [" 
00113                      <<mBox.lock()->bbGetName()<<"]"<<std::endl);
00114     bbHide();
00115     mBox.lock()->DecNbWindowsAlive();
00116     mBox.lock()->bbSetWindow(0);
00117     
00118   }
00119   //=========================================================================
00120 
00121 
00122 
00123 }//namespace bbtk
00124 
00125 
00126 

Generated on Thu May 31 14:12:03 2012 for BBTK by  doxygen 1.5.7.1