]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWxGUIPackageBrowser2.cxx
drag and drop send package and box names
[bbtk.git] / kernel / src / bbtkWxGUIPackageBrowser2.cxx
index 462c40dac2e732b8a8d75cc1eebd3fe052e10858..e4a688e8bc65df133e33be0b386ec185ef7f3fb1 100644 (file)
@@ -1,25 +1,40 @@
-/*=========================================================================
-                                                                                
-Program:   bbtk
-Module:    $RCSfile: bbtkWxGUIPackageBrowser2.cxx,v $
-Language:  C++
-Date:      $Date: 2008/07/23 11:46:11 $
-Version:   $Revision: 1.10 $
-                                                                                
-Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
-l'Image). All rights reserved. See Doc/License.txt or
-http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details.
-                                                                                
-This software is distributed WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.  See the above copyright notices for more information.
-                                                                                
-=========================================================================*//**
-                                                                           * \brief Short description in one line
-                                                                           * 
-                                                                           * Long description which 
-                                                                           * can span multiple lines
-                                                                           */
+/*=========================================================================                                                                               
+  Program:   bbtk
+  Module:    $RCSfile: bbtkWxGUIPackageBrowser2.cxx,v $
+  Language:  C++
+  Date:      $Date: 2010/03/29 16:07:15 $
+  Version:   $Revision: 1.17 $
+=========================================================================*/
+
+/* ---------------------------------------------------------------------
+
+* 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.
+* ------------------------------------------------------------------------ */                                                                         
+
+
+/* \brief Short description in one line
+ * 
+ * Long description which 
+ * can span multiple lines
+ */
 /**
  * \file 
  * \brief 
@@ -229,6 +244,31 @@ namespace bbtk
 
   void WxGUIBlackBoxList::OnBeginDrag(wxListEvent& event)
   {
+         std::cout<<"RaC DRAG TABLE"<<std::endl;
+         wxString text(wxT(this->GetItemText(event.GetIndex())));
+         wxListItem info;
+         info.m_itemId = event.m_itemIndex;
+         info.m_col = 0;
+         info.m_mask = wxLIST_MASK_DATA;
+         wxString sendtext(wxT(""));
+         if ( GetItem(info) )
+         {
+                 // TO DO : STORE SMART PTR ?
+                 BlackBoxDescriptor* d = (BlackBoxDescriptor*)(info.GetData());
+                 if (d!=0)
+                 {
+                         sendtext += wxT(d->GetFullTypeName());
+                 }
+         }
+         else
+         {
+                 wxFAIL_MSG(wxT("wxListCtrl::GetItem() failed"));
+         }
+
+       
+         wxTextDataObject tdo(wxT(sendtext));
+         wxDropSource tds(tdo, this);
+         tds.DoDragDrop();
     //    const wxPoint& pt = event.m_pointDrag;
 
     //wxLogMessage( wxT("OnBeginDrag at (%d, %d), item %ld."),
@@ -922,12 +962,24 @@ namespace bbtk
   void WxGUIPackageBrowser2::WxGUIBlackBoxListUserOnSelected
   ( BlackBoxDescriptor* d)
   {
+       //RaC
+       _actualSelected=d;
+
     mBoxInfo->UpdateInfo(d);
     std::string title = d->GetPackage()->GetName()+"::"+d->GetTypeName();
     m_mgr.GetPane(mBoxInfo).Caption(std2wx(title));
     m_mgr.Update();
   }
   
+  //================================================================
+
+  //================================================================
+  BlackBoxDescriptor* WxGUIPackageBrowser2::GetActualSelected()
+  {
+         return _actualSelected;
+  }
+
+
   //================================================================
 
   //================================================================
@@ -946,6 +998,7 @@ namespace bbtk
     if (!mInterpreter) mInterpreter =bbtk::Interpreter::New();
     mInterpreter->SetCommandLine(true);
     std::stringstream* buf = new std::stringstream;
+    *buf << "exec freeze_no_error" << std::endl;
     *buf << "message max 0" << std::endl; 
     *buf << "include *" << std::endl;
     mInterpreter->InterpretBuffer(buf);
@@ -961,6 +1014,7 @@ namespace bbtk
     mFactory = F;
     RebuildList();
   }  
+
   //================================================================
 
   //================================================================
@@ -976,9 +1030,9 @@ namespace bbtk
        Package::Pointer P = i->second;
        if (P->GetName() == "user") continue;
        
-       Package::BlackBoxMapType::iterator j;
-       for (j=P->GetBlackBoxMap().begin();
-            j!=P->GetBlackBoxMap().end();
+       Package::DescriptorMapType::iterator j;
+       for (j=P->GetDescriptorMap().begin();
+            j!=P->GetDescriptorMap().end();
             ++j)
          {
            //      std::cout << "Insert "<<j->second->GetTypeName()<<std::endl;