X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsWxGUIEditorGraphic%2FwxGEditorTabPanel.cxx;h=bd327721ba3c4e24723805aff9ae0b3f6804b597;hb=fea0c6ff7e209a7bb61bcc8176742e5f1a609443;hp=cd591b16d36a18a543dc1a82928c583aa0ebd911;hpb=775c8164b5f679027b8bbafa97c0e0110711909b;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx index cd591b1..bd32772 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxGEditorTabPanel.cxx @@ -54,6 +54,7 @@ printf("EED wxGEditorTabPanel::wxGEditorTabPanel 0\n"); _id=id; _panelAUIMgr = new wxAuiManager(this); _sceneManager = NULL; + _actualdo = states.begin(); initWxVtkCanvas(); printf("EED wxGEditorTabPanel::wxGEditorTabPanel 1\n"); } @@ -181,12 +182,82 @@ printf("EED wxGEditorTabPanel::initWxVtkCanvas 1\n"); //========================================================================= + void wxGEditorTabPanel::saveTempDiagram() //FCY + { + std::string content = ""; + // writing file header + content += "# ----------------------------------\n"; + content += "# - BBTKGEditor v 1.2 BBG BlackBox Diagram file\n"; + content += "# - "; + content += "temp"; + content += "\n"; + content += "# ----------------------------------\n"; + content += "\n"; + content += "APP_START\n"; + _sceneManager->saveDiagram(content); + content += "APP_END\n"; //put here to avoid mistakes + if(_actualdo == states.end() ) // same size, write to the end + { + states.push_back (content); + } + else + { + std::vector::iterator it = _actualdo+1; + states.erase(it, states.end()); + states.push_back(content); + } + _actualdo = states.end(); + + } + + //========================================================================= + void wxGEditorTabPanel::loadDiagram(ifstream &inputStream, const std::string &path) //DFCH { this->SetFullPath(path); - _sceneManager->loadDiagram(inputStream); + stringstream ss; + ss << inputStream ; + _sceneManager->loadDiagram(ss); } + //========================================================================= + unsigned short wxGEditorTabPanel::loadTempDiagram(unsigned short un) //FCY + { + unsigned short res = 1; + deleteAllBoxes(); + std::stringstream ss; + if (un == 0) //undo + { + if(_actualdo == states.end() ) // same size, write to the end + { + (_actualdo--); + } + if(_actualdo != states.begin() ) + { + ss << *(--_actualdo); + } + else + { + ss << *_actualdo; + res = 0; + } + } + else //redo + { + _actualdo++; + if(_actualdo != states.end()) + { + ss << *_actualdo; + } + else + { + res = 0; + } + } + _sceneManager->loadDiagram(ss); + return res; + } + //========================================================================= int wxGEditorTabPanel::getPanelId()