]> Creatis software - bbtk.git/blobdiff - kernel/src/bbtkWxGUIPackageBrowser2.cxx
#3203 BBTK Feature New Normal - vtk7itk4wx3-mingw64
[bbtk.git] / kernel / src / bbtkWxGUIPackageBrowser2.cxx
index 7fde9202edb143b53f2088bb449f33ec76bd1736..0193bb3a55ec8145d9d18a2f6618b2e255c2b12a 100644 (file)
@@ -1,32 +1,39 @@
+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ #                        pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ #  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.
+ # ------------------------------------------------------------------------ */
+
+
 /*=========================================================================
   Program:   bbtk
   Module:    $RCSfile: bbtkWxGUIPackageBrowser2.cxx,v $
   Language:  C++
-  Date:      $Date: 2010/10/11 06:30:33 $
-  Version:   $Revision: 1.24 $
+  Date:      $Date: 2012/11/16 08:49:01 $
+  Version:   $Revision: 1.27 $
 =========================================================================*/
 
-/* ---------------------------------------------------------------------
-
-* 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
  *
@@ -98,16 +105,19 @@ namespace bbtk
     EVT_RIGHT_DOWN(WxGUIBlackBoxList::OnRightClick)
     END_EVENT_TABLE()
 
-  int wxCALLBACK MyCompareFunction(long item1, long item2, long WXUNUSED(sortData))
-  {
+int wxCALLBACK MyCompareFunction(long item1, long item2, long WXUNUSED(sortData))
+{
     // inverse the order
     if (item1 < item2)
-      return -1;
+       {
+        return -1;
+       }
     if (item1 > item2)
-      return 1;
-
+       {
+        return 1;
+       }
     return 0;
-  }
+}
 
   // WxGUIBlackBoxList
   WxGUIBlackBoxList::WxGUIBlackBoxList(wxWindow *parent,
@@ -123,15 +133,15 @@ namespace bbtk
     EnableContextMenu();
 #endif
   }
-
+  
   void WxGUIBlackBoxList::Insert(BlackBoxDescriptor::Pointer d)
   {
     if (GetColumnCount()!=3)
       {
        InsertColumn( 0, _("Package"),
-                     wxLIST_FORMAT_LEFT, 60  );
+                     wxLIST_FORMAT_LEFT, 90  );
        InsertColumn( 1, _("Box"),
-                     wxLIST_FORMAT_LEFT, 200 );
+                     wxLIST_FORMAT_LEFT, 150 );
        InsertColumn( 2, _("Description"),
                      wxLIST_FORMAT_LEFT, 500  );
       }
@@ -160,6 +170,7 @@ namespace bbtk
     */
   }
 
+  
 
   void WxGUIBlackBoxList::OnCacheHint(wxListEvent& event)
   {
@@ -257,7 +268,9 @@ namespace bbtk
                  BlackBoxDescriptor* d = (BlackBoxDescriptor*)(info.GetData());
                  if (d!=0)
                  {
-                         sendtext += crea::std2wx(d->GetFullTypeName());
+                     //DFGO -> To identify it is a box
+                     sendtext += crea::std2wx("box:");
+                     sendtext += crea::std2wx(d->GetFullTypeName());
                  }
          }
          else
@@ -597,6 +610,7 @@ namespace bbtk
   //================================================================
   WxGUIBlackBoxInfo::WxGUIBlackBoxInfo(wxWindow* parent)
     :
+//    wxPanel(parent, -1,wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE),
     wxPanel(parent, -1),
     mDescriptor()
   {
@@ -611,9 +625,7 @@ namespace bbtk
     mCategory = new wxStaticText(this,-1,_T(""));
     sizer->Add(mCategory,0,wxGROW);
 
-    wxBoxSizer *inputs =
-      new wxStaticBoxSizer
-      ( new wxStaticBox(this, wxID_ANY, _T("Inputs")), wxVERTICAL );
+    wxBoxSizer *inputs = new wxStaticBoxSizer ( new wxStaticBox(this, wxID_ANY, _T("Inputs")), wxVERTICAL );
     mInputList = new wxListCtrl(this, -1,
                                wxDefaultPosition,
                                wxDefaultSize,
@@ -623,24 +635,35 @@ namespace bbtk
     inputs->Add(mInputList,1,wxGROW);
     sizer->Add(inputs,1,wxGROW);
 
-    wxBoxSizer *outputs =
-      new wxStaticBoxSizer
-      ( new wxStaticBox(this, wxID_ANY, _T("Outputs")), wxVERTICAL );
+    wxBoxSizer *outputs = new wxStaticBoxSizer ( new wxStaticBox(this, wxID_ANY, _T("Outputs")), wxVERTICAL );
     mOutputList = new wxListCtrl(this, -1,
                                 wxDefaultPosition,
                                 wxDefaultSize,
                                 wxLC_REPORT //wxLC_LIST
-                                | wxSUNKEN_BORDER);
+                                | wxBORDER_SUNKEN);
+//                              | wxFULL_REPAINT_ON_RESIZE | wxVSCROLL);
 
     outputs->Add(mOutputList,1,wxGROW);
     sizer->Add(outputs,1,wxGROW);
 
     SetSizer(sizer);
+//     sizer->FitInside(this); 
+       Connect( this->GetId(),   wxEVT_ERASE_BACKGROUND , (wxObjectEventFunction)   (void (WxGUIBlackBoxInfo::*)(wxEvent&))    &WxGUIBlackBoxInfo::OnEraseBackGround ); 
+
+       
     SetAutoLayout(true);
     Layout();
   }
   //================================================================
 
