]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/wxCDMProjectDescriptionPanel.cpp
Feature #1711 CreaDevManager application implementation
[crea.git] / lib / creaDevManagerLib / wxCDMProjectDescriptionPanel.cpp
index b40e84f236bda0bc1261ab227f3552a092013338..a6f121b7d02b26c624475e9c5260efd2b5b8a4e1 100644 (file)
@@ -49,6 +49,7 @@ EVT_BUTTON(ID_BUTTON_GOTO_LIB_MANAGER, wxCDMProjectDescriptionPanel::OnBtnManage
 EVT_BUTTON(ID_BUTTON_GOTO_APPLI_MANAGER, wxCDMProjectDescriptionPanel::OnBtnManageApplications)
 EVT_BUTTON(ID_BUTTON_EDIT_CMAKELISTSFILE, wxCDMProjectDescriptionPanel::OnBtnEditCMakeLists)
 EVT_BUTTON(ID_BUTTON_SET_BUILD_PATH, wxCDMProjectDescriptionPanel::OnBtnSetBuildPath)
+EVT_BUTTON(ID_BUTTON_OPEN_BUILD_PATH, wxCDMProjectDescriptionPanel::OnBtnOpenBuild)
 EVT_BUTTON(ID_BUTTON_OPEN_FOLDER, wxCDMProjectDescriptionPanel::OnBtnOpenFolder)
 EVT_BUTTON(ID_BUTTON_SET_VERSION, wxCDMProjectDescriptionPanel::OnBtnSetVersion)
 END_EVENT_TABLE()
@@ -83,6 +84,9 @@ bool wxCDMProjectDescriptionPanel::Create(
   wxPanel::Create(parent, id, pos, size, style);
   this->project = project;
   CreateControls();
+  // this part makes the scrollbars show up
+  this->FitInside(); // ask the sizer about the needed size
+  this->SetScrollRate(5, 5);
   return TRUE;
 }
 
@@ -135,7 +139,7 @@ void wxCDMProjectDescriptionPanel::CreateControls()
   // sourceLocation
   wxBoxSizer* pSourceLocationsz = new wxBoxSizer(wxHORIZONTAL);
   wxStaticText* pSourceLocationtc = new wxStaticText(propertiesPanel, -1, crea::std2wx(this->project->GetPath()));
-  //pSourceLocationtc->SetMaxSize(wxSize(350,-1));
+  pSourceLocationtc->SetMaxSize(wxSize(200,-1));
   wxButton* pSourceLocationbt = new wxButton(propertiesPanel, ID_BUTTON_OPEN_FOLDER, wxT("Open"));
   pSourceLocationbt->SetToolTip(wxT("Open the source folder in the file explorer."));
   pSourceLocationsz->Add(pSourceLocationtc, 1, wxALIGN_CENTER, 1);
@@ -143,11 +147,17 @@ void wxCDMProjectDescriptionPanel::CreateControls()
   // buildLocation
   wxBoxSizer* pBuildLocationsz = new wxBoxSizer(wxHORIZONTAL);
   this->buildPathtc = new wxStaticText(propertiesPanel, -1, crea::std2wx(this->project->GetBuildPath()));
-  //this->buildPathtc->SetMaxSize(wxSize(350,-1));
-  wxButton* pBuildLocationbt = new wxButton(propertiesPanel, ID_BUTTON_SET_BUILD_PATH, wxT("Choose"));
+  this->buildPathtc->SetMaxSize(wxSize(200,-1));
+
+  wxButton* pBuildLocationbt = new wxButton(propertiesPanel, ID_BUTTON_SET_BUILD_PATH, wxT("Choose..."));
   pBuildLocationbt->SetToolTip(wxT("Select a new location for compiling the project."));
+
+  wxButton* pBuildOpenbt = new wxButton(propertiesPanel, ID_BUTTON_OPEN_BUILD_PATH, wxT("Open"));
+  pBuildOpenbt->SetToolTip(wxT("Open the binaries folder in the file explorer."));
+
   pBuildLocationsz->Add(this->buildPathtc, 1, wxALIGN_CENTER, 1);
   pBuildLocationsz->Add(pBuildLocationbt, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 10);
+  pBuildLocationsz->Add(pBuildOpenbt, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 10);
 
   propertiesGridSizer->Add(pVersion, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
   propertiesGridSizer->Add(pVersionsz, 1, wxEXPAND);
@@ -206,7 +216,7 @@ void wxCDMProjectDescriptionPanel::CreateControls()
       actionsGridSizer->Add(appliMgrbt, 1, wxALL | wxEXPAND, 5);
     }
   // edit CMakeLists file
-  wxButton* editCMakebt = new wxButton(actionsPanel, ID_BUTTON_EDIT_CMAKELISTSFILE, _T("D. Edit CMakeLists File"));
+  wxButton* editCMakebt = new wxButton(actionsPanel, ID_BUTTON_EDIT_CMAKELISTSFILE, _T("Edit CMakeLists File"));
   editCMakebt->SetToolTip(wxT("Edit the CMakeLists.txt file of this project."));
   editCMakebt->Connect(wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMProjectDescriptionPanel::OnCMakeMouseEnter,NULL,this);
   editCMakebt->Connect(wxEVT_LEAVE_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMProjectDescriptionPanel::OnCMakeMouseExit,NULL,this);
@@ -244,7 +254,7 @@ void wxCDMProjectDescriptionPanel::OnBtnManagePackages(wxCommandEvent& event)
   wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_DISPLAY_CHANGED);
   newEvent->SetId(1);
   newEvent->SetString(wxT("manage_packages"));
