]> Creatis software - bbtk.git/blob - kernel/src/bbtkQtBlackBox.cxx
Qt black boxes updated
[bbtk.git] / kernel / src / bbtkQtBlackBox.cxx
1 /*=========================================================================                                                                               
2   Program:   bbtk
3   Module:    $RCSfile: bbtkQtBlackBox.cxx,v $
4   Language:  C++
5   Date:      $Date: 2009/05/28 14:22:10 $
6   Version:   $Revision: 1.3 $
7 =========================================================================*/
8
9 /* ---------------------------------------------------------------------
10
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
13 *
14 *  This software is governed by the CeCILL-B license under French law and 
15 *  abiding by the rules of distribution of free software. You can  use, 
16 *  modify and/ or redistribute the software under the terms of the CeCILL-B 
17 *  license as circulated by CEA, CNRS and INRIA at the following URL 
18 *  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
19 *  or in the file LICENSE.txt.
20 *
21 *  As a counterpart to the access to the source code and  rights to copy,
22 *  modify and redistribute granted by the license, users are provided only
23 *  with a limited warranty  and the software's author,  the holder of the
24 *  economic rights,  and the successive licensors  have only  limited
25 *  liability. 
26 *
27 *  The fact that you are presently reading this means that you have had
28 *  knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */                                                                         
30 /**
31  *  \file 
32  *  \brief 
33  */
34
35 #ifdef USE_QT
36
37
38 #include "bbtkQtBlackBox.h"
39 //#include "bbtkBlackBoxOutputConnector.h"
40 //#include "bbtkQtBlackBoxDialog.h"
41 #include "bbtkQtBlackBoxDialog.h"
42
43
44 namespace bbtk
45 {
46
47
48
49   //=========================================================================
50   // QtBlackBox
51   //=========================================================================
52
53   //=========================================================================
54   //=========================================================================
55   //=========================================================================
56   //=========================================================================
57   BBTK_BLACK_BOX_IMPLEMENTATION(QtBlackBox,WidgetBlackBox<QWidget>);
58   //=========================================================================
59   
60   //==================================================================    
61   /// Callback for creating a Dialog window (modal)
62   void QtBlackBox::bbCreateDialogWindow()
63   {
64     Qt::CreateQtAppIfNeeded();
65     QtBlackBoxDialog* w = 0;  
66     w = new QtBlackBoxDialog( GetThisPointer<QtBlackBox>(),
67                               0, 
68                               bbGetInputWinTitle() 
69                               + " - bbtk (c) CREATIS LRMN",
70                               bbGetInputWinWidth() , 
71                               bbGetInputWinHeight()  );
72   }
73   //==================================================================    
74
75   //==================================================================    
76   /// Callback for creating a Frame window 
77   void QtBlackBox::bbCreateFrameWindow()
78   {
79     
80     this->bbCreateDialogWindow();
81
82   }
83   //==================================================================    
84
85   //==================================================================    
86   void QtBlackBox::bbUserSetDefaultValues()
87   {
88     bbtkBlackBoxDebugMessage("widget",5,"QtBlackBox::bbUserSetDefaultValues()"<<std::endl);
89     bbmWindow = 0;
90   }
91   //==================================================================    
92
93   //==================================================================    
94   void QtBlackBox::bbUserInitializeProcessing()
95   {
96   }
97   //==================================================================    
98  
99   //==================================================================    
100   void QtBlackBox::bbUserFinalizeProcessing()
101   {
102     bbtkBlackBoxDebugMessage("widget",5,"==> QtBlackBox::bbUserFinalizeProcessing()"<<std::endl);
103     bbDestroyWindow();
104     bbtkBlackBoxDebugMessage("widget",5,"<== QtBlackBox::bbUserFinalizeProcessing()"<<std::endl);
105   }
106   //==================================================================    
107    
108   //==================================================================    
109   void QtBlackBox::bbSetWindow(QWidget* w) 
110   {
111     bbtkBlackBoxDebugMessage("widget",9,"==> QtBlackBox::bbSetWindow("<<w<<")"<<std::endl);
112     if ((bbmWindow != 0)&&(w!=0)) 
113       { 
114         std::cout << "ERRRRRRRROOOOR"<<std::endl; 
115       }
116     bbmWindow = w;
117   }
118   //==================================================================    
119
120   //==================================================================    
121   void QtBlackBox::bbShowWindow()
122   {
123     if ((bbmWindow) && (!bbIsShown()))
124       {
125         bbtkBlackBoxDebugMessage("widget",3,"==> QtBlackBox::bbShowWindow()"
126                          <<std::endl);
127         if (bbGetInputWinDialog()) 
128           {
129             bbmWindow->updateGeometry();
130             ((QDialog*)bbmWindow)->exec();
131             bbDestroyWindow();  
132           }
133         else
134           {
135             bbmWindow->updateGeometry();
136             ((QDialog*)bbmWindow)->exec();
137             bbSetShown(true);
138           } 
139     }
140   }
141   //==================================================================    
142
143   //==================================================================    
144   void QtBlackBox::bbDestroyWindow()
145   {
146     bbtkBlackBoxDebugMessage("widget",3,"==> QtBlackBox::bbDestroyWindow("<<bbmWindow<<")"<<std::endl);
147     if (bbGetWindow()!=NULL) 
148       {
149         //       wxWindow* w = bbGetWindow();
150         //bbSetWindow(0);
151         // WE SHOULD DESTROY THE WINDOW WITH THE Close METHOD
152         // HOWEVER I
153         //w->Close(true);
154         //
155         delete bbGetWindow();
156         bbSetShown(false);
157       }
158     bbtkBlackBoxDebugMessage("widget",3,"<== QtBlackBox::bbDestroyWindow("<<bbmWindow<<")"<<std::endl);
159
160   }
161   //==================================================================    
162
163   //==================================================================
164   //  void QtBlackBox::InitWindowManagerIfNeeded() { Qt::
165   void QtBlackBox::IncNbWindowsAlive() { Qt::IncNbWindowsAlive(); }
166   void QtBlackBox::DecNbWindowsAlive() { Qt::DecNbWindowsAlive(); }
167   int  QtBlackBox::GetNbWindowsAlive() { return Qt::GetNbWindowsAlive(); }
168   bool QtBlackBox::IsSomeWindowAlive() { return Qt::IsSomeWindowAlive(); }
169   
170   void QtBlackBox::IncNbWindowsShown() { Qt::IncNbWindowsShown(); }
171   void QtBlackBox::DecNbWindowsShown() { Qt::DecNbWindowsShown(); }
172   int  QtBlackBox::GetNbWindowsShown() { return Qt::GetNbWindowsShown(); }
173   bool QtBlackBox::IsSomeWindowShown() { return Qt::GetNbWindowsShown(); }
174   //==================================================================
175   
176
177
178
179 }//namespace bbtk
180
181
182 #endif
183