1 #include "interfToolsMenu.h"
2 #include "interfMainPanel.h"
4 interfToolsMenu::interfToolsMenu(wxWindow * parent, int sizex, int sizey,wxEvtHandler* evtHandler, std::string datdir)
5 : interfMenuBar(parent, sizex, sizey)
7 this->datadir = datdir;
8 contourevent = (wxContourEventHandler*)evtHandler;
13 segmentPanelITK = NULL;
15 eventHandler = evtHandler;
20 void interfToolsMenu::initButtons(wxEvtHandler* evtHandler) {
22 std::vector<std::string> path, nom;
23 std::vector<wxObjectEventFunction> funct;
25 path.push_back(datadir + "/Spread.png");
26 nom.push_back("The selected contour will spread through all slides");
27 funct.push_back((wxObjectEventFunction) &interfMenuBar:: onActionButtonPressed);
29 path.push_back(datadir + "/Spread1.png");
30 nom.push_back("Select more than one contour and find the contours between them");
31 funct.push_back((wxObjectEventFunction) &interfToolsMenu:: onSpreadPressed);
34 path.push_back(datadir + "/info.png");
35 nom.push_back("Information of the contours in the scene");
36 funct.push_back((wxObjectEventFunction) &interfToolsMenu:: onInformationPressed);
38 path.push_back(datadir + "/pignon.png");
39 nom.push_back("Configuration of the window");
40 funct.push_back((wxObjectEventFunction) &interfToolsMenu:: onConfigurationPressed);
42 this->addButtons(path, nom);
43 this->setVectorFunction(funct);
45 this->setButtonName(0, wxContour_ActionCommandsID::CHANGE_TOOL);
47 this->connectEvents(evtHandler);
52 interfToolsMenu::~interfToolsMenu()
57 ** Responds to the events of the buttons, when the same panel is responsible for it. It gets the name
58 ** of the button corresponding to the method that has to be executed,
59 ** it uses attribute eventHandler to call the methods define by the application.
60 ** see setEventHandler(wxEventHandler*)
62 void interfToolsMenu::onRigidPressed(wxCommandEvent& event){
66 void interfToolsMenu::onSpreadPressed(wxCommandEvent& event){
69 if(spreadPanel==NULL){
71 spreadPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxBORDER_STATIC, wxString(""));
72 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);
73 spreadPanel->SetSizer(flexsizer, true);
74 spreadPanel->SetAutoLayout( true );
75 spreadPanel->SetEventHandler(this->contourevent);
77 wxPanel* panel = contourevent->getSpreadPanel(spreadPanel);
80 wxStaticText* stattext = new wxStaticText(spreadPanel, -1, wxString(" Automatic Spread "), wxDefaultPosition,
81 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(""));
83 flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
84 flexsizer->Add(panel, wxEXPAND);
85 spreadPanel->Layout();
87 interfMainPanel::getInstance()->showPanel(spreadPanel);
92 void interfToolsMenu::onInformationPressed(wxCommandEvent& event){
95 infoWin = new wxFrame (interfMainPanel::getInstance()->getInfoPanel(), -1,_T(" Spread "), wxDefaultPosition, wxDefaultSize, wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT | wxRESIZE_BORDER );
96 infoWin->SetSize( wxSize(500,450) );
98 wxSize sizepanel(200,300);
99 wxPanel *panel = contourevent->getInformationPanel(infoWin);
101 wxBoxSizer * sizerPanel = new wxBoxSizer(wxHORIZONTAL);
102 sizerPanel -> Add( panel->GetSizer() , 1, wxEXPAND ,0);
104 infoWin->SetSizer( sizerPanel );
105 infoWin->SetAutoLayout( true );
112 if (infoWin->IsShown()==true)
114 infoWin->Show(false);
116 contourevent->FillGridWithContoursInformation();
122 void interfToolsMenu::onConfigurationPressed(wxCommandEvent& event){
124 if(configPanel == NULL){
125 configPanel = new wxPanel(interfMainPanel::getInstance()->getInfoPanel(), -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER, wxString(""));
126 wxFlexGridSizer* flexsizer = new wxFlexGridSizer(1);
127 configPanel->SetSizer(flexsizer, true);
128 configPanel->SetAutoLayout( true );
129 configPanel->SetEventHandler(this->contourevent);
131 wxPanel* panel = contourevent->getConfigurationPanel(configPanel);
133 wxStaticText* stattext = new wxStaticText(configPanel, -1, wxString(" Interface Configuration "), wxDefaultPosition,
134 wxDefaultSize, wxALIGN_CENTRE|wxBORDER_SIMPLE|wxFULL_REPAINT_ON_RESIZE, wxString(""));
136 flexsizer->Add(stattext,wxALIGN_CENTER | wxALIGN_CENTRE);
138 flexsizer->Add(panel, wxEXPAND);
139 configPanel->Layout();
142 interfMainPanel::getInstance()->showPanel(configPanel);
147 void interfToolsMenu::hideAxis(){
150 contourevent->showAxis(axisshown);