]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxGimmickReaderDialog.cpp
4823d40bf665627e8743053dd0dc17850e6ef0c6
[creaImageIO.git] / src / creaImageIOWxGimmickReaderDialog.cpp
1 #include <creaImageIOWxGimmickReaderDialog.h>
2 #include <creaImageIOSystem.h>
3 #include <creaImageIOGimmick.h>
4 #ifdef _DEBUG
5 #define new DEBUG_NEW
6 #endif
7 namespace creaImageIO
8 {
9   // CTor
10   WxGimmickReaderDialog::WxGimmickReaderDialog(wxWindow *parent, 
11                                                wxWindowID id,
12                                                const std::string i_namedescp, 
13                                                const std::string i_namedb,
14                                                wxString title,
15                                                const wxPoint& pos,
16                                                const wxSize& size,
17                                                int min_dim,
18                                                int max_dim,
19                                                int output_dim,  // never used ?!? // JPR
20                                                int threads)
21  :   wxDialog( parent, 
22                   id, 
23                   title,
24                   pos,
25                   size,
26                   wxRESIZE_BORDER | 
27                   wxSYSTEM_MENU   |
28                   wxCLOSE_BOX     |
29                   wxMAXIMIZE_BOX  | 
30                   wxMINIMIZE_BOX  | 
31                   wxCAPTION  
32                ),
33  //   mGimmick(0),
34      mView(0)
35   {
36     GimmickDebugMessage(1,"WxGimmickReaderDialog::WxGimmickReaderDialog"
37                         <<std::endl);
38     mtopsizer = new wxBoxSizer(wxVERTICAL);
39
40     try {
41
42           mGimmick = boost::shared_ptr<Gimmick>(new Gimmick());
43       mGimmick->Initialize(i_namedescp,i_namedb);
44
45       mView = new WxGimmickView(mGimmick,
46                                 this,
47                                 TVID,
48                                 wxDefaultPosition,
49                                 size,
50                                 min_dim,
51                                 max_dim,
52                                 threads);
53       mView->Initialize();
54            // Connect the AddProgress callback
55       mView->ConnectValidationObserver
56                 ( boost::bind( &WxGimmickReaderDialog::OnValid , this, _1 ) );
57     }
58     catch (crea::Exception e)
59     {
60       e.Print();
61       return;
62     }
63
64     mtopsizer->Add( mView,1,wxGROW,0);
65
66     wxSizer* bsizer = this->CreateSeparatedButtonSizer(wxOK|wxCANCEL);
67         /*mOkButton = new wxButton(this, wxID_OK, _T("OK"), wxPoint(170,50));
68         mCancelButton = new wxButton(this, wxID_CANCEL, _T("CANCEL"), wxPoint(210,50));
69         */      mOkButton = (wxButton*)FindWindowById(GetAffirmativeId(), this);
70     mCancelButton = (wxButton*)FindWindowById(GetEscapeId(),      this);
71
72     mOkButton->Enable(false);
73     mtopsizer->Add ( bsizer, 0, wxGROW );
74
75     SetSizer( mtopsizer );     
76  
77     Layout(); 
78   }
79
80   /// Destructor
81   WxGimmickReaderDialog::~WxGimmickReaderDialog()
82   {
83     GimmickDebugMessage(1,"WxGimmickReaderDialog::~WxGimmickReaderDialog"
84                         <<std::endl);
85     if (mView) 
86       {
87         delete mView;
88       }
89     if (mGimmick) 
90       {
91                 mGimmick->Finalize();
92       }
93
94   }
95
96   ///Callback method on a selection
97   void WxGimmickReaderDialog::OnValid(bool t)
98   {
99     mOkButton->Enable(t);
100   }
101
102   //================================================================
103   //BEGIN_EVENT_TABLE(WxGimmickReaderDialog, wxDialog)
104   //END_EVENT_TABLE()
105   //================================================================
106
107 } // EO namespace creaImageIO
108