]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkQtBlackBox.cxx
Qt black boxes updated
[bbtk.git] / kernel / src / bbtkQtBlackBox.cxx
index 8ac7de07a3983c31e8fe4d66da84656b0724ad9f..1ee4b47a836ac995f07f3e803b548e9f8a7a9f6c 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkQtBlackBox.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/05/14 14:43:33 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2009/05/28 14:22:10 $
+  Version:   $Revision: 1.3 $
 =========================================================================*/
 
 /* ---------------------------------------------------------------------
@@ -85,6 +85,8 @@ namespace bbtk
   //==================================================================    
   void QtBlackBox::bbUserSetDefaultValues()
   {
+    bbtkBlackBoxDebugMessage("widget",5,"QtBlackBox::bbUserSetDefaultValues()"<<std::endl);
+    bbmWindow = 0;
   }
   //==================================================================    
 
@@ -94,12 +96,70 @@ namespace bbtk
   }
   //==================================================================    
  
- //==================================================================    
 //==================================================================    
   void QtBlackBox::bbUserFinalizeProcessing()
   {
+    bbtkBlackBoxDebugMessage("widget",5,"==> QtBlackBox::bbUserFinalizeProcessing()"<<std::endl);
+    bbDestroyWindow();
+    bbtkBlackBoxDebugMessage("widget",5,"<== QtBlackBox::bbUserFinalizeProcessing()"<<std::endl);
   }
   //==================================================================    
    
+  //==================================================================    
+  void QtBlackBox::bbSetWindow(QWidget* w) 
+  {
+    bbtkBlackBoxDebugMessage("widget",9,"==> QtBlackBox::bbSetWindow("<<w<<")"<<std::endl);
+    if ((bbmWindow != 0)&&(w!=0)) 
+      { 
+       std::cout << "ERRRRRRRROOOOR"<<std::endl; 
+      }
+    bbmWindow = w;
+  }
+  //==================================================================    
+
+  //==================================================================    
+  void QtBlackBox::bbShowWindow()
+  {
+    if ((bbmWindow) && (!bbIsShown()))
+      {
+       bbtkBlackBoxDebugMessage("widget",3,"==> QtBlackBox::bbShowWindow()"
+                        <<std::endl);
+       if (bbGetInputWinDialog()) 
+         {
+           bbmWindow->updateGeometry();
+           ((QDialog*)bbmWindow)->exec();
+           bbDestroyWindow();  
+         }
+       else
+         {
+           bbmWindow->updateGeometry();
+           ((QDialog*)bbmWindow)->exec();
+           bbSetShown(true);
+         } 
+    }
+  }
+  //==================================================================    
+
+  //==================================================================    
+  void QtBlackBox::bbDestroyWindow()
+  {
+    bbtkBlackBoxDebugMessage("widget",3,"==> QtBlackBox::bbDestroyWindow("<<bbmWindow<<")"<<std::endl);
+    if (bbGetWindow()!=NULL) 
+      {
+       //       wxWindow* w = bbGetWindow();
+       //bbSetWindow(0);
+       // WE SHOULD DESTROY THE WINDOW WITH THE Close METHOD
+       // HOWEVER I
+       //w->Close(true);
+       //
+       delete bbGetWindow();
+       bbSetShown(false);
+      }
+    bbtkBlackBoxDebugMessage("widget",3,"<== QtBlackBox::bbDestroyWindow("<<bbmWindow<<")"<<std::endl);
+
+  }
+  //==================================================================    
+
   //==================================================================
   //  void QtBlackBox::InitWindowManagerIfNeeded() { Qt::
   void QtBlackBox::IncNbWindowsAlive() { Qt::IncNbWindowsAlive(); }