]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/wxCDMProjectDescriptionPanel.h
Feature #1711 CreaDevManager application implementation
[crea.git] / lib / creaDevManagerLib / wxCDMProjectDescriptionPanel.h
index e91dca0099475c97a27c1c6c9a596c4c1f1eea49..1b7972670f621b527249e78e0f76472f0f2d8bdc 100644 (file)
 #define WXCDMPROJECTDESCRIPTIONPANEL_H_
 
 #include <creaWx.h>
-#include <wx/panel.h>
 
-class wxCDMProjectDescriptionPanel : public wxPanel
+#include "modelCDMProject.h"
+
+/**
+ * Project Description Panel. Shows the project properties and the principal actions for the project.
+ */
+class wxCDMProjectDescriptionPanel : public wxScrolledWindow
 {
+  DECLARE_EVENT_TABLE()
 public:
+
+  /**
+   * Project Description panel Constructor.
+   * @param parent Parent window reference.
+   * @param project Project class reference.
+   * @param id Panel ID. By default -1.
+   * @param caption Panel label. By default "Description Frame".
+   * @param pos Panel position. By default wxDefaultPosition.
+   * @param size Panel size. By default wxDefaultSize.
+   * @param style Panel style. By default wxDEFAULT_FRAME_STYLE.
+   */
   wxCDMProjectDescriptionPanel(
       wxWindow* parent,
+      modelCDMProject* project,
       wxWindowID id = -1,
       const wxString& caption = _("Description Frame"),
       const wxPoint& pos = wxDefaultPosition,
@@ -50,10 +67,25 @@ public:
       long style = wxDEFAULT_FRAME_STYLE
   );
 
+  /**
+   * Destructor.
+   */
   ~wxCDMProjectDescriptionPanel();
 
+  /**
+   * Project Description panel Creator.
+   * @param parent Parent window reference.
+   * @param project Project class reference.
+   * @param id Panel ID. By default -1.
+   * @param caption Panel label. By default "Description Frame".
+   * @param pos Panel position. By default wxDefaultPosition.
+   * @param size Panel size. By default wxDefaultSize.
+   * @param style Panel style. By default wxDEFAULT_FRAME_STYLE.
+   * @return True if creation was successful.
+   */
   bool Create(
       wxWindow* parent,
+      modelCDMProject* project,
       wxWindowID id = -1,
       const wxString& caption = _("Description Frame"),
       const wxPoint& pos = wxDefaultPosition,
@@ -61,10 +93,98 @@ public:
       long style = wxDEFAULT_FRAME_STYLE
   );
 
+  /**
+   * Creates all the controls in the panel (property and action controls).
+   */
   void CreateControls();
 
+  /**
+   * Retrieves the described project class reference.
+   * @return Project reference.
+   */
+  modelCDMProject* GetProject() const;
+
+private:
+  /**
+   * Project described
+   */
+  modelCDMProject* project;
+  /**
+   * Text control showing the project version.
+   */
+  wxStaticText* versiontc;
+  /**
+   * Text control showing the project version date.
+   */
+  wxStaticText* versionDatetc;
+  /**
+   * Text control showing the project build path.
+   */
+  wxStaticText* buildPathtc;
+
   //handlers
 protected:
+  /**
+   * Handles when the manage packages button is pressed.
+   */
+  void OnBtnManagePackages(wxCommandEvent& event);
+  /**
+   * Handles when the manage libraries button is pressed.
+   */
+  void OnBtnManageLibraries(wxCommandEvent& event);
+  /**
+   * Handles when the manage applications button is pressed.
+   */
+  void OnBtnManageApplications(wxCommandEvent& event);
+  /**
+   * Handles when the 3rd party libraries manager button is pressed.
+   */
+  void OnBtnConfigProject(wxCommandEvent& event);
+  /**
+   * Handles when the open cmakelists file button is pressed.
+   */
+  void OnBtnEditCMakeLists(wxCommandEvent& event);
+  /**
+   * Handles when the choose build path button is pressed.
+   */
+  void OnBtnSetBuildPath(wxCommandEvent& event);
+  /**
+   * Handles when the open build folder button is pressed.
+   */
+  void OnBtnOpenBuild(wxCommandEvent& event);
+  /**
+   * Handles when the open containing folder button is pressed.
+   */
+  void OnBtnOpenFolder(wxCommandEvent& event);
+  /**
+   * Handles when the set version button is pressed.
+   */
+  void OnBtnSetVersion(wxCommandEvent& event);
+
+  /**
+   * Handles when the open cmakelists file button is hovered.
+   */
+  void OnCMakeMouseEnter(wxMouseEvent& event);
+  /**
+   * Handles when the open cmakelists file button finishes hover.
+   */
+  void OnCMakeMouseExit(wxMouseEvent& event);
+  /**
+   * Handles when the manage applications button is hovered.
+   */
+  void OnAppliMouseEnter(wxMouseEvent& event);
+  /**
+   * Handles when the manage applications file button finishes hover.
+   */
+  void OnAppliMouseExit(wxMouseEvent& event);
+  /**
+   * Handles when the manage libraries button is hovered.
+   */
+  void OnLibMouseEnter(wxMouseEvent& event);
+  /**
+   * Handles when the manage libraries button finishes hover.
+   */
+  void OnLibMouseExit(wxMouseEvent& event);
 };
 
 #endif /* WXCDMPROJECTDESCRIPTIONPANEL_H_ */