]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWxBlackBox.cxx
=== MAJOR RELEASE ====
[bbtk.git] / kernel / src / bbtkWxBlackBox.cxx
index 6a452f3c3350dfb3d60fb03dd035511b26581677..2413e4a55aba8e69c9e067adafb05c2db8b156db 100644 (file)
@@ -3,8 +3,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbtkWxBlackBox.cxx,v $
   Language:  C++
-  Date:      $Date: 2008/04/08 06:59:30 $
-  Version:   $Revision: 1.11 $
+  Date:      $Date: 2008/04/18 12:59:16 $
+  Version:   $Revision: 1.12 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -48,7 +48,7 @@ namespace bbtk
 
 
   //=========================================================================
-  WxBlackBoxWindow::WxBlackBoxWindow(WxBlackBox* box)
+  WxBlackBoxWindow::WxBlackBoxWindow(WxBlackBox::Pointer box)
     : mBox(box), mShown(false)
   {
     bbtkDebugMessage("Wx",9,"WxBlackBoxWindow::WxBlackBoxWindow("<<
@@ -109,7 +109,7 @@ namespace bbtk
   //=========================================================================
 
   //=========================================================================
-  WxBlackBoxDialog::WxBlackBoxDialog(WxBlackBox* box,
+  WxBlackBoxDialog::WxBlackBoxDialog(WxBlackBox::Pointer box,
                                     wxWindow *parent,
                                     wxString title,
                                     wxSize size)
@@ -177,7 +177,7 @@ namespace bbtk
   //=========================================================================
 
   //=========================================================================
-  WxBlackBoxFrame::WxBlackBoxFrame(WxBlackBox* box,
+  WxBlackBoxFrame::WxBlackBoxFrame(WxBlackBox::Pointer box,
                                   wxWindow *parent,
                                   wxString title,
                                   wxSize size)
@@ -324,8 +324,9 @@ namespace bbtk
   //=========================================================================
 
   //=========================================================================
-  WxBlackBoxWidgetEventHandler::WxBlackBoxWidgetEventHandler( WxBlackBox* box, 
-                                                             wxWindow *widget )
+  WxBlackBoxWidgetEventHandler::
+  WxBlackBoxWidgetEventHandler( WxBlackBox::Pointer box, 
+                               wxWindow *widget )
     :
     mBox(box),
     mWindow(widget)
@@ -422,7 +423,7 @@ namespace bbtk
   //=========================================================================
   //=========================================================================
   //=========================================================================
-  BBTK_USER_BLACK_BOX_IMPLEMENTATION(WxBlackBox,AtomicBlackBox);
+  BBTK_BLACK_BOX_IMPLEMENTATION(WxBlackBox,AtomicBlackBox);
   //=========================================================================
   
   //=========================================================================
@@ -513,7 +514,7 @@ namespace bbtk
                         "-> Output 'Widget' connected : transfering execution to parent"
                         <<std::endl);
        
-       i->second->GetConnectionVector().front()
+       i->second->GetConnectionVector().front().lock()
          ->GetBlackBoxTo()->bbExecute(force);
 
       }
@@ -533,7 +534,7 @@ namespace bbtk
 
   //=========================================================================
   /// Main processing method of the box.
-  IOStatus WxBlackBox::bbBackwardUpdate( Connection* caller )
+  IOStatus WxBlackBox::bbBackwardUpdate( Connection::Pointer caller )
   {
     bbtkDebugMessageInc("Process",1,
                        "=> WxBlackBox::bbBackwardUpdate("
@@ -564,7 +565,7 @@ namespace bbtk
                             "-> Output 'Widget' connected : transfering execution to parent"
                             <<std::endl);
            
-           i->second->GetConnectionVector().front()
+           i->second->GetConnectionVector().front().lock()
              ->GetBlackBoxTo()->bbExecute(false);
            done = true;
          }
@@ -609,7 +610,8 @@ namespace bbtk
            bbtkDebugMessage("Process",3,
                             "-> No widget event handler : creating one"
                             <<std::endl);
-           new WxBlackBoxWidgetEventHandler(this,bbGetOutputWidget());
+           new WxBlackBoxWidgetEventHandler(GetThisPointer<WxBlackBox>(),
+                                            bbGetOutputWidget());
          }
        else if ( ! bbGetWidgetEventHandler()->IsHandlerOf 
                  ( bbGetOutputWidget() ) )
@@ -618,7 +620,8 @@ namespace bbtk
                             "-> Obsolete widget event handler : re-creating one"
                             <<std::endl);
            delete bbGetWidgetEventHandler();
-           new WxBlackBoxWidgetEventHandler(this,bbGetOutputWidget());
+           new WxBlackBoxWidgetEventHandler(GetThisPointer<WxBlackBox>(),
+                                            bbGetOutputWidget());
          }
        // Sets the name of the wxWindow to the input WinTitle
        bbGetOutputWidget()->SetName(bbtk::std2wx(bbGetInputWinTitle()));
@@ -661,7 +664,7 @@ namespace bbtk
            bbtkDebugMessage("Process",2,
                             "   Input WinDialog set to true : creating a Dialog"
                             <<std::endl);
-           show = (Window*) new WxBlackBoxDialog( this,
+           show = (Window*) new WxBlackBoxDialog( GetThisPointer<WxBlackBox>(),
                                                   bbGetWxParent(), 
                                                   std2wx( bbGetInputWinTitle() + " - bbtk (c) CREATIS LRMN"),
                                                   wxSize( bbGetInputWinWidth() , bbGetInputWinHeight() ) );
@@ -672,7 +675,7 @@ namespace bbtk
            bbtkDebugMessage("Process",2,
                             "   Input WinDialog set to false : creating a Frame"
                             <<std::endl);
-           show = (Window*) new WxBlackBoxFrame( this,
+           show = (Window*) new WxBlackBoxFrame( GetThisPointer<WxBlackBox>(),
                                                  bbGetWxParent(), 
                                                  std2wx( bbGetInputWinTitle()  + " - bbtk (c) CREATIS LRMN"),
                                                  wxSize( bbGetInputWinWidth() , bbGetInputWinHeight() ) );
@@ -730,8 +733,9 @@ namespace bbtk
       = bbGetOutputConnectorMap().find("Widget");
     if ( i->second->GetConnectionVector().size() != 0 ) 
       {
-       return ((WxBlackBox*)i->second->GetConnectionVector().front()
-               ->GetBlackBoxTo())->bbGetContainingWindow();
+       return boost::static_pointer_cast<WxBlackBox>
+         (i->second->GetConnectionVector().front().lock()->GetBlackBoxTo())
+         ->bbGetContainingWindow();
       }
     return 0;
   }