2 # ---------------------------------------------------------------------
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
8 # This software is governed by the CeCILL-B license under French law and
9 # abiding by the rules of distribution of free software. You can use,
10 # modify and/ or redistribute the software under the terms of the CeCILL-B
11 # license as circulated by CEA, CNRS and INRIA at the following URL
12 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
13 # or in the file LICENSE.txt.
15 # As a counterpart to the access to the source code and rights to copy,
16 # modify and redistribute granted by the license, users are provided only
17 # with a limited warranty and the software's author, the holder of the
18 # economic rights, and the successive licensors have only limited
21 # The fact that you are presently reading this means that you have had
22 # knowledge of the CeCILL-B license and that you accept its terms.
23 # ------------------------------------------------------------------------
26 /*=========================================================================
32 =========================================================================*/
34 /* ---------------------------------------------------------------------
36 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
37 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
39 * This software is governed by the CeCILL-B license under French law and
40 * abiding by the rules of distribution of free software. You can use,
41 * modify and/ or redistribute the software under the terms of the CeCILL-B
42 * license as circulated by CEA, CNRS and INRIA at the following URL
43 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
44 * or in the file LICENSE.txt.
46 * As a counterpart to the access to the source code and rights to copy,
47 * modify and redistribute granted by the license, users are provided only
48 * with a limited warranty and the software's author, the holder of the
49 * economic rights, and the successive licensors have only limited
52 * The fact that you are presently reading this means that you have had
53 * knowledge of the CeCILL-B license and that you accept its terms.
54 * ------------------------------------------------------------------------ */
60 * \brief Class bbtk::BlackBox : abstract black-box interface.
64 * Design and Developpement of BBTK GEditor
65 * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
69 #ifndef __wxTabPanelsManager_h__
70 #define __wxTabPanelsManager_h__
72 #include <wx/aui/auibook.h>
74 #include <wx/string.h>
79 #include "wxGEditorTabPanel.h"
80 #include "wxVtkSceneManager.h"
81 #include "bbtkwxGUIEditorGraphicBBS.h"
89 class wxVtkSceneManager;
90 class wxGEditorTabPanel;
91 class wxGUIEditorGraphicBBS;
93 class wxTabPanelsManager : public wxEvtHandler
98 wxTabPanelsManager(wxGUIEditorGraphicBBS *parent);
99 ~wxTabPanelsManager();
101 void addNewTab(wxString tabName=_T("new_tab"));
102 wxAuiNotebook* getAuiNotebook();
103 wxGEditorTabPanel* getActualTabPanel();
105 void displayBlackBoxInfo(std::string packageName, std::string boxName);
106 void updateStatusBar(std::string textStatus);
108 std::string getActualDiagramBBS(bool wln=false);
109 std::string getActualComplexBoxBBS();
111 void editBlackBox(GBlackBoxModel *bbmodel);
112 void deleteAllBoxesActualDiagram();
113 void centerViewActualDiagram();
114 void saveActualDiagram(std::string &content, const std::string &path); //DFCH
115 void loadDiagram(ifstream &inputStream, const std::string &path); //DFCH
117 void saveTempActualDiagram(const std::string &); //FCY
118 void saveTempandUpdate(const std::string &);
119 void loadTempDiagram(unsigned short un); //FCY
120 unsigned short getUndoState(std::string &);
121 unsigned short getRedoState(std::string &);
122 bool isActualDiagramComplexBox();
123 void setActualDiagramComplexBox(bool val);
124 void addActualDiagramComplexInputPort(std::string portName);
125 void addActualDiagramComplexOutputPort(std::string portName);
126 void copySelectedBBoxesToComplexDiagram();
127 int getNumActualSelectedObjects();
129 void OnTabChanged(wxAuiNotebookEvent& event);
131 // Event handler. Runs in the moment of closing but not closed yet (for that exists the CLOSED event, but not working at all)
132 void OnTabClose(wxAuiNotebookEvent& event);
134 void VerifyLastTabPanel();
136 // Getters and Setters of current diagram
137 void SetCbName(std::string cbName);
138 void SetCbPackageName(std::string packagename);
139 void SetAuthor(std::string author);
140 void SetCategory(std::string category);
141 void SetDescription(std::string description);
142 std::string GetCbName();
143 std::string GetCbPackageName();
144 std::string GetAuthor();
145 std::string GetDescription();
146 std::string GetCategory();
148 void SetNameTabPanel(wxString tabpanelname);
149 std::string GetNameTabPanel();
150 std::string GetCurrentTabPanelPath( ); //DFCH
151 int FindTab(std::string filename);
152 bool TryToOpenScriptApplication(std::string packageName ,std::string boxType);
156 // Private Attributes
157 wxGUIEditorGraphicBBS *_parent;
158 map<int, wxGEditorTabPanel*> _panels;
159 wxGEditorTabPanel *_actual;
160 wxAuiNotebook *_notebook;