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