]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOWxGimmickReaderDialog.cpp
correction of infinity loop at starting
[creaImageIO.git] / src2 / creaImageIOWxGimmickReaderDialog.cpp
index c12cd066b3998975b3656588b4bd730b629feb61..bdf1f6687c34e65ccc308f1042d2e6eb7a652c81 100644 (file)
@@ -1,17 +1,27 @@
 #include <creaImageIOWxGimmickReaderDialog.h>
 #include <creaImageIOSystem.h>
+#include <creaImageIOGimmick.h>
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#ifdef _RELWITHDEBINFO
+#define new DEBUG_NEW
+#endif
 
 namespace creaImageIO
 {
   // CTor
   WxGimmickReaderDialog::WxGimmickReaderDialog(wxWindow *parent, 
                                               wxWindowID id,
+                                              const std::string i_namedescp, 
+                                              const std::string i_namedb,
                                               wxString title,
                                               const wxPoint& pos,
                                               const wxSize& size,
                                               int min_dim,
-                                                  int max_dim,
-                                                  int out_dim,
+                                              int max_dim,
+                                              int output_dim,  // never used ?!? // JPR
                                               int threads)
  :   wxDialog( parent, 
                  id, 
@@ -19,25 +29,24 @@ namespace creaImageIO
                  pos,
                  size,
                  wxRESIZE_BORDER | 
-                 wxSYSTEM_MENU  |
-                 wxCLOSE_BOX |
-                 wxMAXIMIZE_BOX | 
-                 wxMINIMIZE_BOX | 
+                 wxSYSTEM_MENU   |
+                 wxCLOSE_BOX     |
+                 wxMAXIMIZE_BOX  
+                 wxMINIMIZE_BOX  
                  wxCAPTION  
               ),
    mGimmick(0),
//   mGimmick(0),
      mView(0)
   {
     GimmickDebugMessage(1,"WxGimmickReaderDialog::WxGimmickReaderDialog"
                        <<std::endl);
     wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL);
-    
+
     try {
-      
-      mGimmick = new Gimmick();
-      mGimmick->Initialize();
-     
-      
+
+         mGimmick = boost::shared_ptr<Gimmick>(new Gimmick());
+      mGimmick->Initialize(i_namedescp,i_namedb);
+
       mView = new WxGimmickView(mGimmick,
                                this,
                                TVID,
@@ -45,9 +54,11 @@ namespace creaImageIO
                                size,
                                min_dim,
                                max_dim,
-                               out_dim,
                                threads);
       mView->Initialize();
+          // Connect the AddProgress callback
+      mView->ConnectValidationObserver
+               ( boost::bind( &WxGimmickReaderDialog::OnValid , this, _1 ) );
     }
     catch (crea::Exception e)
     {
@@ -57,15 +68,20 @@ namespace creaImageIO
 
     topsizer->Add( mView,1,wxGROW,0);
 
-    wxSizer* bsizer = CreateSeparatedButtonSizer(wxOK|wxCANCEL);
-    mOkButton = (wxButton*)FindWindowById(GetAffirmativeId(), this);
-    mCancelButton = (wxButton*)FindWindowById(GetEscapeId(), this);
-    
+    wxSizer* bsizer = this->CreateSeparatedButtonSizer(wxOK|wxCANCEL);
+       /*mOkButton = new wxButton(this, wxID_OK, _T("OK"), wxPoint(170,50));
+       mCancelButton = new wxButton(this, wxID_CANCEL, _T("CANCEL"), wxPoint(210,50));
+       */      mOkButton = (wxButton*)FindWindowById(GetAffirmativeId(), this);
+    mCancelButton = (wxButton*)FindWindowById(GetEscapeId(),      this);
+
     mOkButton->Enable(false);
 
-    topsizer->Add ( bsizer, 0, wxGROW );
+topsizer->Add(mOkButton, 0, wxGROW);
+topsizer->Add(mCancelButton, 0, wxGROW);
+   topsizer->Add ( bsizer, 0, wxGROW );
 
     SetSizer( topsizer );     
     Layout(); 
   }
 
@@ -76,33 +92,24 @@ namespace creaImageIO
                        <<std::endl);
     if (mView) 
       {
-       delete mView;
+        delete mView;
       }
     if (mGimmick) 
       {
-       mGimmick->Finalize();
-       delete mGimmick;
+               mGimmick->Finalize();
       }
   }
 
   ///Callback method on a selection
-  void WxGimmickReaderDialog::OnValid(wxCommandEvent& event)
+  void WxGimmickReaderDialog::OnValid(bool t)
   {
-          if (event.GetInt()==0)
-          {mOkButton->Enable(true);}
-          else
-          {mOkButton->Enable(false);}
+    mOkButton->Enable(t);
   }
 
-
-  
   //================================================================
-  BEGIN_EVENT_TABLE(WxGimmickReaderDialog, wxDialog)
-       EVT_COMMAND(wxID_ANY, 0, WxGimmickReaderDialog::OnValid) 
-  END_EVENT_TABLE()
+  //BEGIN_EVENT_TABLE(WxGimmickReaderDialog, wxDialog)
+  //END_EVENT_TABLE()
   //================================================================
 
-
 } // EO namespace creaImageIO
 
-