-  newEvent->SetInt(this->project->GetId());
+  newEvent->SetClientData(this->project);
   wxPostEvent(this->GetParent(), *newEvent);
   event.Skip();
 }
@@ -256,12 +266,11 @@ void wxCDMProjectDescriptionPanel::OnBtnManageLibraries(wxCommandEvent& event)
   newEvent->SetString(wxT("manage_libraries"));
   wxPostEvent(this->GetParent(), *newEvent);
 
-  wxCommandEvent* newEvent1 = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED);
+  wxCommandEvent* newEvent1 = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
 
   if(this->project->GetLib() != NULL)
     {
-      int CMId = this->project->GetLib()->GetId();
-      newEvent1->SetInt(CMId);
+      newEvent1->SetClientData(this->project->GetLib());
       newEvent1->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent1);
     }
@@ -276,12 +285,11 @@ void wxCDMProjectDescriptionPanel::OnBtnManageApplications(wxCommandEvent& event
   newEvent->SetString(wxT("manage_applications"));
   wxPostEvent(this->GetParent(), *newEvent);
 
-  wxCommandEvent* newEvent1 = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED);
+  wxCommandEvent* newEvent1 = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
 
   if(this->project->GetAppli() != NULL)
     {
-      int CMId = this->project->GetAppli()->GetId();
-      newEvent1->SetInt(CMId);
+      newEvent1->SetClientData(this->project->GetAppli());
       newEvent1->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent1);
     }
@@ -295,19 +303,17 @@ void wxCDMProjectDescriptionPanel::OnBtnEditCMakeLists(wxCommandEvent& event)
   if(!this->project->OpenCMakeListsFile(result))
     wxMessageBox(crea::std2wx(*result),_T("Open CMakeLists File - Error!"),wxOK | wxICON_ERROR);
 
-  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED);
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
 
   if(this->project->GetCMakeLists() != NULL)
     {
-      int CMId = this->project->GetCMakeLists()->GetId();
-      newEvent->SetInt(CMId);
+      newEvent->SetClientData(this->project->GetCMakeLists());
       newEvent->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent);
     }
 }
 
-void
-wxCDMProjectDescriptionPanel::OnBtnSetBuildPath(wxCommandEvent& event)
+void wxCDMProjectDescriptionPanel::OnBtnSetBuildPath(wxCommandEvent& event)
 {
   wxDirDialog* dialog = new wxDirDialog(this, wxT("Choose the new build location for the project"));
   if(dialog->ShowModal())
@@ -319,8 +325,13 @@ wxCDMProjectDescriptionPanel::OnBtnSetBuildPath(wxCommandEvent& event)
   this->buildPathtc->SetLabel(crea::std2wx(this->project->GetBuildPath()));
 }
 
