X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsWxGUIEditorGraphic%2FbbtkwxGUIEditorGraphicBBS.cxx;h=3b6641effcea4a1e27d372e08e8f952c36781e2e;hb=567028f33d052a54225024906cce14dc1558162f;hp=4fb42dbdafb20feab9362ca47ff96ae116f06d49;hpb=9877bb1bc1cbfc8b4ac0dbd45d443ba670c9d8d2;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx index 4fb42db..3b6641e 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx @@ -36,6 +36,8 @@ #include "bbtkwxGUIEditorGraphicBBS.h" #include "creaWx.h" #include "creaSystem.h" +//must go #include "bbtkUtilities.h" +//must go #include "bbtkConfigurationFile.h" #include #include @@ -108,6 +110,7 @@ void wxGUIEditorGraphicBBS::initToolbar() { wxBitmap bmp_complexoutputport(complexoutputport_xpm); wxBitmap bmp_undo(undo_xpm); wxBitmap bmp_redo(redo_xpm); + wxBitmap bmp_editProperties(editProperties_xpm); wxToolBar *toolbar = new wxToolBar(this, wxID_ANY); //Adds a tool btn to the toolbar @@ -147,6 +150,8 @@ void wxGUIEditorGraphicBBS::initToolbar() { toolbar->AddSeparator(); toolbar->AddTool(ID_UNDO, _T("Undo"),bmp_undo, wxNullBitmap, wxITEM_NORMAL, _T("Undo"), _T("Undo")); toolbar->AddTool(ID_REDO, _T("Redo"),bmp_redo, wxNullBitmap, wxITEM_NORMAL, _T("Redo"), _T("Redo")); + toolbar->AddSeparator(); + toolbar->AddTool(ID_EDIT, _T("Edit diagram properties"),bmp_editProperties, wxNullBitmap, wxITEM_NORMAL, _T("Edit diagram properties"), _T("Edit diagram properties")); toolbar->EnableTool(ID_UNDO, false); toolbar->EnableTool(ID_REDO, false); @@ -192,6 +197,8 @@ void wxGUIEditorGraphicBBS::initToolbar() { Connect(ID_UNDO,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnUndo)); Connect(ID_REDO,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnRedo)); Connect(ID_CHANGENAME, wxEVT_COMMAND_RIGHT_CLICK, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnChangeName)); + Connect(ID_EDIT,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnEditDiagramProperties)); + } //========================================================================= void wxGUIEditorGraphicBBS::initHelpHTMLBrowser() { @@ -290,27 +297,28 @@ void wxGUIEditorGraphicBBS::initMenu() { } //========================================================================= -void wxGUIEditorGraphicBBS::initTabPanelsManager() { +void wxGUIEditorGraphicBBS::initTabPanelsManager() +{ _notebook = new wxAuiNotebook(this, wxID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, wxAUI_NB_TOP | wxAUI_NB_TAB_MOVE | wxAUI_NB_CLOSE_ON_ACTIVE_TAB | wxAUI_NB_TAB_FIXED_WIDTH | wxAUI_NB_WINDOWLIST_BUTTON); _tabsMgr = new wxTabPanelsManager(this); _frameAUIMgr->AddPane(_notebook, wxAuiPaneInfo().CenterPane()); - } //========================================================================= -void wxGUIEditorGraphicBBS::initPackageBrowser() { +void wxGUIEditorGraphicBBS::initPackageBrowser() +{ _pkgBrowser = new WxGUIPackageBrowser2(this); _pkgBrowser->IncludeAll(); - _frameAUIMgr->AddPane(_pkgBrowser, - wxAuiPaneInfo().Left().MinSize(480, 400).CloseButton(false)); + _frameAUIMgr->AddPane(_pkgBrowser, wxAuiPaneInfo().Left().MinSize(30, 500).BestSize(750,500).CloseButton(false)); } //================================================================ -void wxGUIEditorGraphicBBS::DoRegeneratePackageDoc(const std::string& pack) { +void wxGUIEditorGraphicBBS::DoRegeneratePackageDoc(const std::string& pack) +{ std::string mess("Regenerating doc for package '"); if (pack != "-a") { mess += pack + "'"; @@ -515,6 +523,8 @@ void wxGUIEditorGraphicBBS::OnUndo(wxCommandEvent& event) { refreshGUIControls(); } +//========================================================================= + void wxGUIEditorGraphicBBS::OnRedo(wxCommandEvent& event) { unsigned short disable; std::string stundo; @@ -534,6 +544,16 @@ void wxGUIEditorGraphicBBS::OnRedo(wxCommandEvent& event) { void wxGUIEditorGraphicBBS::OnChangeName(wxCommandEvent& event){ } + +//========================================================================= + +void wxGUIEditorGraphicBBS::OnEditDiagramProperties(wxCommandEvent& event) +{ + wxDiagramPropertiesEditionDialog* dialog = + new wxDiagramPropertiesEditionDialog(this); + dialog->Show(); +} + //========================================================================= void wxGUIEditorGraphicBBS::OnExecuteActualDiagram(wxCommandEvent& event) { @@ -577,7 +597,7 @@ void wxGUIEditorGraphicBBS::SaveActualBBS(std::string filename) { std::string content = ""; // writing file header content += "# ----------------------------------\n"; - content += "# - BBTKGEditor v 1.2 BBS BlackBox Script\n"; + content += "# - BBTKGEditor v 1.3 BBS BlackBox Script\n"; content += "# - "; content += filename; content += "\n"; @@ -637,7 +657,7 @@ void wxGUIEditorGraphicBBS::SaveActualComplexBox(std::string filename) { // writing file header content += "# ----------------------------------\n"; - content += "# - BBTKGEditor v 1.2 BBS BlackBox Script (Complex Box)\n"; + content += "# - BBTKGEditor v 1.3 BBS BlackBox Script (Complex Box)\n"; content += "# - "; content += filename; content += "\n"; @@ -672,7 +692,7 @@ void wxGUIEditorGraphicBBS::SaveActualDiagram(std::string filename) { // writing file header content += "# ----------------------------------\n"; - content += "# - BBTKGEditor v 1.2 BBG BlackBox Diagram file\n"; + content += "# - BBTKGEditor v 1.3 BBG BlackBox Diagram file\n"; content += "# - "; content += filename; @@ -825,6 +845,7 @@ void wxGUIEditorGraphicBBS::OnCenterViewActualDiagram(wxCommandEvent& event) { void wxGUIEditorGraphicBBS::OnOpenDiagram(wxCommandEvent& event) { wxFileDialog * openFileDialog = new wxFileDialog(this, wxT("Open diagram"), wxEmptyString, wxT(""), wxT("*.bbg"), wxOPEN | wxFILE_MUST_EXIST); + printf("SCP: wxGUIEditorGraphicBBS::OnOpenDiagram \n"); if (openFileDialog->ShowModal() == wxID_OK) { wxString fileName = openFileDialog->GetPath(); ifstream inputStream; @@ -946,7 +967,56 @@ void wxGUIEditorGraphicBBS::OnCreateBlackBox(wxCommandEvent& event) { } //========================================================================= void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event) { - printf("EED wxGUIEditorGraphicBBS::OnPlugPackage ... not implemented ..\n"); + //printf("EED wxGUIEditorGraphicBBS::OnPlugPackage ... not implemented ..\n"); + //this is the right code but it's left to include the corresponding commented libraries + long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST; + wxDirDialog* FD = + new wxDirDialog( 0, + _T("Select package directory"), + _T(""), + style); + long userResponse; + do + { + userResponse = FD->ShowModal(); + if(userResponse==wxID_OK) + { + std::string path = wx2std (FD->GetPath()) ; + std::string fname = path + "/bbtkPackage"; + std::cout << "Path chosen = \"" << FD->GetPath() << "\"" << std::endl; + if ( Utilities::FileExists( fname ) ) + { + std::ifstream f; + f.open(fname.c_str()); + std::string pname; + f >> pname; + f.close(); + + bbtk::ConfigurationFile::GetInstance().AddPackagePathsAndWrite( path ); + + DoRegeneratePackageDoc(pname); + DoRegenerateBoxesLists(); + + _pkgBrowser->RebuildList(); + + wxMessageBox(_T("Package successfully plugged. Please restart bbEditor to see the new package in the package browser."),_T("Plug package"),wxOK | wxICON_INFORMATION); + userResponse = wxID_CANCEL; + } + else + { + std::string err = "The directory \"" + path + "\" does not contain a 'bbtkPackage' file."; + #ifndef WIN32 + #ifndef MACOSX + err += "\nNote: If you are on Linux please select the folder and click \"Open\", don't enter in it."; + #endif + #endif + + + wxMessageBox(_T(err),_T("Plug package"),wxOK | wxICON_ERROR); + } + } + }while(userResponse != wxID_CANCEL); + } //========================================================================= void wxGUIEditorGraphicBBS::OnEditConfig(wxCommandEvent& event) { @@ -978,10 +1048,51 @@ void wxGUIEditorGraphicBBS::OnExit(wxCommandEvent& event) { Close(true); } +//========================================================================= + +void wxGUIEditorGraphicBBS::setCurrentDiagramDescription(std::string description) +{ + _tabsMgr->SetDescription(description); +} //========================================================================= +void wxGUIEditorGraphicBBS::setCurrentDiagramAuthor(std::string author) +{ + _tabsMgr->SetAuthor(author); +} + +//========================================================================= + +void wxGUIEditorGraphicBBS::setCurrentDiagramCategory(std::string category) +{ + _tabsMgr->SetCategory(category); +} + +//========================================================================= + +std::string wxGUIEditorGraphicBBS::getCurrentDiagramDescription() +{ + return _tabsMgr->GetDescription(); +} + +//========================================================================= + +std::string wxGUIEditorGraphicBBS::getCurrentDiagramAuthor() +{ + return _tabsMgr->GetAuthor(); +} + +//========================================================================= + + +std::string wxGUIEditorGraphicBBS::getCurrentDiagramCategory() +{ + return _tabsMgr->GetCategory(); +} + + } // EO namespace bbtk // EOF