]> Creatis software - creaImageIO.git/blobdiff - src/creaImageIOWxGimmickPanel.cpp
move directory
[creaImageIO.git] / src / creaImageIOWxGimmickPanel.cpp
diff --git a/src/creaImageIOWxGimmickPanel.cpp b/src/creaImageIOWxGimmickPanel.cpp
new file mode 100644 (file)
index 0000000..2b2ebb9
--- /dev/null
@@ -0,0 +1,111 @@
+#include <creaImageIOWxGimmickPanel.h>
+#include <creaImageIOSystem.h>
+#include <creaImageIOGimmick.h>
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+namespace creaImageIO
+{
+  // CTor
+  WxGimmickPanel::WxGimmickPanel(wxWindow *parent, 
+                                              wxWindowID id,
+                                              const wxPoint& pos,
+                                              const wxSize& size,
+                                                  const std::string i_namedescp , 
+                                                  const std::string i_namedb ,
+                                              int threads)
+ :   wxPanel( parent, 
+                 id, 
+                 pos,
+                 size,
+                 wxRESIZE_BORDER | 
+             wxSYSTEM_MENU  |
+                 wxCLOSE_BOX |
+                 wxMAXIMIZE_BOX | 
+                 wxMINIMIZE_BOX | 
+                 wxCAPTION  
+              ),
+     //mGimmick(0),
+     mView(0)
+  {
+    GimmickDebugMessage(1,"WxGimmickPanel::WxGimmickPanel"
+                       <<std::endl);
+    wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL);
+    
+    try {
+      
+               mGimmick = boost::shared_ptr<Gimmick>(new Gimmick());
+               mGimmick->Initialize(i_namedescp,i_namedb);
+      int min_dim = GIMMICK_2D_IMAGE_SELECTION;
+         int max_dim = GIMMICK_3D_IMAGE_SELECTION;
+      mView = new WxGimmickView(mGimmick,
+                               this,
+                               -1,
+                               wxDefaultPosition,
+                               size,
+                               min_dim,
+                               max_dim,
+                               threads);
+      mView->Initialize();
+         // Connect the AddProgress callback
+      mView->ConnectValidationObserver ( boost::bind( &WxGimmickPanel::OnSelectedImage , this, _1 ) );
+    }
+    catch (crea::Exception e)
+    {
+      e.Print();
+      return;
+    }
+
+    topsizer->Add( mView,1,wxGROW,0);
+
+    SetSizer( topsizer );     
+    Layout(); 
+  }
+
+  /// Destructor
+  WxGimmickPanel::~WxGimmickPanel()
+  {
+    GimmickDebugMessage(1,"WxGimmickPanel::~WxGimmickPanel"
+                       <<std::endl);
+    if (mView) 
+      {
+       delete mView;
+      }
+    if (mGimmick) 
+      {
+       mGimmick->Finalize();
+      }
+  }
+  
+//======================================================================
+  
+//====================================================================== 
+  
+  ///Callback method on a selection
+  void WxGimmickPanel::OnSelectedImage(bool t)
+  {
+               mSendImageSignal(t);
+  }
+
+  void WxGimmickPanel::AddImagesToDB(std::string dir)
+  {
+      mView->AddDir(dir);
+  }
+
+  //================================================================
+  //  BEGIN_EVENT_TABLE(WxGimmickPanel, wxDialog)
+  //    END_EVENT_TABLE()
+  //================================================================
+
+
+  //====================================================================
+
+  //====================================================================
+  void WxGimmickPanel::ConnectSendImageObserver(SendImageCallbackType callback)
+  {
+    mSendImageSignal.connect(callback);
+  }
+
+} // EO namespace creaImageIO
+
+