4 //#include "wxContourEventHandler.h"
6 #include "interfNewContourMenu.h"
7 #include "interfIOMenu.h"
8 #include "interfEditMenu.h"
9 #include "interfDeleteMenu.h"
10 #include "interfToolsMenu.h"
11 #include "interfToolsSpreadPanel.h"
12 #include "interfSegmentationMenu.h"
13 #include "interfMenuBar.h"
14 #include "interfSegmentationPanels.h"
15 #include "interfToolsPanels.h"
17 #include <wx/treebook.h>
19 #include <wx/button.h>
20 #include <wx/stattext.h>
21 #include <wx/splitter.h>
22 #include <wx/statline.h>
24 #include "vtkImageData.h"
26 class interfMainPanel : public wxPanel {
30 interfMainPanel(wxWindow * parent, int sizex, int sizey, wxEvtHandler * evtHandler, std::string datadir = "data/Icons");
31 ~interfMainPanel(void);
33 /** This method should be called the first time by the parent class
34 ** in creates all the panels the first time
36 static interfMainPanel* getInstance(wxWindow* parent, std::string datadir, wxEvtHandler * evtHandler=NULL );
37 /** This method should be called the first time by the parent class
38 ** in creates all the panels the first time
40 static interfMainPanel* getInstance(wxWindow* parent, wxEvtHandler * evtHandler=NULL);
42 ** Gets the instance of the class
44 static interfMainPanel* getInstance();
48 ** Adds a new checkbox to the scrolledwindow using the checkboxsizer
49 ** @Params id of contour
52 void addContourCheckBox(std::string id);
55 ** Removes a checkbox from the list of checkboxes in the flexsizer (checkboxsizer)
56 ** @Params id of contour
59 void removeContourCheckBox(std::string id);
63 ** Responds to the events of the buttons, when the same panel is responsible for it. It gets the name
64 ** of the button corresponding to the method that has to be executed,
65 ** it uses attribute eventHandler to call the methods define by the application.
66 ** see setEventHandler(wxEventHandler*)
68 void onActionButtonPressed1( wxCommandEvent& event );
71 ** Shows the panel in the
73 void showPanel(wxWindow* panel);
76 ** Hides the panel in the
81 ** Gets the Information panel
83 wxPanel* getInfoPanel();
86 ** This methods connect the event in the class interfNewContourMenu with the world of the appli
88 void onCreateContourSpline( );
89 void onCreateContourRectangle( );
90 void onCreateContourCircle( );
91 void onCreateContourLine( );
92 void onCreateContoursBullEye(wxPanel* panBull);
93 /////////////////////////////////
94 void onDeleteContour();
95 void onDeleteContoursActSlice();
96 void onDeleteAllContours();
97 /////////////////////////
103 //////////////////////////
106 /////////////////////////////7
107 void RefreshInterface();
109 vtkImageData* getImageData();
111 void onSegmentationOneSlice(int isovalue,int sampling,int method);
113 void onSegmentationOneSliceITK(wxString distance, wxString sigma, wxString alfa, wxString beta, wxString propagation, wxString iterations, wxString inflation);
115 int GetImageDataSizeZ();
117 void GetImageDataRange(double *range);
119 void onSegmentationAllSlice(int minZ,int maxZ,int isovalue,int sampling,int method);
123 void setLabelSegmentationPanelVTK(wxString tmpString);
125 void onSegmentationPressed();
127 void onSegmentationPressedITK();
129 void onRigidPressed();
131 void onWidthOfContour(double width);
133 int getColorWindow();
134 int getWindowLevel();
136 void onBrigthnessColorWindowLevel(int colorwindow,int windowlevel);
138 void onInterpolation(bool interpolate);
140 void onSpreadPressed();
142 void onConfigurationPressed();
148 void appendStringSpread(std::string val);
150 void onSpreadGo(int type);
152 void setStringSpread(std::string stringtemp);
154 void onInformationPressed();
157 void getInstantVector(std::vector<int>& tempVector);
159 std::vector<std::string> getOutlinesName(int slide);
161 void onInformationContourLabels(int typeContourGroup,int selection,int minZ,int maxZ);
163 void setStringInfoPanel(wxString tmpString);
165 void setRowLabelInfoPanel(int z, wxString tempString);
167 int getNumberColsInformationPanel();
169 void appendColsInformationPanel(int _numberOfVariablesStatistics);
171 void setCellValueInfoPanel(int z,int tmpIntA,wxString tempString);
173 void setColLableInfoPanel(int tmpIntB ,wxString tmpTitleString);
175 void onSaveResults(std::string directory,std::string namefile, std::string filename,int typeContourGroup);
177 wxString getCellValue(int j,int i);
179 void onSnakePressed();
181 void onMirrorPressed();
186 static interfMainPanel* interfmainpanel;
196 wxWindow* currentWindow;
197 wxSplitterWindow* splitterwindow;
201 wxStaticText* statictext;
202 wxStaticText* statictext1;
203 wxStaticText* statictext2;
204 wxStaticText* statictext3;
205 wxStaticText* statictext4;
206 wxStaticText* statictext5;
215 wxPanel* segmentPanel;
216 wxPanel* segmentationPanel;
217 wxPanel* segmentPanelITK;
218 wxPanel* configPanel;
219 wxPanel* spreadPanel;
220 interfSpreadPanel* panelSpread;
221 wxPanel* mirrorPanel;
222 interfMirrorPanel* panelMirror;
224 wxPanel* informationPanel;
229 //This attribute contains the panel in charge of adding and removing the corresponding checkboxes in
231 interfToolsSpreadPanel* toolspread;
234 ** This method initializes the tools panel, with the bar and the panel where the contours can be added
236 ** @params size of the buttons panel
237 ** @params sizey of the buttons panel
238 ** @params evtHandler this is the class in charge of responding to the events of the buttons
240 wxPanel* initializeToolsPanel(wxWindow* parent, int sizex, int sizey, wxEvtHandler * evtHandler);
243 ** initialize a statictext component of the interface
245 wxStaticText* getText(wxWindow* parent, std::string nom);
247 ** initializes a button with data
249 wxButton* getButton(wxWindow* parent);
251 ** Puts the panel button and the text int the sizer
253 wxPanel* setMenuTextSizer(wxWindow* parent, wxPanel* panel, wxStaticText* text);