X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FwxCDMPackageDescriptionPanel.cpp;h=c736270ab93550b09ac1733dc8de971da2f5f621;hb=0cc6a7e002ad79de9453517108d7456fd44ddfdb;hp=bb06283c278d80bad4b5252865a63d6205939929;hpb=5ff0bb2664c3cd508c1dd438666a71b8a96459c3;p=crea.git diff --git a/lib/creaDevManagerLib/wxCDMPackageDescriptionPanel.cpp b/lib/creaDevManagerLib/wxCDMPackageDescriptionPanel.cpp index bb06283..c736270 100644 --- a/lib/creaDevManagerLib/wxCDMPackageDescriptionPanel.cpp +++ b/lib/creaDevManagerLib/wxCDMPackageDescriptionPanel.cpp @@ -40,6 +40,7 @@ #include "images/PkIcon64.xpm" #include "wxCDMNewBlackBoxDialog.h" +#include "wxCDMPackageConfigurationDialog.h" #include #include "CDMUtilities.h" @@ -57,6 +58,7 @@ EVT_HYPERLINK(ID_LINK_SELECT_BLACKBOX, wxCDMPackageDescriptionPanel::OnLnkBlackB EVT_BUTTON(ID_BUTTON_CREATE_BLACKBOX, wxCDMPackageDescriptionPanel::OnBtnCreateBlackBox) EVT_BUTTON(ID_BUTTON_EDIT_CMAKELISTSFILE, wxCDMPackageDescriptionPanel::OnBtnEditCMakeLists) EVT_BUTTON(ID_BUTTON_OPEN_FOLDER, wxCDMPackageDescriptionPanel::OnBtnOpenFolder) +EVT_BUTTON(ID_BUTTON_CHOOSE, wxCDMPackageDescriptionPanel::OnBtnConfigurePackage) END_EVENT_TABLE() wxCDMPackageDescriptionPanel::wxCDMPackageDescriptionPanel( @@ -86,9 +88,12 @@ bool wxCDMPackageDescriptionPanel::Create( long style ) { - wxPanel::Create(parent, id, pos, size, style); this->package = package; + wxPanel::Create(parent, id, pos, size, style); CreateControls(); + // this part makes the scrollbars show up + this->FitInside(); // ask the sizer about the needed size + this->SetScrollRate(5, 5); return TRUE; } @@ -99,16 +104,17 @@ void wxCDMPackageDescriptionPanel::CreateControls() //Links to return wxBoxSizer *linksSizer = new wxBoxSizer(wxHORIZONTAL); std::vector parents = this->package->GetParents(); - for (int i = 0; i < parents.size(); i++) + for (int i = 0; i < (int)(parents.size()); i++) { - wxHyperlinkCtrl* returnLnk = new wxHyperlinkCtrl(this, ID_BUTTON_PREV, crea::std2wx(parents[parents.size()-1-i]->GetName()), crea::std2wx(parents[parents.size()-1-i]->GetPath())); - returnLnk->SetToolTip(crea::std2wx("Return to " + parents[parents.size()-1-i]->GetName() + ".")); + wxHyperlinkCtrl* returnLnk = new wxHyperlinkCtrl(this, ID_BUTTON_PREV, crea::std2wx(parents[parents.size()-1-i]->GetName()), crea::std2wx(parents[parents.size()-1-i]->GetPath()), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE); + returnLnk->SetWindowStyle(wxNO_BORDER); + returnLnk->SetToolTip(crea::std2wx("Return to " + parents[parents.size()-1-i]->GetName() + ".")); linksSizer->Add(returnLnk, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 5); - if (i < parents.size()-1) - { - linksSizer->Add(new wxStaticText(this,wxID_ANY, wxT("/")), 0, wxALIGN_CENTER, 0); - } + linksSizer->Add(new wxStaticText(this,wxID_ANY, wxT("/")), 0, wxALIGN_CENTER, 0); } + + linksSizer->Add(new wxStaticText(this, wxID_ANY, crea::std2wx(this->package->GetName())), 0, wxALIGN_CENTER, 0); + sizer->Add(linksSizer, 0, wxALIGN_CENTER | wxALL, 5); //Header @@ -183,14 +189,14 @@ void wxCDMPackageDescriptionPanel::CreateControls() std::vector blackBoxes = this->package->GetSrc()->GetBlackBoxes(); - for (int i = 0; i < blackBoxes.size(); i++) + for (int i = 0; i < (int)(blackBoxes.size()); i++) { if(blackBoxes[i] != NULL) { - wxHyperlinkCtrl* pBBlk = new wxHyperlinkCtrl(BBPanel,ID_LINK_SELECT_BLACKBOX, crea::std2wx(blackBoxes[i]->GetName().c_str()), crea::std2wx(blackBoxes[i]->GetName().c_str())); - pBBlk->SetWindowStyle(wxALIGN_LEFT); + wxHyperlinkCtrl* pBBlk = new wxHyperlinkCtrl(BBPanel,ID_LINK_SELECT_BLACKBOX, crea::std2wx(blackBoxes[i]->GetName().c_str()), crea::std2wx(blackBoxes[i]->GetName().c_str()), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE); + pBBlk->SetWindowStyle(wxALIGN_LEFT | wxNO_BORDER); std::string tt = "Author: " + blackBoxes[i]->GetAuthors() + "\nDescription: " + blackBoxes[i]->GetDescription() + "\nCategories: " + blackBoxes[i]->GetCategories(); pBBlk->SetToolTip(crea::std2wx(tt)); pBBlk->Connect(wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMPackageDescriptionPanel::OnMouseEnter,NULL,this); @@ -214,12 +220,15 @@ void wxCDMPackageDescriptionPanel::CreateControls() wxButton* createBBbt = new wxButton(actionsPanel, ID_BUTTON_CREATE_BLACKBOX, _T("A. Create Black Box")); createBBbt->SetToolTip(wxT("Create a new black box for the active project inside this package.")); actionsGridSizer->Add(createBBbt, 1, wxALL | wxEXPAND, 5); - wxButton* editCMakebt = new wxButton(actionsPanel, ID_BUTTON_EDIT_CMAKELISTSFILE, _T("B. Edit CMakeLists File")); + wxButton* editConfbt = new wxButton(actionsPanel, ID_BUTTON_CHOOSE, _T("B. Configure Package")); + editConfbt->SetToolTip(wxT("Select the libraries your package is going to use. This procedure changes the package's CMakeLists file.")); + actionsGridSizer->Add(editConfbt, 1, wxALL | wxEXPAND, 5); + wxButton* editCMakebt = new wxButton(actionsPanel, ID_BUTTON_EDIT_CMAKELISTSFILE, _T("Edit CMakeLists File")); editCMakebt->SetToolTip(wxT("Open the system default text editor to edit the package's CMakeLists.txt file.")); editCMakebt->Connect(wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMPackageDescriptionPanel::OnCMakeMouseEnter,NULL,this); editCMakebt->Connect(wxEVT_LEAVE_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMPackageDescriptionPanel::OnCMakeMouseExit,NULL,this); actionsGridSizer->Add(editCMakebt, 1, wxALL | wxEXPAND, 5); - wxButton* openFolderbt = new wxButton(actionsPanel, ID_BUTTON_OPEN_FOLDER, _T("C. Open Package Folder")); + wxButton* openFolderbt = new wxButton(actionsPanel, ID_BUTTON_OPEN_FOLDER, _T("Open Package Folder")); openFolderbt->SetToolTip(wxT("Open the package folder in the file explorer.")); actionsGridSizer->Add(openFolderbt, 1, wxALL | wxEXPAND, 5); @@ -248,7 +257,7 @@ void wxCDMPackageDescriptionPanel::OnBtnReturn(wxHyperlinkEvent& event) std::vector parents = this->package->GetParents(); std::string parentURL = crea::wx2std(((wxHyperlinkCtrl*)event.GetEventObject())->GetURL()); //std::cout << parentURL << std::endl; - for (int i = 0; i < parents.size(); i++) + for (int i = 0; i < (int)(parents.size()); i++) { if (parents[i]->GetPath() == parentURL) { @@ -341,7 +350,7 @@ void wxCDMPackageDescriptionPanel::OnLnkBlackBoxSelect(wxHyperlinkEvent& event) { modelCDMBlackBox* bb; std::vector bbs = this->package->GetSrc()->GetBlackBoxes(); - for (int i = 0; i < bbs.size(); i++) + for (int i = 0; i < (int)(bbs.size()); i++) { if(bbs[i]->GetName() == crea::wx2std(event.GetURL())) { @@ -357,7 +366,7 @@ void wxCDMPackageDescriptionPanel::OnLnkBlackBoxSelect(wxHyperlinkEvent& event) wxPostEvent(this->GetParent(), *newEvent); wxCommandEvent* newEvent1 = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED); - newEvent1->SetClientData(bb); + newEvent1->SetClientData(bb->GetHeaderFile()); newEvent1->SetId(0); wxPostEvent(this->GetParent(), *newEvent1); @@ -406,6 +415,14 @@ void wxCDMPackageDescriptionPanel::OnBtnCreateBlackBox(wxCommandEvent& event) } } +void +wxCDMPackageDescriptionPanel::OnBtnConfigurePackage(wxCommandEvent& event) +{ + wxCDMPackageConfigurationDialog* dialog = new wxCDMPackageConfigurationDialog(this,this->package); + long userResponse; + userResponse = dialog->ShowModal(); +} + void wxCDMPackageDescriptionPanel::OnBtnEditCMakeLists(wxCommandEvent& event) { std::string* result; @@ -438,7 +455,7 @@ void wxCDMPackageDescriptionPanel::OnMouseEnter(wxMouseEvent& event) modelCDMFile* bbHeader = NULL; std::vector boxes = this->package->GetSrc()->GetBlackBoxes(); - for (int i = 0; i < boxes.size(); i++) + for (int i = 0; i < (int)(boxes.size()); i++) { if(boxes[i]->GetName() == BBName) { @@ -458,7 +475,7 @@ void wxCDMPackageDescriptionPanel::OnMouseExit(wxMouseEvent& event) std::string BBName = crea::wx2std(((wxHyperlinkCtrl*)event.GetEventObject())->GetURL()); modelCDMFile* bbHeader = NULL; std::vector boxes = this->package->GetSrc()->GetBlackBoxes(); - for (int i = 0; i < boxes.size(); i++) + for (int i = 0; i < (int)(boxes.size()); i++) { if(boxes[i]->GetName() == BBName) {