#include "wxCreaDevManagerMainFrame.h" #include "creaDevManagerIds.h" #include "wxCreaDevManagerTreeCtrl.h" #include "wxCreaDevManagerDescriptionPanel.h" #include "wxCreaDevManagerProjectActionsPanel.h" #include "wxCreaDevManagerNewProjectDialog.h" #include "ControlCreaDevManagerMain.h" #include #include #include #include #include #include #include BEGIN_EVENT_TABLE(wxCreaDevManagerMainFrame, wxFrame) EVT_MENU(ID_MENU_NEW_PROJECT, wxCreaDevManagerMainFrame::OnMenuNewProject) EVT_MENU(ID_MENU_OPEN_PROJECT, wxCreaDevManagerMainFrame::OnMenuOpenProject) EVT_MENU(ID_MENU_OPEN_RECENT, wxCreaDevManagerMainFrame::OnMenuOpenRecent) EVT_MENU(ID_MENU_CLOSE_PROJECT, wxCreaDevManagerMainFrame::OnMenuCloseProject) EVT_MENU(ID_MENU_CLOSE_ALL_PROJECTS, wxCreaDevManagerMainFrame::OnMenuCloseAllProjects) EVT_MENU(ID_MENU_EXPORT_HIERARCHY, wxCreaDevManagerMainFrame::OnMenuExportHierarchy) EVT_MENU(ID_MENU_EXIT, wxCreaDevManagerMainFrame::OnMenuExit) EVT_MENU(ID_MENU_REFRESH_PROJECT, wxCreaDevManagerMainFrame::OnMenuRefreshProject) EVT_MENU(ID_MENU_CUT, wxCreaDevManagerMainFrame::OnMenuMenuCut) EVT_MENU(ID_MENU_COPY, wxCreaDevManagerMainFrame::OnMenuMenuCopy) EVT_MENU(ID_MENU_PASTE, wxCreaDevManagerMainFrame::OnMenuMenuPaste) EVT_MENU(ID_MENU_DELETE, wxCreaDevManagerMainFrame::OnMenuMenuDelete) EVT_MENU(ID_MENU_SELECT_ALL, wxCreaDevManagerMainFrame::OnMenuSelectAll) EVT_MENU(ID_MENU_SELECT_NONE, wxCreaDevManagerMainFrame::OnMenuSelectNone) EVT_MENU(ID_MENU_EVENT_LOG, wxCreaDevManagerMainFrame::OnMenuEventLog) EVT_MENU(ID_MENU_BBTK_GRAPHICAL_EDITOR, wxCreaDevManagerMainFrame::OnMenuBBTKGraphicalEditor) EVT_MENU(ID_MENU_MINITOOLS, wxCreaDevManagerMainFrame::OnMenuMiniTools) EVT_MENU(ID_MENU_CODE_EDITOR, wxCreaDevManagerMainFrame::OnMenuCodeEditor) EVT_MENU(ID_MENU_COMMAND_LINE, wxCreaDevManagerMainFrame::OnMenuCommandLine) EVT_MENU(ID_MENU_HELP, wxCreaDevManagerMainFrame::OnMenuHelp) EVT_MENU(ID_MENU_REPORT_BUG, wxCreaDevManagerMainFrame::OnMenuReportBug) EVT_MENU(ID_MENU_ABOUT_CREADEVMANAGER, wxCreaDevManagerMainFrame::OnMenuAboutCreaDevManager) EVT_MENU(ID_MENU_ABOUT_CREATIS, wxCreaDevManagerMainFrame::OnMenuAboutCreatis) EVT_BUTTON(ID_BUTTON_NEWPROJECT, wxCreaDevManagerMainFrame::OnMenuNewProject) EVT_BUTTON(ID_BUTTON_OPENPROJECT, wxCreaDevManagerMainFrame::OnMenuOpenProject) END_EVENT_TABLE() wxCreaDevManagerMainFrame::wxCreaDevManagerMainFrame( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { Create(parent, id, caption, pos, size, style); } wxCreaDevManagerMainFrame::~wxCreaDevManagerMainFrame() { auiManager.UnInit(); } void wxCreaDevManagerMainFrame::UpdateVisual() { auiManager.Update(); this->Update(); } bool wxCreaDevManagerMainFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) { wxFrame::Create(parent, id, caption, pos, size, style); this->controller = new ControlCreaDevManagerMain(); this->controller->LoadActiveProjects(); CreateMenus(); CreateControls(); return TRUE; } void wxCreaDevManagerMainFrame::CreateMenus() { wxMenuBar* menuBar = new wxMenuBar; //FileMenu menu_File = new wxMenu(); menu_File->Append(ID_MENU_NEW_PROJECT, wxString("&New Project...")); menu_File->Append(ID_MENU_OPEN_PROJECT, wxString("&Open Project...")); menu_File->Append(ID_MENU_OPEN_RECENT, wxString("Open &Recent")); menu_File->AppendSeparator(); menu_File->Append(ID_MENU_CLOSE_PROJECT, wxString("&Close Project")); menu_File->Append(ID_MENU_CLOSE_ALL_PROJECTS, wxString("C&lose All Projects")); menu_File->AppendSeparator(); menu_File->Append(ID_MENU_EXPORT_HIERARCHY, wxString("&Export Project Hierarchy...")); menu_File->AppendSeparator(); menu_File->Append(ID_MENU_EXIT, wxString("E&xit")); menuBar->Append(menu_File, wxString("&File")); //EditMenu menu_Edit = new wxMenu(); menu_Edit->Append(ID_MENU_REFRESH_PROJECT, wxString("&Refresh Project")); menu_Edit->AppendSeparator(); menu_Edit->Append(ID_MENU_CUT, wxString("Cu&t")); menu_Edit->Append(ID_MENU_COPY, wxString("&Copy")); menu_Edit->Append(ID_MENU_PASTE, wxString("&Paste")); menu_Edit->AppendSeparator(); menu_Edit->Append(ID_MENU_DELETE, wxString("&Delete")); menu_Edit->Append(ID_MENU_SELECT_ALL, wxString("Select &All")); menu_Edit->Append(ID_MENU_SELECT_NONE, wxString("Ca&ncel Selection")); menuBar->Append(menu_Edit, wxString("&Edit")); //ToolsMenu menu_Tools = new wxMenu(); menu_Tools->Append(ID_MENU_EVENT_LOG, wxString("Event &Log")); menu_Tools->Append(ID_MENU_BBTK_GRAPHICAL_EDITOR, wxString("BBTK &Graphical Editor")); menu_Tools->Append(ID_MENU_MINITOOLS, wxString("&MiniTools")); menu_Tools->Append(ID_MENU_CODE_EDITOR, wxString("&Code Editor")); menu_Tools->Append(ID_MENU_COMMAND_LINE, wxString("&Command Line")); menuBar->Append(menu_Tools, wxString("&Tools")); //HelpMenu menu_Help = new wxMenu(); menu_Help->Append(ID_MENU_HELP, wxString("&Help")); menu_Help->Append(ID_MENU_REPORT_BUG, wxString("Report &Bug")); menu_Help->Append(ID_MENU_ABOUT_CREADEVMANAGER, wxString("&About CreaDevManager")); menu_Help->Append(ID_MENU_ABOUT_CREATIS, wxString("A&bout CREATIS")); menuBar->Append(menu_Help, wxString("&Help")); //Set Bar SetMenuBar(menuBar); wxStatusBar* statusBar = new wxStatusBar(this, ID_STATUS_BAR, wxST_SIZEGRIP); statusBar->SetFieldsCount(1); SetStatusBar(statusBar); } void wxCreaDevManagerMainFrame::CreateControls() { auiManager.SetManagedWindow(this); tree_Projects = new wxCreaDevManagerTreeCtrl( this, ID_TREE_PROJECTS, wxDefaultPosition, wxSize(300,400), wxTR_HAS_BUTTONS | wxTR_AQUA_BUTTONS ); tree_Projects->SetMinSize(wxSize(200,200)); panel_Properties = new wxCreaDevManagerDescriptionPanel( this, ID_WINDOW_PROPERTIES, wxString("Description Panel"), wxDefaultPosition, wxSize(300, 400), 0 ); panel_ProjectActions = new wxCreaDevManagerProjectActionsPanel( this, ID_WINDOW_PROJ_ACTIONS, wxString("Project Actions Panel"), wxDefaultPosition, wxSize(600,200), 0 ); panel_ProjectActions->SetMinSize(wxSize(500, 100)); auiManager.AddPane(tree_Projects, wxLEFT, wxString("Projects Tree")); auiManager.AddPane(panel_ProjectActions, wxBOTTOM, wxString("Project Actions")); auiManager.AddPane(panel_Properties, wxCENTER, wxString("Properties")); auiManager.Update(); auiManager.GetPane(tree_Projects).CloseButton(false).MaximizeButton(true); auiManager.GetPane(panel_Properties).CloseButton(false); } //Event Handlers //File menu void wxCreaDevManagerMainFrame::OnMenuNewProject(wxCommandEvent& event) { wxCreaDevManagerNewProjectDialog* dialog = new wxCreaDevManagerNewProjectDialog(this, this->controller); long userResponse; userResponse = dialog->ShowModal(); ((wxCreaDevManagerTreeCtrl*)tree_Projects)->BuildTree(this->controller->GetActiveProjects()); this->UpdateVisual(); event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuOpenProject(wxCommandEvent& event) { long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST; wxDirDialog* FD = new wxDirDialog(this, wxString("Select the project directory"), wxString(""), style); long userResponse; userResponse = FD->ShowModal(); if(userResponse == wxID_OK) { switch(this->controller->OpenProject(crea::wx2std (FD->GetPath()))) { case 1: wxMessageBox( wxT("No project selected."), wxT("Open Project - Error"), wxICON_ERROR); event.Skip(); break; case 2: wxMessageBox( wxString("Sources not found."), wxString("Open Project - Error"), wxICON_ERROR); event.Skip(); break; case 0: break; }; ((wxCreaDevManagerTreeCtrl*)tree_Projects)->BuildTree(controller->GetActiveProjects()); auiManager.Update(); } event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuOpenRecent(wxCommandEvent& event) { std::cerr << "Event OnMenuOpenRecent not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuCloseProject(wxCommandEvent& event) { std::cerr << "Event OnMenuCloseProject not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuCloseAllProjects(wxCommandEvent& event) { std::cerr << "Event OnMenuCloseAllProjects not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuExportHierarchy(wxCommandEvent& event) { std::cerr << "Event OnMenuExportHierarchy not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuExit(wxCommandEvent& event) { std::cout << "Closing CreaDevManager..." << std::endl; Close(); event.Skip(); } //Edit Menu void wxCreaDevManagerMainFrame::OnMenuRefreshProject(wxCommandEvent& event) { std::cerr << "Event OnMenuRefreshProject not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuMenuCut(wxCommandEvent& event) { std::cerr << "Event OnMenuMenuCut not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuMenuCopy(wxCommandEvent& event) { std::cerr << "Event OnMenuMenuCopy not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuMenuPaste(wxCommandEvent& event) { std::cerr << "Event OnMenuMenuPaste not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuMenuDelete(wxCommandEvent& event) { std::cerr << "Event OnMenuMenuDelete not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuSelectAll(wxCommandEvent& event) { std::cerr << "Event OnMenuSelectAll not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuSelectNone(wxCommandEvent& event) { std::cerr << "Event OnMenuSelectNone not implemented" << std::endl; event.Skip(); } //Tools Menu void wxCreaDevManagerMainFrame::OnMenuEventLog(wxCommandEvent& event) { std::cerr << "Event OnMenuEventLog not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuBBTKGraphicalEditor(wxCommandEvent& event) { std::cerr << "Event OnMenuBBTKGraphicalEditor not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuMiniTools(wxCommandEvent& event) { std::cerr << "Event OnMenuMiniTools not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuCodeEditor(wxCommandEvent& event) { std::cerr << "Event OnMenuCodeEditor not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuCommandLine(wxCommandEvent& event) { std::cerr << "Event OnMenuCommandLine not implemented" << std::endl; event.Skip(); } //Help Menu void wxCreaDevManagerMainFrame::OnMenuHelp(wxCommandEvent& event) { std::cerr << "Event OnMenuHelp not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuReportBug(wxCommandEvent& event) { std::cerr << "Event OnMenuReportBug not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuAboutCreaDevManager(wxCommandEvent& event) { std::cerr << "Event OnMenuAboutCreaDevManager not implemented" << std::endl; event.Skip(); } void wxCreaDevManagerMainFrame::OnMenuAboutCreatis(wxCommandEvent& event) { std::cerr << "Event OnMenuAboutCreatis not implemented" << std::endl; event.Skip(); }