]> Creatis software - creaContours.git/blob - lib/Interface_Icons_NDimensions/interfToolsSpreadPanel.cxx
f00b780b3ae35dd87efecbc21b4a74586ec57922
[creaContours.git] / lib / Interface_Icons_NDimensions / interfToolsSpreadPanel.cxx
1 #include "interfToolsSpreadPanel.h"
2
3 interfToolsSpreadPanel::interfToolsSpreadPanel(wxWindow * parent, int sizex, int sizey,wxEvtHandler* evtHandler)        
4         : wxPanel(parent, -1, wxDefaultPosition, wxSize(sizex, sizey), wxBORDER_THEME){
5         wxFlexGridSizer* flexsizer = new wxFlexGridSizer(3,1,2,2);      
6         this->SetSizer(flexsizer, true);
7         this->SetAutoLayout( true );
8
9         resetbuttxt = initializeButton("data/Icons/reset.png", "Reset");
10
11         wxFlexGridSizer* flexsizer1 = new wxFlexGridSizer(1,2,2,2);     
12         radiobox = initializeRadioBox();
13         addremovecont = initializeAddRemoveContour();   
14         flexsizer1->Add(radiobox,wxFIXED_MINSIZE);
15         flexsizer1->Add(addremovecont,wxEXPAND | wxALIGN_CENTRE_VERTICAL);
16
17         gobuttxt = initializeButton("data/Icons/Go.png", "Go"); 
18
19         flexsizer->Add(resetbuttxt, wxFIXED_MINSIZE);
20         flexsizer->Add(flexsizer1, wxFIXED );
21         flexsizer->Add(gobuttxt, wxFIXED_MINSIZE);
22         
23         
24         this->Layout();
25         
26 }
27
28
29 interfToolsSpreadPanel::~interfToolsSpreadPanel()
30 {
31 }
32
33 wxPanel* interfToolsSpreadPanel::initializeRadioBox(){
34         wxPanel* panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
35         wxString lstOptions[3];
36         lstOptions[0]=_T("A");
37         lstOptions[1]=_T("B");
38         lstOptions[2]=_T("C");
39         wxRadioBox* _spreadMethodRadiobox       = new wxRadioBox(panel, -1, _T("Method"), wxDefaultPosition, wxSize(45,80), 3 , lstOptions,  3, wxRA_SPECIFY_ROWS);
40         _spreadMethodRadiobox->SetSelection(2);
41         return panel;
42 }
43
44 wxPanel* interfToolsSpreadPanel::initializeButton(std::string path, std::string nom){
45                         
46
47         wxPanel* panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE, wxString(_T("")));
48
49         wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1,2,2,2);      
50         panel->SetSizer(flexsizer, true);
51         panel->SetAutoLayout( true );
52         
53         wxBitmap* bitmap = new wxBitmap(wxString(path.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG);
54
55         wxBitmapButton* bitmapbutton = new wxBitmapButton(panel, -1, *bitmap, wxDefaultPosition, wxDefaultSize,
56                                                                                 wxBU_AUTODRAW, wxDefaultValidator, wxString(_T("")));
57
58         
59         wxStaticText* statictext = new wxStaticText(panel, -1, wxString(nom.c_str(),wxConvUTF8), wxDefaultPosition, 
60                                                                 wxDefaultSize, wxALIGN_CENTRE, wxString(nom.c_str(),wxConvUTF8));
61
62         
63         flexsizer->Add(bitmapbutton, wxFIXED_MINSIZE);
64         flexsizer->Add(statictext, wxALIGN_CENTRE_VERTICAL | wxALIGN_CENTER_HORIZONTAL |wxEXPAND);
65
66         panel->Layout();
67         
68         return panel;
69 }
70
71 wxPanel* interfToolsSpreadPanel::initializeAddRemoveContour(){
72         
73         wxPanel* panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE |wxVSCROLL , wxString(_T("")));
74
75         scrollwin = new wxScrolledWindow(panel, -1, wxDefaultPosition, wxSize(80,50), wxVSCROLL, wxString(_T("")));
76
77         checkboxsizer = new wxFlexGridSizer(0,1,2,2);   
78
79
80         scrollwin->SetSizer(checkboxsizer, true);
81         scrollwin->SetAutoLayout( false );
82         //scrollwin->SetInitialSize(wxSize(200,200));
83
84         
85         return panel;
86 }
87
88 void interfToolsSpreadPanel::addContourCheckBox(std::string id){
89
90
91         wxCheckBox* check = new wxCheckBox(scrollwin, -1, wxString(id.c_str(),wxConvUTF8), wxDefaultPosition, wxDefaultSize, 0,
92                                                         wxDefaultValidator, wxString(id.c_str(),wxConvUTF8));
93
94         checkvect.push_back(id);
95
96         checkboxsizer->Add(check, wxFIXED_MINSIZE | wxALIGN_LEFT );
97         scrollwin->Layout();
98         checkboxsizer->Layout();
99
100 }
101
102 void interfToolsSpreadPanel::removeContourCheckBox(std::string id){
103
104         int index=-1;
105         for(int i = 0; i < checkvect.size(); i++){
106                 std::string temp = checkvect[i];
107                 if(id == temp){
108                         index = i;
109                 }
110         }
111         if( index != -1){
112                 if(checkboxsizer->Remove(index)){
113                         checkboxsizer->Layout();
114                 }else{
115             throw "The checkbox could not be removed";
116                 }
117         }
118 }
119
120