]> Creatis software - creaMaracasVisu.git/blob - lib/GUI/Wx/SurfaceRenderer/wxMaracasSurfaceRenderingPanel.h
85ac54d1f1524c9dfa72cc82966497661c7030f0
[creaMaracasVisu.git] / lib / GUI / Wx / SurfaceRenderer / wxMaracasSurfaceRenderingPanel.h
1 #ifndef WXMARACASSURFACERENDERINGPANEL_H_
2 #define WXMARACASSURFACERENDERINGPANEL_H_
3
4 #include "wx/wx.h"
5
6 class wxMaracasSurfaceRenderingPanel : public wxPanel{
7 public:
8         wxMaracasSurfaceRenderingPanel(wxWindow* parent, int propid, bool _isComplexBox, int _panID)
9                 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){
10                         createPanel();
11                         isComplexBox = _isComplexBox;
12                         panID = _panID;
13                         _propid = propid;
14         }       
15         //virtual ~wxMaracasSurfaceRenderingPanel();
16         virtual void createPanel(){
17                 show = false;
18         /*wxBoxSizer* sizerButtons = new wxBoxSizer(wxVERTICAL);
19
20                 wxButton* b = new wxButton(this, -1, wxString(_T("-")), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, 
21                                                                 wxDefaultValidator, wxString(_T("-"))); 
22                 Connect(b->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingPanel::onActionButtonPressedHide);
23                 wxButton* b1 = new wxButton(this, -1, wxString(_T("-")), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT, 
24                                                                 wxDefaultValidator, wxString(_T("x"))); 
25                 Connect(b1->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)&wxMaracasSurfaceRenderingPanel::onActionButtonPressedEliminate);
26
27                 sizerButtons->Add(b, wxFIXED_MINSIZE);
28                 sizerButtons->Add(b1, wxFIXED_MINSIZE);*/
29
30                 sizercontrols = new wxBoxSizer(wxVERTICAL);
31
32                 wxBoxSizer* sizerpanel = new wxBoxSizer(wxHORIZONTAL);
33
34                 //sizerpanel->Add(sizerButtons,wxGROW);
35                 sizerpanel->Add(sizercontrols,wxGROW);
36         
37                 this->SetSizer(sizerpanel, true);               
38                 this->SetAutoLayout( true );
39         }
40
41         /**
42         **      Adds a new control to the panel (sizer, radiob, etc)
43         **/
44         virtual void addControl(wxWindow* win){
45                 if(sizercontrols!=NULL){
46                         sizercontrols->Add(win, wxGROW);
47                 }
48         }
49
50         /**
51         **      Adds a new control to the panel (sizer, radiob, etc)
52         **/
53         virtual void addControl(wxSizer* sizer){
54                 if(sizercontrols!=NULL){
55                         sizercontrols->Add(sizer, wxGROW);
56                 }
57         }
58
59         /**
60         **      Hides or show the controls in the panel
61         **/
62         virtual void onActionButtonPressedHide( wxCommandEvent& event ){
63         /// \TODO : fix deprecated : wxListBase::operator wxList&() const is deprecated  // JPR
64                 wxList list = sizercontrols->GetChildren();             
65                 int i;
66                 for(i=0; i<(int)list.size();i++){
67                         sizercontrols->Show(i,show);
68                 }
69                 show = !show;
70                 sizercontrols->Layout();
71                 this->Layout();
72         }
73
74     /**
75         **      The user must implement this function to remove the panel from the 
76         **/
77         //virtual void onActionButtonPressedEliminate( wxCommandEvent& event )=0;
78
79         /**
80         **      The user must implement this function to add the necessary controls to the panel
81         **/
82         virtual void createControls( )=0;
83         
84         /**
85         ** returns the id of the panel
86         **/
87         int getPropId(){
88                 return _propid;
89         }
90
91         /**
92         ** Returns the papnel id
93         **/
94         int getPanId(){
95                 return panID;
96         }
97
98         /**
99         ** Tells if the panel is used for a complex box
100         **/
101         bool isComplex(){
102                 return isComplexBox;
103         }
104
105 private:
106         wxBoxSizer* sizercontrols;
107         bool show;
108 protected:
109         int _propid;
110         
111         //-- Atributes added for complex box --//
112         bool isComplexBox;
113         int panID;
114 };
115
116 #endif /*WXMARACASSURFACERENDERINGPANEL_H_*/