]> Creatis software - creaImageIO.git/blob - src2/creaImageIOWxGimmickPanel.cpp
e317bcbe869f928734194b8de77a86be4399d83f
[creaImageIO.git] / src2 / creaImageIOWxGimmickPanel.cpp
1 #include <creaImageIOWxGimmickPanel.h>
2 #include <creaImageIOSystem.h>
3
4 namespace creaImageIO
5 {
6   // CTor
7   WxGimmickPanel::WxGimmickPanel(wxWindow *parent, 
8                                                wxWindowID id,
9                                                const wxPoint& pos,
10                                                const wxSize& size,
11                                                    const std::string i_namedescp , 
12                                                    const std::string i_namedb ,
13                                                int threads)
14  :   wxPanel( parent, 
15                   id, 
16                   pos,
17                   size,
18                   wxRESIZE_BORDER | 
19               wxSYSTEM_MENU  |
20                   wxCLOSE_BOX |
21                   wxMAXIMIZE_BOX | 
22                   wxMINIMIZE_BOX | 
23                   wxCAPTION  
24                ),
25   //   mGimmick(0),
26      mView(0)
27   {
28     GimmickDebugMessage(1,"WxGimmickPanel::WxGimmickPanel"
29                         <<std::endl);
30     wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL);
31     
32     try {
33       
34                 mGimmick = boost::shared_ptr<Gimmick>(new Gimmick());
35           mGimmick->Initialize(i_namedescp,i_namedb);
36      
37       int min_dim = GIMMICK_2D_IMAGE_SELECTION;
38           int max_dim = GIMMICK_3D_IMAGE_SELECTION;
39       mView = new WxGimmickView(mGimmick,
40                                 this,
41                                 -1,
42                                 wxDefaultPosition,
43                                 size,
44                                 min_dim,
45                                 max_dim,
46                                 threads);
47       mView->Initialize();
48           // Connect the AddProgress callback
49       mView->ConnectValidationObserver ( boost::bind( &WxGimmickPanel::OnSelectedImage , this, _1 ) );
50     }
51     catch (crea::Exception e)
52     {
53       e.Print();
54       return;
55     }
56
57     topsizer->Add( mView,1,wxGROW,0);
58
59     SetSizer( topsizer );     
60     Layout(); 
61   }
62
63   /// Destructor
64   WxGimmickPanel::~WxGimmickPanel()
65   {
66     GimmickDebugMessage(1,"WxGimmickPanel::~WxGimmickPanel"
67                         <<std::endl);
68     if (mView) 
69       {
70         delete mView;
71       }
72     if (mGimmick) 
73       {
74         mGimmick->Finalize();
75 //      delete mGimmick;
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