X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FwxCDMApplicationDescriptionPanel.cpp;h=e37085611a6f569e8cfaf1fd20e211cde3d7446b;hb=2f886b3dbdc87d142f8363272b2bd226209b8b06;hp=26c6ce0f124d3c8b00b05c469047d97e0d914766;hpb=9f11db34cb1acacf545f819d6b552a95835d93bd;p=crea.git diff --git a/lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp b/lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp index 26c6ce0..e370856 100644 --- a/lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp +++ b/lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp @@ -50,6 +50,8 @@ EVT_BUTTON(ID_BUTTON_CREATE_FOLDER, wxCDMApplicationDescriptionPanel::OnBtnCreat EVT_BUTTON(ID_BUTTON_EDIT_CMAKELISTSFILE, wxCDMApplicationDescriptionPanel::OnBtnEditCMakeLists) EVT_BUTTON(ID_BUTTON_OPEN_FOLDER, wxCDMApplicationDescriptionPanel::OnBtnOpenFolder) EVT_BUTTON(ID_BUTTON_OPEN_CXX, wxCDMApplicationDescriptionPanel::OnBtnOpenMain) +EVT_CHECKBOX(ID_CHECK_INCLUDE_3RDLIBRARY, wxCDMApplicationDescriptionPanel::On3rdLibraryChBChange) +EVT_CHECKBOX(ID_CHECK_INCLUDE_LIBRARY, wxCDMApplicationDescriptionPanel::OnLibraryChBChange) END_EVENT_TABLE() wxCDMApplicationDescriptionPanel::wxCDMApplicationDescriptionPanel( @@ -143,6 +145,116 @@ void wxCDMApplicationDescriptionPanel::CreateControls() propertiesBox->Add(propertiesPanel, 0, wxEXPAND); sizer->Add(propertiesBox, 0, wxEXPAND | wxALL, 10); */ + + //Includes + wxStaticBoxSizer* includesBox = new wxStaticBoxSizer(wxHORIZONTAL, this, wxT("&Used Libraries")); + wxPanel* includesPanel = new wxPanel(this); + wxBoxSizer* includesPanelSizer = new wxBoxSizer(wxVERTICAL); + + //Third Party Libraries + wxStaticText* Title1 = new wxStaticText(includesPanel, wxID_ANY, wxT("Third Party Libraries:")); + wxFont font = Title1->GetFont(); + font.SetWeight(wxFONTWEIGHT_BOLD); + Title1->SetFont(font); + includesPanelSizer->Add(Title1, 0, wxEXPAND | wxALL, 5); + + //inclusion data + std::map inclusions = this->application->Get3rdPartyLibraries(); + //includesGrid Sizer + wxFlexGridSizer* includesGridSizer = new wxFlexGridSizer(inclusions.size()+1, 2, 0, 5); + + wxStaticText* ChBTitle = new wxStaticText( + includesPanel, + wxID_ANY, + wxT("Included"), + wxDefaultPosition, + wxDefaultSize, + wxALIGN_CENTER + ); + wxStaticText* LNmTitle = new wxStaticText( + includesPanel, + wxID_ANY, + wxT("Library Name"), + wxDefaultPosition, + wxDefaultSize, + wxALIGN_LEFT + ); + + includesGridSizer->Add(ChBTitle, 1, wxEXPAND); + includesGridSizer->Add(LNmTitle, 1, wxEXPAND); + + for (std::map::iterator it = inclusions.begin(); it != inclusions.end(); ++it) { + wxCheckBox* ChBIncl = new wxCheckBox( + includesPanel, ID_CHECK_INCLUDE_3RDLIBRARY, wxT(""), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT + ); + ChBIncl->SetToolTip(crea::std2wx("When this box is checked the " + it->first + " library is included in the project configuration for this application.")); + ChBIncl->SetName(crea::std2wx(it->first)); + ChBIncl->SetValue(it->second); + includesGridSizer->Add(ChBIncl, 1, wxEXPAND); + + wxStaticText* LNmIncl = new wxStaticText(includesPanel, wxID_ANY, crea::std2wx(it->first)); + includesGridSizer->Add(LNmIncl, 1, wxEXPAND); + } + + includesGridSizer->AddGrowableCol(1,1); + + includesPanelSizer->Add(includesGridSizer, 1, wxEXPAND, 0); + + //Custom Libraries + wxStaticText* Title2 = new wxStaticText(includesPanel, wxID_ANY, wxT("Custom Libraries:")); + font = Title2->GetFont(); + font.SetWeight(wxFONTWEIGHT_BOLD); + Title2->SetFont(font); + includesPanelSizer->Add(Title2, 0, wxEXPAND | wxALL, 5); + + //inclusion data + std::map inclusionsLibs = this->application->GetCustomLibraries(); + //includesGrid Sizer + wxFlexGridSizer* includesLibGridSizer = new wxFlexGridSizer(inclusionsLibs.size()+1, 2, 0, 5); + + wxStaticText* ChBTitle1 = new wxStaticText( + includesPanel, + wxID_ANY, + wxT("Included"), + wxDefaultPosition, + wxDefaultSize, + wxALIGN_CENTER + ); + wxStaticText* LNmTitle1 = new wxStaticText( + includesPanel, + wxID_ANY, + wxT("Library Name"), + wxDefaultPosition, + wxDefaultSize, + wxALIGN_LEFT + ); + + includesLibGridSizer->Add(ChBTitle1, 1, wxEXPAND); + includesLibGridSizer->Add(LNmTitle1, 1, wxEXPAND); + + for (std::map::iterator it = inclusionsLibs.begin(); it != inclusionsLibs.end(); ++it) { + wxCheckBox* ChBIncl = new wxCheckBox( + includesPanel, ID_CHECK_INCLUDE_LIBRARY, wxT(""), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT + ); + ChBIncl->SetToolTip(crea::std2wx("When this box is checked the " + it->first + " custom library is included in the project configuration for this application.")); + ChBIncl->SetName(crea::std2wx(it->first)); + ChBIncl->SetValue(it->second); + includesLibGridSizer->Add(ChBIncl, 1, wxEXPAND); + + wxStaticText* LNmIncl = new wxStaticText(includesPanel, wxID_ANY, crea::std2wx(it->first)); + includesLibGridSizer->Add(LNmIncl, 1, wxEXPAND); + } + + includesLibGridSizer->AddGrowableCol(1,1); + + includesPanelSizer->Add(includesLibGridSizer, 1, wxEXPAND, 0); + + includesPanel->SetSizer(includesPanelSizer); + includesPanelSizer->Fit(includesPanel); + includesBox->Add(includesPanel, 1, wxEXPAND); + sizer -> Add(includesBox, 0, wxALL | wxEXPAND, 10); + + //Actions //actions StaticBoxSizer wxStaticBoxSizer* actionsBox = new wxStaticBoxSizer(wxVERTICAL, this, wxT("&Actions")); @@ -239,6 +351,16 @@ void wxCDMApplicationDescriptionPanel::OnBtnSetExeName(wxCommandEvent& event) this->executableNametc->SetLabel(crea::std2wx(this->application->GetExecutableName())); } +void wxCDMApplicationDescriptionPanel::On3rdLibraryChBChange(wxCommandEvent& event) +{ + this->application->Set3rdPartyLibrary(crea::wx2std(((wxCheckBox*)event.GetEventObject())->GetName()), ((wxCheckBox*)event.GetEventObject())->GetValue()); +} + +void wxCDMApplicationDescriptionPanel::OnLibraryChBChange(wxCommandEvent& event) +{ + this->application->SetCustomLibrary(crea::wx2std(((wxCheckBox*)event.GetEventObject())->GetName()), ((wxCheckBox*)event.GetEventObject())->GetValue()); +} + void wxCDMApplicationDescriptionPanel::OnBtnCreateClass(wxCommandEvent& event) { //get class name from user