X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FwxCDMApplicationDescriptionPanel.cpp;h=bf0acee23ae8a81143a51ecb8ebddb56fa4f06e7;hb=752294dd30e2ee94f38be513d441f4716509ce13;hp=2180eb76cea163abefbb23fedf3d17fe0e8746a6;hpb=4e0312091408bc9bd77f3f70ade44d207365cdbe;p=crea.git diff --git a/lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp b/lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp index 2180eb7..bf0acee 100644 --- a/lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp +++ b/lib/creaDevManagerLib/wxCDMApplicationDescriptionPanel.cpp @@ -93,16 +93,21 @@ void wxCDMApplicationDescriptionPanel::CreateControls() returnbt->SetToolTip(wxT("Return to the active project description.")); sizer->Add(returnbt, 0, wxALIGN_CENTER | wxALL, 5); - //Title - sizer->Add(new wxStaticText(this, -1, _("Application")),0, wxALIGN_CENTER, 0); - - //Image - sizer->Add(new wxStaticBitmap(this, -1, wxBitmap(AIcon64)),0, wxALIGN_CENTER, 0); - - //Application Name - sizer->Add(new wxStaticText(this, -1, crea::std2wx(this->application->GetName())),0, wxALIGN_CENTER, 0); - - //Properties + //Header + wxBoxSizer* headerSizer = new wxBoxSizer(wxHORIZONTAL); + { + //Image + headerSizer->Add(new wxStaticBitmap(this, -1, wxBitmap(AIcon64)),0, wxALIGN_CENTER, 0); + wxBoxSizer* textSizer = new wxBoxSizer(wxVERTICAL); + //Title + textSizer->Add(new wxStaticText(this, -1, _("Application")),0, wxALIGN_LEFT, 0); + //Application Name + textSizer->Add(new wxStaticText(this, -1, crea::std2wx(this->application->GetName())),0, wxALIGN_LEFT, 0); + headerSizer->Add(textSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5); + } + sizer->Add(headerSizer, 0, wxALIGN_CENTER); + + /* //Properties wxStaticBoxSizer* propertiesBox = new wxStaticBoxSizer(wxVERTICAL, this, wxT("&Properties")); wxPanel* propertiesPanel = new wxPanel(this); wxBoxSizer* propertiesPanelSizer = new wxBoxSizer(wxVERTICAL); @@ -127,7 +132,7 @@ void wxCDMApplicationDescriptionPanel::CreateControls() propertiesPanelSizer->Fit(propertiesPanel); propertiesBox->Add(propertiesPanel, 0, wxEXPAND); sizer->Add(propertiesBox, 0, wxEXPAND | wxALL, 10); - + */ //Actions //actions StaticBoxSizer wxStaticBoxSizer* actionsBox = new wxStaticBoxSizer(wxVERTICAL, this, wxT("&Actions")); @@ -136,28 +141,34 @@ void wxCDMApplicationDescriptionPanel::CreateControls() wxPanel* actionsPanel = new wxPanel(this); //actions Sizer wxBoxSizer* actionsPanelSizer = new wxBoxSizer(wxHORIZONTAL); + //actionsGrid Sizer + wxFlexGridSizer* actionsGridSizer = new wxFlexGridSizer(2, 2, 9, 15); - wxButton* createClassbt = new wxButton(actionsPanel, ID_BUTTON_CREATE_CLASS, _T("Create Class")); + 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")); + 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* editCMakebt = new wxButton(actionsPanel, ID_BUTTON_EDIT_CMAKELISTSFILE, _T("Edit CMakeLists File")); + 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("Open Application Folder")); + wxButton* openFolderbt = new wxButton(actionsPanel, ID_BUTTON_OPEN_FOLDER, _T("A. Open Application Folder")); openFolderbt->SetToolTip(wxT("Open the application folder in the file explorer.")); - actionsPanelSizer->Add(createClassbt, 0, wxALL, 5); - actionsPanelSizer->Add(createFolderbt, 0, wxALL, 5); - actionsPanelSizer->Add(editCMakebt, 0, wxALL, 5); - actionsPanelSizer->Add(openFolderbt, 0, wxALL, 5); + actionsGridSizer->Add(openFolderbt, 1, wxALL | wxEXPAND, 5); + actionsGridSizer->Add(editCMakebt, 1, wxALL | wxEXPAND, 5); + actionsGridSizer->Add(createClassbt, 1, wxALL | wxEXPAND, 5); + actionsGridSizer->Add(createFolderbt, 1, wxALL | wxEXPAND, 5); //SetPanel sizer and box + actionsGridSizer->AddGrowableCol(0,1); + actionsGridSizer->AddGrowableCol(1,1); + + actionsPanelSizer->Add(actionsGridSizer, 1, wxEXPAND, 0); 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 @@ -205,9 +216,38 @@ void wxCDMApplicationDescriptionPanel::OnBtnSetExeName(wxCommandEvent& event) void wxCDMApplicationDescriptionPanel::OnBtnCreateClass(wxCommandEvent& event) { - //TODO: implement method - std::cerr << "Event OnBtnCreateClass not implemented" << std::endl; - event.Skip(); + //get class name from user + wxTextEntryDialog* newClassDlg = new wxTextEntryDialog( + this, + wxT("Please enter the new class name."), + wxT("New Class - creaDevManager"), + wxT(""), + wxOK | wxCANCEL + ); + + if (newClassDlg->ShowModal() == wxID_OK) + { + std::string className = crea::wx2std(newClassDlg->GetValue()); + //check class name + if(className.size() > 0) + { + if(!this->application->CreateClass(className)) + wxMessageBox(crea::std2wx("Something has gone wrong with the creation of the class."),_T("New Class - Error!"),wxOK | wxICON_ERROR); + + ((wxCDMMainFrame*)this->GetParent())->RefreshProject(); + + wxCommandEvent* newEvent = new wxCommandEvent(wxEVT_DISPLAY_CHANGED); + newEvent->SetId(0); + newEvent->SetInt(this->application->GetId()); + wxPostEvent(this->GetParent(), *newEvent); + + wxMessageBox(crea::std2wx("The class has been created successfully."),_T("New Class - Success"),wxOK | wxICON_INFORMATION); + } + else + { + wxMessageBox(crea::std2wx("The new class name cannot be empty."),_T("New Class - Error!"),wxOK | wxICON_ERROR); + } + } } void wxCDMApplicationDescriptionPanel::OnBtnCreateFolder(wxCommandEvent& event)