#include <interfMenuBar.h>
Public Member Functions | |
interfMenuBar (wxWindow *parent, int sizex, int sizey) | |
virtual void | initButtons (wxEvtHandler *evtHandler)=0 |
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 |
Private Attributes | |
std::vector< std::string > | vectimgpath |
std::vector< std::string > | vectnom |
std::vector< wxButton * > | vectbutton |
std::vector < wxObjectEventFunction > | vectfunct |
std::vector< wxEvtHandler * > | vecthand |
wxFlexGridSizer * | flexsizer |
Definition at line 17 of file interfMenuBar.h.
interfMenuBar::interfMenuBar | ( | wxWindow * | parent, | |
int | sizex, | |||
int | sizey | |||
) | [inline] |
Definition at line 21 of file interfMenuBar.h.
00022 : wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_SUNKEN){ 00023 //this initialice all the handlers to load any type of image, in this case the png handler is needed 00024 wxInitAllImageHandlers(); 00025 00026 00027 }
virtual void interfMenuBar::addButtons | ( | std::vector< std::string > | vpath, | |
std::vector< std::string > | vnom | |||
) | [inline, virtual] |
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 flexsizer, getButton(), and vectbutton.
Referenced by interfToolsMenu::initButtons(), interfSegmentationMenu::initButtons(), interfNewContourMenu::initButtons(), interfIOMenu::initButtons(), interfImageToolsMenu::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] |
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 vectbutton, vectfunct, and vecthand.
Referenced by interfToolsMenu::initButtons(), interfSegmentationMenu::initButtons(), interfNewContourMenu::initButtons(), interfIOMenu::initButtons(), interfImageToolsMenu::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] |
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 vectbutton, and 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] |
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 vectbutton, and vectimgpath.
Referenced by 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] |
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 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 }
virtual void interfMenuBar::initButtons | ( | wxEvtHandler * | evtHandler | ) | [pure virtual] |
Implemented in interfDeleteMenu, interfEditMenu, interfImageToolsMenu, interfIOMenu, interfNewContourMenu, interfSegmentationMenu, and interfToolsMenu.
void interfMenuBar::onActionButtonPressed | ( | wxCommandEvent & | event | ) | [inline] |
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 }
virtual void interfMenuBar::setButtonName | ( | int | i, | |
const char | c | |||
) | [inline, virtual] |
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 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] |
Definition at line 168 of file interfMenuBar.h.
References 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] |
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 vectfunct.
Referenced by interfToolsMenu::initButtons(), interfSegmentationMenu::initButtons(), interfNewContourMenu::initButtons(), interfIOMenu::initButtons(), interfImageToolsMenu::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] |
Definition at line 187 of file interfMenuBar.h.
Referenced by interfToolsMenu::initButtons(), interfSegmentationMenu::initButtons(), interfNewContourMenu::initButtons(), interfIOMenu::initButtons(), interfImageToolsMenu::initButtons(), interfEditMenu::initButtons(), interfDeleteMenu::initButtons(), interfDeleteMenu::interfDeleteMenu(), interfEditMenu::interfEditMenu(), interfImageToolsMenu::interfImageToolsMenu(), interfIOMenu::interfIOMenu(), interfNewContourMenu::interfNewContourMenu(), interfSegmentationMenu::interfSegmentationMenu(), and interfToolsMenu::interfToolsMenu().
wxFlexGridSizer* interfMenuBar::flexsizer [private] |
std::vector<wxButton*> interfMenuBar::vectbutton [private] |
Definition at line 179 of file interfMenuBar.h.
Referenced by addButtons(), connectEvents(), getButton(), and setButtonName().
std::vector<wxObjectEventFunction> interfMenuBar::vectfunct [private] |
Definition at line 180 of file interfMenuBar.h.
Referenced by connectEvents(), and setVectorFunction().
std::vector<wxEvtHandler*> interfMenuBar::vecthand [private] |
Definition at line 181 of file interfMenuBar.h.
Referenced by connectEvents(), and setEventHandlers().
std::vector<std::string> interfMenuBar::vectimgpath [private] |
std::vector<std::string> interfMenuBar::vectnom [private] |