#include "wxCDMMainFrame.h"
#include "wxCDMNewPackageDialog.h"
+#include "wxCDMProjectHelpDialog.h"
+
#include "creaDevManagerIds.h"
#include "images/PrIcon64.xpm"
#include "CDMUtilities.h"
)
{
wxPanel::Create(parent, id, pos, size, style);
+ // this part makes the scrollbars show up
+ this->FitInside(); // ask the sizer about the needed size
+ this->SetScrollRate(5, 5);
+
this->project = project;
CreateControls();
return TRUE;
{
wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
- //Welcome
- sizer->Add(new wxStaticText(this, -1, _("Project")),0, wxALIGN_CENTER, 0);
+ //Header
+ wxBoxSizer* headerSizer = new wxBoxSizer(wxHORIZONTAL);
+ {
+ //Image
+ headerSizer->Add(new wxStaticBitmap(this, -1, wxBitmap(PrIcon64)),0, wxALIGN_CENTER, 0);
+ wxBoxSizer* textSizer = new wxBoxSizer(wxVERTICAL);
+ //Title
+ textSizer->Add(new wxStaticText(this, -1, _("Project")),0, wxALIGN_LEFT, 0);
+ //Project Name
+ textSizer->Add(new wxStaticText(this, -1, crea::std2wx(this->project->GetName())),0, wxALIGN_LEFT, 0);
+ headerSizer->Add(textSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5);
+ }
+ sizer->Add(headerSizer, 0, wxALIGN_CENTER);
+
- //Image
- sizer->Add(new wxStaticBitmap(this, -1, wxBitmap(PrIcon64)),0, wxALIGN_CENTER, 0);
- //Project Name
- sizer->Add(new wxStaticText(this, -1, crea::std2wx(this->project->GetName())),0, wxALIGN_CENTER, 0);
//----------------------------------Project Properties-----------------------------------
//properties StaticBoxSizer
this->versiontc = new wxStaticText(propertiesPanel, wxID_ANY, crea::std2wx(this->project->GetVersion()));
wxButton* pVersionbt = new wxButton(propertiesPanel, ID_BUTTON_SET_VERSION, wxT("Set"));
pVersionbt->SetToolTip(wxT("Update the version of the project."));
- pVersionsz->Add(this->versiontc, 0, wxALIGN_CENTER_VERTICAL, 0);
- pVersionsz->Add(pVersionbt, 0, wxALIGN_CENTER | wxLEFT, 10);
+ pVersionsz->Add(this->versiontc, 1, wxALIGN_CENTER, 1);
+ pVersionsz->Add(pVersionbt, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 10);
// versionDate
this->versionDatetc = new wxStaticText(propertiesPanel, -1, crea::std2wx(this->project->GetVersionDate()));
// 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, 0, wxALIGN_CENTER, 0);
+ pSourceLocationsz->Add(pSourceLocationtc, 1, wxALIGN_CENTER, 1);
pSourceLocationsz->Add(pSourceLocationbt, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 10);
// buildLocation
wxBoxSizer* pBuildLocationsz = new wxBoxSizer(wxHORIZONTAL);
this->buildPathtc = new wxStaticText(propertiesPanel, -1, crea::std2wx(this->project->GetBuildPath()));
- this->buildPathtc->SetMaxSize(wxSize(350,-1));
+ 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."));
- pBuildLocationsz->Add(this->buildPathtc, 0, wxALIGN_CENTER, 0);
+ pBuildLocationsz->Add(this->buildPathtc, 1, wxALIGN_CENTER, 1);
pBuildLocationsz->Add(pBuildLocationbt, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 10);
propertiesGridSizer->Add(pVersion, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL);
propertiesGridSizer->AddGrowableCol(1,1);
- propertiesPanelSizer-> Add(propertiesGridSizer, 0, wxALL | wxEXPAND, 5);
+ propertiesPanelSizer-> Add(propertiesGridSizer, 1, wxALL | wxEXPAND, 5);
//SetPanel sizer and box
propertiesPanel->SetSizer(propertiesPanelSizer);
propertiesPanelSizer->Fit(propertiesPanel);
- propertiesBox->Add(propertiesPanel, 0, wxEXPAND);
- sizer->Add(propertiesBox, 0, wxEXPAND | wxALL, 10);
+ propertiesBox->Add(propertiesPanel, 1, wxEXPAND);
+ sizer->Add(propertiesBox, 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
//----------------------------------Project Actions--------------------------------------
//actions StaticBoxSizer
wxPanel* actionsPanel = new wxPanel(this);
//actions Sizer
wxBoxSizer* actionsPanelSizer = new wxBoxSizer(wxHORIZONTAL);
+
+ //actionsGrid Sizer
+ wxFlexGridSizer* actionsGridSizer = new wxFlexGridSizer(2, 2, 9, 15);
//buttons
- // package manager
- wxButton* packageMgrbt = new wxButton(actionsPanel, ID_BUTTON_GOTO_PACKAGE_MANAGER, _T("Package Manager"));
- packageMgrbt->SetToolTip(wxT("Find the current available packages into this project. You can also create new Packages in this section."));
- actionsPanelSizer->Add(packageMgrbt, 0, wxALL, 5);
// lib manager
- // show only if there is a lib folder
+ // show only if there is a lib folder
if(this->project->GetLib() != NULL)
{
- wxButton* libMgrbt = new wxButton(actionsPanel, ID_BUTTON_GOTO_LIB_MANAGER, _T("Library Manager"));
+ wxButton* libMgrbt = new wxButton(actionsPanel, ID_BUTTON_GOTO_LIB_MANAGER, _T("A. Library Manager"));
libMgrbt->SetToolTip(wxT("Find the current available libraries into this project. You can also create new Libraries in this section as well as edit the lib folder's CMakeLists.txt file."));
libMgrbt->Connect(wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMProjectDescriptionPanel::OnLibMouseEnter,NULL,this);
libMgrbt->Connect(wxEVT_LEAVE_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMProjectDescriptionPanel::OnLibMouseExit,NULL,this);
- actionsPanelSizer->Add(libMgrbt, 0, wxALL, 5);
+ actionsGridSizer->Add(libMgrbt, 1, wxALL | wxEXPAND, 5);
}
+ // package manager
+ wxButton* packageMgrbt = new wxButton(actionsPanel, ID_BUTTON_GOTO_PACKAGE_MANAGER, _T("B. Package Manager"));
+ packageMgrbt->SetToolTip(wxT("Find the current available packages into this project. You can also create new Packages in this section."));
+ actionsGridSizer->Add(packageMgrbt, 1, wxALL | wxEXPAND, 5);
+
// appli manager
- // show only if there is a appli folder
+ // show only if there is a appli folder
if(this->project->GetAppli() != NULL)
{
- wxButton* appliMgrbt = new wxButton(actionsPanel, ID_BUTTON_GOTO_APPLI_MANAGER, _T("Application Manager"));
+ wxButton* appliMgrbt = new wxButton(actionsPanel, ID_BUTTON_GOTO_APPLI_MANAGER, _T("C. Application Manager"));
appliMgrbt->SetToolTip(wxT("Find the current available applications into this project. You can also create new Applications in this section as well as edit the appli folder's CMakeLists.txt file."));
appliMgrbt->Connect(wxEVT_ENTER_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMProjectDescriptionPanel::OnAppliMouseEnter,NULL,this);
appliMgrbt->Connect(wxEVT_LEAVE_WINDOW, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&wxCDMProjectDescriptionPanel::OnAppliMouseExit,NULL,this);
- actionsPanelSizer->Add(appliMgrbt, 0, wxALL, 5);
+ actionsGridSizer->Add(appliMgrbt, 1, wxALL | wxEXPAND, 5);
}
// 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);
- actionsPanelSizer->Add(editCMakebt, 0, wxALL, 5);
+ actionsGridSizer->Add(editCMakebt, 1, wxALL | wxEXPAND, 5);
+ actionsGridSizer->AddGrowableCol(0,1);
+ actionsGridSizer->AddGrowableCol(1,1);
+
+ actionsPanelSizer->Add(actionsGridSizer, 1, wxEXPAND, 0);
//SetPanel sizer and box
actionsPanel->SetSizer(actionsPanelSizer);
actionsPanelSizer->Fit(actionsPanel);
- actionsBox->Add(actionsPanel, 0, wxALL, 5);
+ actionsBox->Add(actionsPanel, 1, wxALL | wxEXPAND, 5);
sizer->Add(actionsBox, 0, wxEXPAND | wxALL, 10);
//Assign sizer
this->SetSizer(sizer);
sizer->SetSizeHints(this);
+
+ if(((wxCDMMainFrame*)this->GetParent())->isHelp())
+ {
+ wxCDMProjectHelpDialog* helpDialog = new wxCDMProjectHelpDialog(this->GetParent(), this->project, wxID_ANY);
+ helpDialog->Show(true);
+ }
+}
+
+modelCDMProject* wxCDMProjectDescriptionPanel::GetProject() const
+{
+ return this->project;
}
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();
}
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);
}
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->SetId(0);
- wxPostEvent(this->GetParent(), *newEvent1);
- }
+ if(this->project->GetAppli() != NULL)
+ {
+ newEvent1->SetClientData(this->project->GetAppli());
+ newEvent1->SetId(0);
+ wxPostEvent(this->GetParent(), *newEvent1);
+ }
event.Skip();
}
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::OnBtnSetVersion(wxCommandEvent& event)
{
- //TODO: implement method
- std::cerr << "Event OnBtnSetVersion not implemented" << std::endl;
- event.Skip();
-
- //get name
+ //get version
wxString libraryName = wxGetTextFromUser(
wxT("Enter the new version name"),
- wxT("New Library - creaDevManager"),
+ wxT("Change Project Version - creaDevManager"),
crea::std2wx(this->project->GetVersion())
);
//check name
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}