]> Creatis software - creaImageIO.git/blob - src/creaImageIOWxGimmickPanel.cpp
a11e0a306c6ff0d52616c2f36b65e668bc500a9c
[creaImageIO.git] / src / creaImageIOWxGimmickPanel.cpp
1 #include <creaImageIOWxGimmickPanel.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   WxGimmickPanel::WxGimmickPanel(wxWindow *parent, 
11                                  wxWindowID id,
12                                  const wxPoint& pos,
13                                  const wxSize& size,
14                                  const std::string i_namedescp, 
15                                  const std::string i_namedb,
16                                  int threads)
17  :   wxPanel( parent, 
18               id, 
19               pos,
20               size,
21               wxRESIZE_BORDER | 
22               wxSYSTEM_MENU   |
23               wxCLOSE_BOX     |
24               wxMAXIMIZE_BOX  | 
25               wxMINIMIZE_BOX  | 
26               wxCAPTION  
27               ),
28      //mGimmick(0),
29      mView(0)
30   {
31     GimmickDebugMessage(1,"WxGimmickPanel::WxGimmickPanel"
32                         <<std::endl);
33     wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL);
34     
35     try {
36             mGimmick = boost::shared_ptr<Gimmick>(new Gimmick());
37             mGimmick->Initialize(i_namedescp,i_namedb);
38             int min_dim = GIMMICK_2D_IMAGE_SELECTION;
39             int max_dim = GIMMICK_3D_IMAGE_SELECTION;
40             mView = new WxGimmickView(mGimmick,
41                                 this,
42                                 -1,
43                                 wxDefaultPosition,
44                                 size,
45                                 min_dim,
46                                 max_dim,
47                                 threads);
48             mView->Initialize();
49           // Connect the AddProgress callback
50             mView->ConnectValidationObserver ( boost::bind( &WxGimmickPanel::OnSelectedImage , this, _1 ) );
51     }
52     catch (crea::Exception e)
53     {
54       e.Print();
55       return;
56     }
57
58     topsizer->Add( mView,1,wxGROW,0);
59
60     SetSizer( topsizer );     
61     Layout(); 
62   }
63
64   /// Destructor
65   WxGimmickPanel::~WxGimmickPanel()
66   {
67     GimmickDebugMessage(1,"WxGimmickPanel::~WxGimmickPanel"
68                         <<std::endl);
69     if (mView) 
70       {
71         delete mView;
72       }
73     if (mGimmick) 
74       {
75         mGimmick->Finalize();
76       }
77   }
78   
79 //======================================================================
80   
81 //====================================================================== 
82   
83   ///Callback method on a selection
84   void WxGimmickPanel::OnSelectedImage(bool t)
85   {
86       mSendImageSignal(t);
87   }
88
89   void WxGimmickPanel::AddImagesToDB(std::string dir)
90   {
91       mView->AddDir(dir);
92   }
93
94   //================================================================
95   //  BEGIN_EVENT_TABLE(WxGimmickPanel, wxDialog)
96   //    END_EVENT_TABLE()
97   //================================================================
98
99
100   //====================================================================
101
102   //====================================================================
103   void WxGimmickPanel::ConnectSendImageObserver(SendImageCallbackType callback)
104   {
105       mSendImageSignal.connect(callback);
106   }
107
108 } // EO namespace creaImageIO
109
110