#include <interfImageToolsMenu.h>
Public Member Functions | |
interfImageToolsMenu (wxWindow *parent, int sizex, int sizey, wxEvtHandler *evtHandler, std::string datdir="data/Icons") | |
~interfImageToolsMenu () | |
virtual void | initButtons (wxEvtHandler *evtHandler) |
void | onInformationPressed (wxCommandEvent &event) |
void | onConfigurationPressed (wxCommandEvent &event) |
void | onThreshold (wxCommandEvent &event) |
void | onColorLayerImage (wxCommandEvent &event) |
void | onHelpPressed (wxCommandEvent &event) |
virtual void | addButtons (std::vector< std::string > vpath, std::vector< std::string > vnom) |
virtual wxBitmapButton * | getButton (std::string imgpath, int sizex, int sizey) |
virtual wxStaticText * | getText (std::string nom, int sizex, int sizey) |
virtual void | setVectorFunction (std::vector< wxObjectEventFunction > vectf) |
virtual void | connectEvents (wxEvtHandler *evtHandler) |
virtual void | connectEvents () |
virtual void | setButtonName (int i, const char c) |
void | onActionButtonPressed (wxCommandEvent &event) |
virtual void | setEventHandlers (std::vector< wxEvtHandler * > hand) |
Protected Attributes | |
std::string | datadir |
Definition at line 9 of file interfImageToolsMenu.h.
interfImageToolsMenu::interfImageToolsMenu | ( | wxWindow * | parent, | |
int | sizex, | |||
int | sizey, | |||
wxEvtHandler * | evtHandler, | |||
std::string | datdir = "data/Icons" | |||
) |
Definition at line 4 of file interfImageToolsMenu.cxx.
References interfMenuBar::datadir, and initButtons().
00005 : interfMenuBar(parent, sizex, sizey) 00006 { 00007 this->datadir = datdir; 00008 //contourevent = (wxContourEventHandler*)evtHandler; 00009 00010 /*Borrame 00011 infoWin = NULL; 00012 configPanel = NULL; 00013 spreadPanel = NULL; 00014 segmentPanelITK = NULL; 00015 */ 00016 00017 //eventHandler = evtHandler; 00018 00019 initButtons(this); 00020 }
interfImageToolsMenu::~interfImageToolsMenu | ( | ) |
virtual void interfMenuBar::addButtons | ( | std::vector< std::string > | vpath, | |
std::vector< std::string > | vnom | |||
) | [inline, virtual, inherited] |
This method add a series of button in a line, it uses the method getbutton to create the button and static text to create the text, it also initialice the flexgridsizer to add the buttons and the text into the panel
vector | path, this parameter contains the path of the images to include in the path | |
vector | nom, this parameter contains the names corresponding to each path of image given |
Definition at line 39 of file interfMenuBar.h.
References interfMenuBar::flexsizer, interfMenuBar::getButton(), and interfMenuBar::vectbutton.
Referenced by interfToolsMenu::initButtons(), interfSegmentationMenu::initButtons(), interfNewContourMenu::initButtons(), interfIOMenu::initButtons(), initButtons(), interfEditMenu::initButtons(), and interfDeleteMenu::initButtons().
00039 { 00040 00041 int sizex = 80; 00042 int sizey = 80; 00043 00044 //RaC 11-09 00045 //This constructor function as well but it is neccessary to change vpath.size() by 6 00046 //flexsizer = new wxFlexGridSizer(2,vpath.size(),2,2); 00047 flexsizer = new wxFlexGridSizer(6); 00048 this->SetSizer(flexsizer, true); 00049 this->SetAutoLayout( true ); 00050 00051 //first row of the sizer, the buttons are being added 00052 for(int i = 0; i < (int)(vpath.size());i++){ 00053 std::string p = vpath[i]; 00054 wxBitmapButton* bitmapbutton = this->getButton(p, sizex, sizey); 00055 flexsizer->Add(bitmapbutton,wxFIXED_MINSIZE); 00056 00057 } 00058 //second row of the sizer, the names are being added 00059 00060 for(int i = 0; i < (int)(vnom.size()); i++){ 00061 //sizex = vectbutton[i]->GetSize().GetWidth(); 00062 std::string n = vnom[i]; 00063 vectbutton[i]->SetToolTip(wxString(n.c_str(),wxConvUTF8)); 00064 //wxStaticText* statictext = getText(n, sizex, 15); 00065 //flexsizer->Add(statictext, wxEXPAND |wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTRE_HORIZONTAL|wxSHAPED); 00066 } 00067 this->Layout(); 00068 }
virtual void interfMenuBar::connectEvents | ( | ) | [inline, virtual, inherited] |
This method connect the events seted in the vector vectfunct each function must have a button to relate with, see function setVectorFunction()
Definition at line 129 of file interfMenuBar.h.
References interfMenuBar::vectbutton, interfMenuBar::vectfunct, and interfMenuBar::vecthand.
Referenced by interfToolsMenu::initButtons(), interfSegmentationMenu::initButtons(), interfNewContourMenu::initButtons(), interfIOMenu::initButtons(), initButtons(), interfEditMenu::initButtons(), and interfDeleteMenu::initButtons().
00129 { 00130 00131 for(int i = 0; i < (int)(vectbutton.size());i++){ 00132 Connect(vectbutton[i]->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, vectfunct[i],NULL,vecthand[i]); 00133 } 00134 }
virtual void interfMenuBar::connectEvents | ( | wxEvtHandler * | evtHandler | ) | [inline, virtual, inherited] |
This method connect the events seted in the vector vectfunct each function must have a button to relate with, see function setVectorFunction()
Definition at line 118 of file interfMenuBar.h.
References interfMenuBar::vectbutton, and interfMenuBar::vectfunct.
00118 { 00119 00120 for(int i = 0; i < (int)(vectbutton.size());i++){ 00121 Connect(vectbutton[i]->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, vectfunct[i],NULL,evtHandler); 00122 } 00123 }
virtual wxBitmapButton* interfMenuBar::getButton | ( | std::string | imgpath, | |
int | sizex, | |||
int | sizey | |||
) | [inline, virtual, inherited] |
This method creates the button with the given image and returns it
string | imgpath is the string containing the path to the image of the button being created | |
int | x indicates the x coordinate where the button should be located | |
int | y indicates the y coordinate where the button should be located |
Definition at line 77 of file interfMenuBar.h.
References interfMenuBar::vectbutton, and interfMenuBar::vectimgpath.
Referenced by interfMenuBar::addButtons().
00077 { 00078 vectimgpath.push_back(imgpath); 00079 00080 00081 wxBitmap* bitmap = new wxBitmap(wxString(imgpath.c_str(),wxConvUTF8), wxBITMAP_TYPE_PNG); 00082 00083 //wxSize(sizex,sizey) 00084 wxBitmapButton* bitmapbutton = new wxBitmapButton(this, -1, *bitmap, wxDefaultPosition, wxDefaultSize, 00085 wxBU_AUTODRAW, wxDefaultValidator, wxString(_T(""))); 00086 00087 vectbutton.push_back(bitmapbutton); 00088 return bitmapbutton; 00089 }
virtual wxStaticText* interfMenuBar::getText | ( | std::string | nom, | |
int | sizex, | |||
int | sizey | |||
) | [inline, virtual, inherited] |
This method create the static text with the given string and returns it, it also push it back into the vector nom
string | nom text wich will be added to the statictext | |
int | sizex size of the text | |
int | sizey size of the text |
Definition at line 98 of file interfMenuBar.h.
References interfMenuBar::vectnom.
00098 { 00099 vectnom.push_back(nom); 00100 return new wxStaticText(this, -1, wxString(nom.c_str(),wxConvUTF8), wxDefaultPosition, 00101 wxSize(sizex,sizey), wxALIGN_CENTRE, wxString(nom.c_str(),wxConvUTF8)); 00102 }
void interfImageToolsMenu::initButtons | ( | wxEvtHandler * | evtHandler | ) | [virtual] |
Implements interfMenuBar.
Definition at line 22 of file interfImageToolsMenu.cxx.
References interfMenuBar::addButtons(), interfMenuBar::connectEvents(), interfMenuBar::datadir, onColorLayerImage(), onConfigurationPressed(), onHelpPressed(), onInformationPressed(), onThreshold(), and interfMenuBar::setVectorFunction().
Referenced by interfImageToolsMenu().
00022 { 00023 00024 std::vector<std::string> path, nom; 00025 std::vector<wxObjectEventFunction> funct; 00026 00027 /*EED Borrame 00028 path.push_back(datadir + "/Segmentation.png"); 00029 nom.push_back("Find shapes by automatic segmentation"); 00030 funct.push_back((wxObjectEventFunction) &interfSegmentationMenu:: onSegmentationPressed); 00031 00032 path.push_back(datadir + "/ITK.png"); 00033 nom.push_back("Find shapes by automatic segmentation with ITK"); 00034 funct.push_back((wxObjectEventFunction) &interfSegmentationMenu:: onSegmentationPressedITK); 00035 00036 path.push_back(datadir + "/snake.png"); 00037 nom.push_back("Find shapes using border snake interaction"); 00038 funct.push_back((wxObjectEventFunction) &interfSegmentationMenu:: onSnakePressed); 00039 */ 00040 path.push_back(datadir + "/pignon.png"); 00041 nom.push_back("Configuration of the window"); 00042 funct.push_back((wxObjectEventFunction) &interfImageToolsMenu:: onConfigurationPressed); 00043 00044 path.push_back(datadir + "/info.png"); 00045 nom.push_back("Information of the contours in the scene"); 00046 funct.push_back((wxObjectEventFunction) &interfImageToolsMenu:: onInformationPressed); 00047 00048 path.push_back(datadir + "/Threshold.png"); 00049 nom.push_back("Superpose a 'Red Image' to the selected Image Threshold"); 00050 funct.push_back((wxObjectEventFunction)&interfImageToolsMenu::onThreshold); 00051 00052 path.push_back(datadir + "/Threshold.png"); 00053 nom.push_back("Superpose a Color Image"); 00054 funct.push_back((wxObjectEventFunction)&interfImageToolsMenu::onColorLayerImage); 00055 00056 path.push_back(datadir + "/Help.png"); 00057 nom.push_back("Show help page with information about the tools"); 00058 funct.push_back((wxObjectEventFunction) &interfImageToolsMenu:: onHelpPressed); 00059 00060 00061 this->addButtons(path, nom); 00062 this->setVectorFunction(funct); 00063 00064 this->connectEvents(evtHandler); 00065 00066 00067 }
void interfMenuBar::onActionButtonPressed | ( | wxCommandEvent & | event | ) | [inline, inherited] |
Responds to the events of the buttons, when the same panel is responsible for it. It gets the name of the button corresponding to the method that has to be executed, it uses attribute eventHandler to call the methods define by the application. see setEventHandler(wxEventHandler*)
Reimplemented in interfIOMenu.
Definition at line 155 of file interfMenuBar.h.
00156 { 00157 if(true)//if(eventHandler!=NULL) 00158 { 00159 std::string theStr = std::string( ((wxButton *)event.GetEventObject())->GetName().ToAscii()); 00160 const char * toolCommand = theStr.c_str(); 00161 event.SetId( GetId() ); 00162 event.SetEventObject( this ); 00163 event.SetClientData( (void *) toolCommand); 00164 //eventHandler->ProcessEvent( event ); 00165 } 00166 }
void interfImageToolsMenu::onColorLayerImage | ( | wxCommandEvent & | event | ) |
Definition at line 112 of file interfImageToolsMenu.cxx.
References interfMainPanel::getInstance(), and interfMainPanel::onColorLayerImagePressed().
Referenced by initButtons().
00113 { 00114 interfMainPanel::getInstance()->onColorLayerImagePressed(); 00115 }
void interfImageToolsMenu::onConfigurationPressed | ( | wxCommandEvent & | event | ) |
Definition at line 102 of file interfImageToolsMenu.cxx.
References interfMainPanel::getInstance(), and interfMainPanel::onConfigurationPressed().
Referenced by initButtons().
00103 { 00104 interfMainPanel::getInstance()->onConfigurationPressed(); 00105 }
void interfImageToolsMenu::onHelpPressed | ( | wxCommandEvent & | event | ) |
Definition at line 117 of file interfImageToolsMenu.cxx.
Referenced by initButtons().
00118 { 00119 wxLaunchDefaultBrowser(_T("http://www.creatis.insa-lyon.fr/site/fr/EndUserGuide"), 0); 00120 }
void interfImageToolsMenu::onInformationPressed | ( | wxCommandEvent & | event | ) |
Responds to the events of the buttons, when the same panel is responsible for it. It gets the name of the button corresponding to the method that has to be executed, it uses attribute eventHandler to call the methods define by the application. see setEventHandler(wxEventHandler*)
Definition at line 97 of file interfImageToolsMenu.cxx.
References interfMainPanel::getInstance(), and interfMainPanel::onInformationPressed().
Referenced by initButtons().
00098 { 00099 interfMainPanel::getInstance()->onInformationPressed(); 00100 }
void interfImageToolsMenu::onThreshold | ( | wxCommandEvent & | event | ) |
Definition at line 107 of file interfImageToolsMenu.cxx.
References interfMainPanel::getInstance(), and interfMainPanel::onThresholdPressed().
Referenced by initButtons().
00108 { 00109 interfMainPanel::getInstance()->onThresholdPressed(); 00110 }
virtual void interfMenuBar::setButtonName | ( | int | i, | |
const char | c | |||
) | [inline, virtual, inherited] |
Sets the name of the button, this is used to relate the name of the button to a specific command int i index in the array of buttons use fuction setVectorFuncion(<vect>) to set the vector first const char name of the button see wxContour_ActionCommandsID.h to view the commands
Definition at line 142 of file interfMenuBar.h.
References interfMenuBar::vectbutton.
Referenced by interfEditMenu::initButtons().
00142 { 00143 if(i < (int)(vectbutton.size())){ 00144 std::string ac = c+""; 00145 vectbutton[i]->SetName(wxString(ac.c_str(),wxConvUTF8)); 00146 } 00147 }
virtual void interfMenuBar::setEventHandlers | ( | std::vector< wxEvtHandler * > | hand | ) | [inline, virtual, inherited] |
Definition at line 168 of file interfMenuBar.h.
References interfMenuBar::vecthand.
Referenced by interfNewContourMenu::initButtons().
00168 { 00169 00170 for(int i = 0; i < (int)(hand.size());i++){ 00171 vecthand.push_back(hand[i]); 00172 } 00173 }
virtual void interfMenuBar::setVectorFunction | ( | std::vector< wxObjectEventFunction > | vectf | ) | [inline, virtual, inherited] |
Sets the vector funcion, this vector must contain a function for each button created they must be ordered in the same way as the vector that contains the image path and name of the button. See addButton(<vect>, <vect>)
Definition at line 108 of file interfMenuBar.h.
References interfMenuBar::vectfunct.
Referenced by interfToolsMenu::initButtons(), interfSegmentationMenu::initButtons(), interfNewContourMenu::initButtons(), interfIOMenu::initButtons(), initButtons(), interfEditMenu::initButtons(), and interfDeleteMenu::initButtons().
00108 { 00109 for(int i = 0; i < (int)(vectf.size());i++){ 00110 vectfunct.push_back(vectf[i]); 00111 } 00112 }
std::string interfMenuBar::datadir [protected, inherited] |
Definition at line 187 of file interfMenuBar.h.
Referenced by interfToolsMenu::initButtons(), interfSegmentationMenu::initButtons(), interfNewContourMenu::initButtons(), interfIOMenu::initButtons(), initButtons(), interfEditMenu::initButtons(), interfDeleteMenu::initButtons(), interfDeleteMenu::interfDeleteMenu(), interfEditMenu::interfEditMenu(), interfImageToolsMenu(), interfIOMenu::interfIOMenu(), interfNewContourMenu::interfNewContourMenu(), interfSegmentationMenu::interfSegmentationMenu(), and interfToolsMenu::interfToolsMenu().