]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxGimmickReaderDialog.cpp
bce7fc7f4ca08de141d1f1d87bd33b49d4e551e9
[creaImageIO.git] / src / creaImageIOWxGimmickReaderDialog.cpp
1 /*
2 # ---------------------------------------------------------------------
3 #
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
5 #                        pour la Santé)
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 #
10 #  This software is governed by the CeCILL-B license under French law and 
11 #  abiding by the rules of distribution of free software. You can  use, 
12 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
13 #  license as circulated by CEA, CNRS and INRIA at the following URL 
14 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
15 #  or in the file LICENSE.txt.
16 #
17 #  As a counterpart to the access to the source code and  rights to copy,
18 #  modify and redistribute granted by the license, users are provided only
19 #  with a limited warranty  and the software's author,  the holder of the
20 #  economic rights,  and the successive licensors  have only  limited
21 #  liability. 
22 #
23 #  The fact that you are presently reading this means that you have had
24 #  knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------
26 */
27
28
29 #include <creaImageIOWxGimmickReaderDialog.h>
30 #include <creaImageIOSystem.h>
31 #include <creaImageIOGimmick.h>
32 #ifdef _DEBUG
33 #define new DEBUG_NEW
34 #endif
35 namespace creaImageIO
36 {
37   // CTor
38   WxGimmickReaderDialog::WxGimmickReaderDialog(wxWindow *parent, 
39                                                wxWindowID id,
40                                                const std::string i_namedescp, 
41                                                const std::string i_namedb,
42                                                wxString title,
43                                                const wxPoint& pos,
44                                                const wxSize& size,
45                                                int min_dim,
46                                                int max_dim,
47                                                int output_dim,  // never used ?!? // JPR
48                                                int threads)
49  :   wxDialog( parent, 
50                   id, 
51                   title,
52                   pos,
53                   size,
54                   wxRESIZE_BORDER | 
55                   wxSYSTEM_MENU   |
56                   wxCLOSE_BOX     |
57                   wxMAXIMIZE_BOX  | 
58                   wxMINIMIZE_BOX  | 
59                   wxCAPTION  
60                ),
61  //   mGimmick(0),
62      mView(0)
63   {
64     GimmickDebugMessage(1,"WxGimmickReaderDialog::WxGimmickReaderDialog"
65                         <<std::endl);
66     mtopsizer = new wxBoxSizer(wxVERTICAL);
67
68     try {
69
70           mGimmick = boost::shared_ptr<Gimmick>(new Gimmick());
71       mGimmick->Initialize(i_namedescp,i_namedb);
72
73       mView = new WxGimmickView(mGimmick,
74                                 this,
75                                 TVID,
76                                 wxDefaultPosition,
77                                 size,
78                                 min_dim,
79                                 max_dim,
80                                 threads);
81       mView->Initialize();
82            // Connect the AddProgress callback
83       mView->ConnectValidationObserver
84                 ( boost::bind( &WxGimmickReaderDialog::OnValid , this, _1 ) );
85     }
86     catch (crea::Exception e)
87     {
88       e.Print();
89       return;
90     }
91
92     mtopsizer->Add( mView,1,wxGROW,0);
93
94     wxSizer* bsizer = this->CreateSeparatedButtonSizer(wxOK|wxCANCEL);
95         /*mOkButton = new wxButton(this, wxID_OK, _T("OK"), wxPoint(170,50));
96         mCancelButton = new wxButton(this, wxID_CANCEL, _T("CANCEL"), wxPoint(210,50));
97         */      mOkButton = (wxButton*)FindWindowById(GetAffirmativeId(), this);
98     mCancelButton = (wxButton*)FindWindowById(GetEscapeId(),      this);
99
100     mOkButton->Enable(false);
101     mtopsizer->Add ( bsizer, 0, wxGROW );
102
103     SetSizer( mtopsizer );     
104  
105     Layout(); 
106   }
107
108   /// Destructor
109   WxGimmickReaderDialog::~WxGimmickReaderDialog()
110   {
111     GimmickDebugMessage(1,"WxGimmickReaderDialog::~WxGimmickReaderDialog"
112                         <<std::endl);
113     if (mView) 
114       {
115         delete mView;
116       }
117     if (mGimmick) 
118       {
119                 mGimmick->Finalize();
120       }
121
122   }
123
124   ///Callback method on a selection
125   void WxGimmickReaderDialog::OnValid(bool t)
126   {
127     mOkButton->Enable(t);
128   }
129
130   //================================================================
131   //BEGIN_EVENT_TABLE(WxGimmickReaderDialog, wxDialog)
132   //END_EVENT_TABLE()
133   //================================================================
134
135 } // EO namespace creaImageIO
136