]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp
Feature #1711
[crea.git] / lib / creaDevManagerLib / wxCDMApplicationDescriptionPanel.cpp
index bf0acee23ae8a81143a51ecb8ebddb56fa4f06e7..60fbdf64ac1541a7c166bbd65ada113fbf492acd 100644 (file)
@@ -49,6 +49,7 @@ EVT_BUTTON(ID_BUTTON_CREATE_CLASS, wxCDMApplicationDescriptionPanel::OnBtnCreate
 EVT_BUTTON(ID_BUTTON_CREATE_FOLDER, wxCDMApplicationDescriptionPanel::OnBtnCreateFolder)
 EVT_BUTTON(ID_BUTTON_EDIT_CMAKELISTSFILE, wxCDMApplicationDescriptionPanel::OnBtnEditCMakeLists)
 EVT_BUTTON(ID_BUTTON_OPEN_FOLDER, wxCDMApplicationDescriptionPanel::OnBtnOpenFolder)
+EVT_BUTTON(ID_BUTTON_OPEN_CXX, wxCDMApplicationDescriptionPanel::OnBtnOpenMain)
 END_EVENT_TABLE()
 
 wxCDMApplicationDescriptionPanel::wxCDMApplicationDescriptionPanel(
@@ -142,22 +143,27 @@ void wxCDMApplicationDescriptionPanel::CreateControls()
   //actions Sizer
   wxBoxSizer* actionsPanelSizer = new wxBoxSizer(wxHORIZONTAL);
   //actionsGrid Sizer
-  wxFlexGridSizer* actionsGridSizer = new wxFlexGridSizer(2, 2, 9, 15);
+  wxFlexGridSizer* actionsGridSizer = new wxFlexGridSizer(3, 2, 9, 15);
 
   wxButton* createClassbt = new wxButton(actionsPanel, ID_BUTTON_CREATE_CLASS, _T("Create Class (Optional)"));
   createClassbt->SetToolTip(wxT("Create a new Class (.h and .cxx files)."));
   wxButton* createFolderbt = new wxButton(actionsPanel, ID_BUTTON_CREATE_FOLDER, _T("Create Folder (Optional)"));
   createFolderbt->SetToolTip(wxT("Create a new Folder inside the application folder."));
+  wxButton* openMainbt = new wxButton(actionsPanel, ID_BUTTON_OPEN_CXX, _T("A. Open Main File (Optional)"));
+  openMainbt->SetToolTip(wxT("Open the main file in the application folder with the default code editor."));
+  openMainbt->Connect(wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMApplicationDescriptionPanel::OnMainMouseEnter,NULL,this);
+  openMainbt->Connect(wxEVT_LEAVE_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMApplicationDescriptionPanel::OnMainMouseExit,NULL,this);
   wxButton* editCMakebt = new wxButton(actionsPanel, ID_BUTTON_EDIT_CMAKELISTSFILE, _T("B. Edit CMakeLists File"));
   editCMakebt->SetToolTip(wxT("Edit the CMakeLists.txt file inside this application."));
   editCMakebt->Connect(wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMApplicationDescriptionPanel::OnCMakeMouseEnter,NULL,this);
   editCMakebt->Connect(wxEVT_LEAVE_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMApplicationDescriptionPanel::OnCMakeMouseExit,NULL,this);
-  wxButton* openFolderbt = new wxButton(actionsPanel, ID_BUTTON_OPEN_FOLDER, _T("A. Open Application Folder"));
+  wxButton* openFolderbt = new wxButton(actionsPanel, ID_BUTTON_OPEN_FOLDER, _T("C. Open Application Folder"));
   openFolderbt->SetToolTip(wxT("Open the application folder in the file explorer."));
 
 
-  actionsGridSizer->Add(openFolderbt, 1, wxALL | wxEXPAND, 5);
+  actionsGridSizer->Add(openMainbt, 1, wxALL | wxEXPAND, 5);
   actionsGridSizer->Add(editCMakebt, 1, wxALL | wxEXPAND, 5);
+  actionsGridSizer->Add(openFolderbt, 1, wxALL | wxEXPAND, 5);
   actionsGridSizer->Add(createClassbt, 1, wxALL | wxEXPAND, 5);
   actionsGridSizer->Add(createFolderbt, 1, wxALL | wxEXPAND, 5);
 
@@ -334,3 +340,55 @@ void wxCDMApplicationDescriptionPanel::OnCMakeMouseExit(wxMouseEvent& event)
     }
   event.Skip();
 }
+
+void wxCDMApplicationDescriptionPanel::OnBtnOpenMain(wxCommandEvent& event)
+{
+  if (this->application->GetMainFile() != NULL)
+    {
+      if (CDMUtilities::openTextEditor(this->application->GetMainFile()->GetPath()))
+      {
+        wxMessageBox(crea::std2wx("The main file couldn't be opened."),_T("Open Main File - Error!"),wxOK | wxICON_ERROR);
+      }
+
+      wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED);
+
+      int MId = this->application->GetMainFile()->GetId();
+      newEvent->SetInt(MId);
+      newEvent->SetId(0);
+      wxPostEvent(this->GetParent(), *newEvent);
+
+      event.Skip();
+    }
+  else
+    {
+      wxMessageBox(crea::std2wx("There is no main file or it couldn't be detected."),_T("Open Main File - Error!"),wxOK | wxICON_ERROR);
+    }
+}
+
+void wxCDMApplicationDescriptionPanel::OnMainMouseEnter(wxMouseEvent& event)
+{
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_SELECTED);
+
+  if(this->application->GetMainFile() != NULL)
+    {
+      int MId = this->application->GetMainFile()->GetId();
+      newEvent->SetInt(MId);
+      newEvent->SetId(0);
+      wxPostEvent(this->GetParent(), *newEvent);
+    }
+  event.Skip();
+}
+
+void wxCDMApplicationDescriptionPanel::OnMainMouseExit(wxMouseEvent& event)
+{
+  wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_COMMAND_LIST_ITEM_DESELECTED);
+
+  if(this->application->GetMainFile() != NULL)
+    {
+      int MId = this->application->GetMainFile()->GetId();
+      newEvent->SetInt(MId);
+      newEvent->SetId(0);
+      wxPostEvent(this->GetParent(), *newEvent);
+    }
+  event.Skip();
+}