+  
+      void WxGUIBlackBoxInfo::OnEraseBackGround( wxEvent& )
+         {
+               mInputList->ClearBackground();
+               mOutputList->ClearBackground();
+         }
+
+
 
   //================================================================
   void WxGUIBlackBoxInfo::UpdateInfo(BlackBoxDescriptor* descr)
@@ -795,6 +818,17 @@ namespace bbtk
       id_fc3
     };
 
+  //================================================================
+  void WxGUIPackageBrowser2::OnEraseBackGround( wxEvent& )
+  {
+       mBoxList->ClearBackground();
+       ClearBackground();
+       Refresh();
+//     Update();
+  }
+  //================================================================
+    
+       
   //================================================================
   WxGUIPackageBrowser2::WxGUIPackageBrowser2( wxWindow *parent,
                                              WxGUIPackageBrowser2User* user )
@@ -812,8 +846,10 @@ namespace bbtk
                                     wxLC_REPORT //wxLC_LIST
                                     | wxSUNKEN_BORDER);
     mBoxList->SetUser(this);
-    mBoxList->SetBackgroundColour(*wxWHITE);
 
+       Connect( GetId(),   wxEVT_SIZE , (wxObjectEventFunction)   (void (WxGUIPackageBrowser2::*)(wxEvent&))    &WxGUIPackageBrowser2::OnEraseBackGround ); 
+
+// JGRR & CM DISABLED CLOSE BUTTON
     m_mgr.AddPane(mBoxList,
                  wxAuiPaneInfo().Name(wxT("BoxList"))
                  .Caption(wxT("Black Boxes"))
@@ -821,19 +857,22 @@ namespace bbtk
                  .MaximizeButton(true)
                  .Center()
                  .MinSize(wxSize(100,100))
+                 .CloseButton(false)
                  );
     //    sizer->Add(mBoxList,5,wxGROW);
 
     mBoxInfo = new WxGUIBlackBoxInfo(this);
     //    sizer->Add(mBoxInfo,3,wxGROW);
 
+// JGRR & CM DISABLED CLOSE BUTTON
     m_mgr.AddPane(mBoxInfo,
                  wxAuiPaneInfo().Name(wxT("Box"))
                  .Caption(wxT(""))
                  .MinimizeButton(true)
                  .MaximizeButton(true)
                  .Bottom()
-                 .MinSize(wxSize(100,300))
+                 .MinSize(wxSize(100,200))
+                 .CloseButton(false)
                  );
 
     wxPanel* filters = new wxPanel(this,-1);
@@ -925,13 +964,16 @@ namespace bbtk
 
     filters->SetSizer(fsizer);
 
+// JGRR & CM DISABLED CLOSE BUTTON
     m_mgr.AddPane(filters,
                  wxAuiPaneInfo().Name(wxT("Filter"))
                  .Caption(wxT("Filter"))
                  .MinimizeButton(true)
                  .MaximizeButton(true)
-                 .Right()
-                 .MinSize(wxSize(100,100)) );
+                 .Left()
+                 .MinSize(wxSize(100,100)) 
+                 .CloseButton(false)
+);
 
     //    sizer->Add(fsizer,1,wxGROW);
     m_mgr.Update();
@@ -941,8 +983,9 @@ namespace bbtk
     Layout();
 
   }
-  //================================================================
+  
 
+  //================================================================
        Factory::Pointer WxGUIPackageBrowser2::GetFactory()
   {
     return mFactory;
@@ -1020,9 +1063,9 @@ namespace bbtk
   //================================================================
   void WxGUIPackageBrowser2::RebuildList()
   {
-    mBoxList->Hide();
+//    mBoxList->Hide();
     mBoxList->ClearAll();
-
+    mBoxList->ClearBackground();
     const Factory::PackageMapType& M = mFactory->GetPackageMap();
     Factory::PackageMapType::const_iterator i;
     for (i=M.begin();i!=M.end();++i)