-void
-wxCDMProjectDescriptionPanel::OnBtnOpenFolder(wxCommandEvent& event)
+void wxCDMProjectDescriptionPanel::OnBtnOpenBuild(wxCommandEvent& event)
+{
+  if(CDMUtilities::openFileExplorer(this->project->GetBuildPath()))
+    wxMessageBox(crea::std2wx("The folder doesn't exist or hasn't yet been created."),_T("Open Folder - Error!"),wxOK | wxICON_ERROR);
+}
+
+void wxCDMProjectDescriptionPanel::OnBtnOpenFolder(wxCommandEvent& event)
 {
   std::string* result;
   if(!this->project->OpenInFileExplorer(result))
@@ -355,12 +366,11 @@ void wxCDMProjectDescriptionPanel::OnBtnSetVersion(wxCommandEvent& event)
 
 void wxCDMProjectDescriptionPanel::OnCMakeMouseEnter(wxMouseEvent& event)
 {
-  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_SELECTED);
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED);
 
   if(this->project->GetCMakeLists() != NULL)
     {
-      int CMId = this->project->GetCMakeLists()->GetId();
-      newEvent->SetInt(CMId);
+      newEvent->SetClientData(this->project->GetCMakeLists());
       newEvent->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent);
     }
@@ -369,12 +379,11 @@ void wxCDMProjectDescriptionPanel::OnCMakeMouseEnter(wxMouseEvent& event)
 
 void wxCDMProjectDescriptionPanel::OnCMakeMouseExit(wxMouseEvent& event)
 {
-  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED);
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
 
   if(this->project->GetCMakeLists() != NULL)
     {
-      int CMId = this->project->GetCMakeLists()->GetId();
-      newEvent->SetInt(CMId);
+      newEvent->SetClientData(this->project->GetCMakeLists());
       newEvent->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent);
     }
@@ -383,12 +392,11 @@ void wxCDMProjectDescriptionPanel::OnCMakeMouseExit(wxMouseEvent& event)
 
 void wxCDMProjectDescriptionPanel::OnAppliMouseEnter(wxMouseEvent& event)
 {
-  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_SELECTED);
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED);
   std::cout << "entra appli " << this->project->GetAppli()->GetCMakeLists();
   if(this->project->GetAppli() != NULL)
     {
-      int AppId = this->project->GetAppli()->GetId();
-      newEvent->SetInt(AppId);
+      newEvent->SetClientData(this->project->GetAppli());
       newEvent->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent);
     }
@@ -397,12 +405,11 @@ void wxCDMProjectDescriptionPanel::OnAppliMouseEnter(wxMouseEvent& event)
 
 void wxCDMProjectDescriptionPanel::OnAppliMouseExit(wxMouseEvent& event)
 {
-  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED);
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
 
   if(this->project->GetAppli() != NULL)
     {
-      int AppId = this->project->GetAppli()->GetId();
-      newEvent->SetInt(AppId);
+      newEvent->SetClientData(this->project->GetAppli());
       newEvent->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent);
     }
@@ -411,12 +418,11 @@ void wxCDMProjectDescriptionPanel::OnAppliMouseExit(wxMouseEvent& event)
 
 void wxCDMProjectDescriptionPanel::OnLibMouseEnter(wxMouseEvent& event)
 {
-  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_SELECTED);
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED);
 
   if(this->project->GetLib() != NULL)
     {
-      int LbId = this->project->GetLib()->GetId();
-      newEvent->SetInt(LbId);
+      newEvent->SetClientData(this->project->GetLib());
       newEvent->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent);
     }
@@ -425,12 +431,11 @@ void wxCDMProjectDescriptionPanel::OnLibMouseEnter(wxMouseEvent& event)
 
 void wxCDMProjectDescriptionPanel::OnLibMouseExit(wxMouseEvent& event)
 {
-  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED);
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
 
   if(this->project->GetLib() != NULL)
     {
-      int LbId = this->project->GetLib()->GetId();
-      newEvent->SetInt(LbId);
+      newEvent->SetClientData(this->project->GetLib());
       newEvent->SetId(0);
       wxPostEvent(this->GetParent(), *newEvent);
     }