X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsWxGUIEditorGraphic%2FwxTabPanelsManager.cxx;h=351551e1403b8dd319e165bd4b14396e67a7fd9b;hb=c781c60f472ac755a25a96a4c1ed4f608601cc5a;hp=32173e91c291423383f4302615c7f84e8202677e;hpb=04884fa171fe877e5c2ca53d11d6838bc1f8a8f7;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx index 32173e9..351551e 100644 --- a/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx +++ b/lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxTabPanelsManager.cxx @@ -1,3 +1,28 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ +*/ + /*========================================================================= Program: bbtk Module: $RCSfile$ @@ -48,6 +73,8 @@ namespace bbtk _notebook = _parent->getAuiNotebook(); addNewTab(); _notebook->Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED,wxAuiNotebookEventHandler(wxTabPanelsManager::OnTabChanged),0,this); + _notebook->Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE,wxAuiNotebookEventHandler(wxTabPanelsManager::OnTabClose),0,this); + } //========================================================================= @@ -56,19 +83,29 @@ namespace bbtk } //========================================================================= - void wxTabPanelsManager::addNewTab(wxString tabName) + wxGUIEditorGraphicBBS* wxTabPanelsManager::GetParentGUIEditorGraphicBBS() const { -printf("EED wxTabPanelsManager::addNewTab 0\n"); + return this->_parent; + } + //========================================================================= + void wxTabPanelsManager::addNewTab(wxString tabName) + { _lastId++; - wxGEditorTabPanel *newPanel = new wxGEditorTabPanel(_notebook,_lastId); + + //EED 13/10/2012 wxGEditorTabPanel *newPanel = new wxGEditorTabPanel( _notebook,_lastId ); + wxGEditorTabPanel *newPanel = new wxGEditorTabPanel( _notebook,_lastId, _parent->GetBBTKFactory() ); + newPanel->setPanelsManager(this); _panels[_lastId] = newPanel; _actual = newPanel; _notebook->AddPage(newPanel, tabName ,true); -printf("EED wxTabPanelsManager::addNewTab 1\n"); } + + + + //========================================================================= wxAuiNotebook* wxTabPanelsManager::getAuiNotebook() { @@ -143,10 +180,16 @@ printf("EED wxTabPanelsManager::addNewTab 1\n"); { _actual->loadDiagram(inputStream, path); } + + //========================================================================= + void wxTabPanelsManager::saveTempandUpdate(const std::string &action) //FCY + { + _parent->SaveTempActualDiagram(action); + } //========================================================================= - void wxTabPanelsManager::saveTempActualDiagram() //FCY + void wxTabPanelsManager::saveTempActualDiagram(const std::string &action) //FCY { - _actual->saveTempDiagram(); + _actual->saveTempDiagram(action); } //========================================================================= void wxTabPanelsManager::loadTempDiagram(unsigned short un) //FCY @@ -155,14 +198,14 @@ printf("EED wxTabPanelsManager::addNewTab 1\n"); } //========================================================================= - unsigned short wxTabPanelsManager::getUndoState() //FCY + unsigned short wxTabPanelsManager::getUndoState( std::string &stun) //FCY { - return _actual->getUndoState(); + return _actual->getUndoState(stun); } //========================================================================= - unsigned short wxTabPanelsManager::getRedoState() //FCY + unsigned short wxTabPanelsManager::getRedoState(std::string &stre) //FCY { - return _actual->getRedoState(); + return _actual->getRedoState(stre); } //========================================================================= @@ -214,7 +257,6 @@ printf("EED wxTabPanelsManager::addNewTab 1\n"); void wxTabPanelsManager::VerifyLastTabPanel() { -printf("wxTabPanelsManager::VerifyActualTabPanel %d \n", this->_notebook->GetPageCount() ); if (this->_notebook->GetPageCount()==0) { this->_actual=NULL; @@ -234,6 +276,37 @@ printf("wxTabPanelsManager::VerifyActualTabPanel %d \n", this->_notebook->GetPa } //========================================================================= + + void wxTabPanelsManager::OnTabClose(wxAuiNotebookEvent& event) + { + + std::cout<<"RaC wxTabPanelsManager::OnTabClose Start... "<<_panels.size()<0) + { + wxGEditorTabPanel* tab = (wxGEditorTabPanel*)_notebook->GetPage(index); + int id = tab->getPanelId(); + tab->deleteAllBoxes(); + _panels.erase(id); + + _notebook->RemovePage(index); + + std::cout<<"RaC wxTabPanelsManager::OnTabClose IMPORTANT. The complete tab is not erased from memory... "<