]> Creatis software - creaContours.git/blobdiff - lib/Interface_Icons_NDimensions/interfSegmentationMenu.cxx
Parser Osirix
[creaContours.git] / lib / Interface_Icons_NDimensions / interfSegmentationMenu.cxx
index 8ae1df67c48eb73bdcee2a949ff6d7c4d5209db5..8ec2fa73f27784b86d1e244ca4a9994f3de1383b 100644 (file)
@@ -5,14 +5,13 @@ interfSegmentationMenu::interfSegmentationMenu(wxWindow * parent, int sizex, int
        : interfMenuBar(parent, sizex, sizey)
 {
        this->datadir = datdir;
-       contourevent = (wxContourEventHandler*)evtHandler;
+       //contourevent = (wxContourEventHandler*)evtHandler;
        infoWin = NULL;
        configPanel = NULL;
-       segmentPanel = NULL;
        spreadPanel = NULL;
        segmentPanelITK = NULL;
        
-       eventHandler = evtHandler;
+       //eventHandler = evtHandler;
 
        initButtons(this);
 }
@@ -34,6 +33,14 @@ void interfSegmentationMenu::initButtons(wxEvtHandler* evtHandler) {
        nom.push_back("Find shapes using border snake interaction");
        funct.push_back((wxObjectEventFunction) &interfSegmentationMenu:: onSnakePressed);
 
+       path.push_back(datadir + "/Mirror.png");
+       nom.push_back("Create an Axis and select a contour to mirror it accordingly");
+       funct.push_back((wxObjectEventFunction) &interfSegmentationMenu:: onMirrorPressed);
+
+       path.push_back(datadir + "/Threshold.png");
+       nom.push_back("Superpose a 'Red Image' to the selected Image Threshold");
+       funct.push_back((wxObjectEventFunction)&interfSegmentationMenu::onThreshold);
+
        this->addButtons(path, nom);    
        this->setVectorFunction(funct);
 
@@ -55,65 +62,36 @@ interfSegmentationMenu::~interfSegmentationMenu()
 
 
 void  interfSegmentationMenu::onSegmentationPressed(wxCommandEvent& event){
-    if(segmentPanel == NULL){
-               segmentPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
-                       
-
-               wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);    
-               segmentPanel->SetSizer(flexsizer, true);
-               segmentPanel->SetAutoLayout( true );    
-               segmentPanel->SetEventHandler(this->contourevent);
-               
-               wxPanel* panel = contourevent->getSegmentationPanel(segmentPanel);
-       
 
-               wxStaticText* stattext = new wxStaticText(segmentPanel, -1, wxString(_T("   Automatic Segmentation   ")), wxDefaultPosition,
-                       wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
-
-               flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
-               flexsizer->Add(panel, wxEXPAND);
-               segmentPanel->Layout();
-       }
-       interfMainPanel::getInstance()->showPanel(segmentPanel);
-       contourevent->showAxis(true);
-       axisshown = true;
+       interfMainPanel::getInstance()->onSegmentationPressed();
 }
 
 
-void interfSegmentationMenu::hideAxis(){
-       if(axisshown){
-               axisshown = false;
-               contourevent->showAxis(axisshown);
-       }
-}
 
 void  interfSegmentationMenu::onSegmentationPressedITK(wxCommandEvent& event){
-    if(segmentPanelITK == NULL){
-               segmentPanelITK = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(_T("")));
-                       
-
-               wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);    
-               segmentPanelITK->SetSizer(flexsizer, true);
-               segmentPanelITK->SetAutoLayout( true ); 
-               segmentPanelITK->SetEventHandler(this->contourevent);
-               
-               wxPanel* panel = contourevent->getSegmentationPanelITK(segmentPanelITK);
-       
 
-               wxStaticText* stattext = new wxStaticText(segmentPanelITK, -1, wxString(_T("   Automatic ITK Segmentation   ")), wxDefaultPosition,
-                       wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(_T("")));
+       interfMainPanel::getInstance()->onSegmentationPressedITK();
 
-               flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
-               flexsizer->Add(panel, wxEXPAND);
-               segmentPanelITK->Layout();
-       }
-       interfMainPanel::getInstance()->showPanel(segmentPanelITK);
-       //contourevent->showAxis(true);
-       //axisshown = true;
+    
 }
 
 void  interfSegmentationMenu::onSnakePressed(wxCommandEvent& event){
     
-       contourevent->onSnakePressed(this);
+       interfMainPanel::getInstance()->onSnakePressed();
 
 }
+
+void interfSegmentationMenu::onMirrorPressed(wxCommandEvent& event){
+
+  interfMainPanel::getInstance()->onMirrorPressed();
+
+}
+
+void interfSegmentationMenu::onThreshold(wxCommandEvent& event){
+       
+       interfMainPanel::getInstance()->onThresholdPressed();
+
+}
+
+//------------------------------------------------------------------------------------------------------------
+