]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h
Feature #1666
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / bbtkwxGUIEditorGraphicBBS.h
index 887b7c6f98af67a6b58c2a0a8a5192667baf2649..ee35ab0f39ae0c921b19dbb1e34635f221e16e5c 100644 (file)
@@ -1,4 +1,4 @@
-/*=========================================================================                                                                               
+/*=========================================================================
   Program:   bbtk
   Module:    $RCSfile$
   Language:  C++
 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
 *
-*  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 
+*  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. 
+*  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.
-* ------------------------------------------------------------------------ */                                                                         
+* ------------------------------------------------------------------------ */
 
 
 
 /**
- *  \file 
- *  \brief Class bbtk::BlackBox : abstract black-box interface. 
+ *  \file
+ *  \brief Class bbtk::BlackBox : abstract black-box interface.
  */
 
 /****
@@ -40,7 +40,7 @@
 * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
 * RaC - 2010
 ****/
+
 #ifndef __WxGUIEditorGraphicBBS_h__
 #define __WxGUIEditorGraphicBBS_h__
 
@@ -50,6 +50,7 @@
 #include "wxVtkSceneManager.h"
 #include "GlobalConstants.h"
 
+
 #include "wxart_new.xpm" // JPR
 #include "wxart_open.xpm"
 #include "wxart_save.xpm"
 #include "wxart_delete.xpm"
 #include "wxart_centerview.xpm"
 #include "wxart_box.xpm"
+#include "wxart_executablebox.xpm"
 #include "wxart_complexbox.xpm"
 #include "wxart_complexinputport.xpm"
 #include "wxart_complexoutputport.xpm"
+#include "wxart_undo.xpm"
+#include "wxart_redo.xpm"
 
 //Includes creaMaracasVisu
 
@@ -67,7 +71,9 @@
 #include <bbtkWxGUIPackageBrowser2.h>
 #include <bbtkWxGUIHtmlBrowser.h>
 #include <bbtkBlackBoxDescriptor.h>
+#include <bbtkUtilities.h>
 #include <bbtkConfigurationFile.h>
+#include <bbtkSystemTools.h>
 
 //Includes vtk
 
 
 namespace bbtk
 {
-       //RaC: It is important if it exists a double relation 
+       //RaC: It is important if it exists a double relation
        //e.g. wxTabPanelsManager includes wxGUIEditorGraphicBBS, and wxGUIEditorGraphicBBS includes wxTabPanelsManager
        class wxTabPanelsManager;
        class wxVtkSceneManager;
 
        class  wxGUIEditorGraphicBBS : public wxFrame
        {
-               public: 
+               public:
                        wxGUIEditorGraphicBBS(wxFrame *parent);
                        ~wxGUIEditorGraphicBBS();
 
-                       void initToolbar(); 
+                       void initToolbar();
                        void initMenu();
                        void initTabPanelsManager();
                        void initPackageBrowser();
                        void initHelpHTMLBrowser();
-
                        wxAuiNotebook* getAuiNotebook();
 
                        // Display the info of the black box highlighted in the PackageBrowser
@@ -119,23 +124,37 @@ namespace bbtk
                        // Shows the dialog to change the parameters and values of the black box
                        void editBlackBox(GBlackBoxModel *bbmodel);
 
+                       bool boxNameExists(std::string boxname);
+
+                       // Checks and adds if necessary the .bbg/.bbs extensions
+                       std::string CheckExtension (std::string filename, std::string extension);                       
                        // Method that can be used to refresh the help and package browser
                        // RaC TOFIX!!!
                        void RegenerateAll();
-                       void DoRegeneratePackageDoc(const std::string& pack);   
+                       void DoRegeneratePackageDoc(const std::string& pack);
                        void DoRegenerateBoxesLists();
 
                        // Refresh the state of buttons and menus when changing for example the mode to edit complex box
                        void refreshGUIControls();
+                       
+            void SaveActualBBS(std::string filename);
+            void AskComplexBoxConfiguration();
+            void SaveActualComplexBox(std::string filename);
+            void SaveActualDiagram(std::string filename);
+                       void SaveCurrentDiagramAs( ); //DFCH
+                       void SaveTempActualDiagram(const std::string &);//FCY
+
 
                        // File menu and toolbar events
                        void OnCreateNewTab(wxCommandEvent& event);
                        void OnOpenDiagram(wxCommandEvent& event);
-                       void OnSaveActualDiagram(wxCommandEvent& event);
+                       void OnSaveActualDiagram(wxCommandEvent& event); //DFCH
+                       void OnSaveAsActualDiagram(wxCommandEvent& event); //DFCH
                        void OnOpenBBS(wxCommandEvent& event);
                        void OnSaveActualBBS(wxCommandEvent& event);
                        void OnSaveActualComplexBox(wxCommandEvent& event);
                        void OnExecuteActualDiagram(wxCommandEvent& event);
+                       void OnClickBtnExecutableBox(wxCommandEvent& event);
                        void OnDeleteAllBoxesActualDiagram(wxCommandEvent& event);
                        void OnCenterViewActualDiagram(wxCommandEvent& event);
                        void OnClickBtnBox(wxCommandEvent& event);
@@ -143,13 +162,28 @@ namespace bbtk
                        void OnAddComplexBoxInput(wxCommandEvent& event);
                        void OnAddComplexBoxOutput(wxCommandEvent& event);
                        void OnExit(wxCommandEvent& event);
+                       void OnHelpBBeditor(wxCommandEvent& event);
+                       void OnUndo(wxCommandEvent& event);
+                       void OnRedo(wxCommandEvent& event);
+                       void OnChangeName(wxCommandEvent& event);
 
                        // Edit menu events
-                       void OnCopySelectedToComplexDiagram(wxCommandEvent& event);
-
-
+                       void OnCopySelectedToComplexDiagram(wxCommandEvent& event);                   
+                       
+
+                       // Tool menu events
+                       void OnCreatePackage(wxCommandEvent& event);
+                       void OnCreateBlackBox(wxCommandEvent& event);
+                       void OnPlugPackage(wxCommandEvent& event);
+                       void OnEditConfig(wxCommandEvent& event);
+                       void OnShowHTMLDoc(wxCommandEvent& event);
+                       void OnCreateIndex(wxCommandEvent& event);
+               
+               
+               
+               
                private:
-                       
+
                        //AuiManager for the wxWindow
                        wxAuiManager                                            *_frameAUIMgr;
 
@@ -166,12 +200,12 @@ namespace bbtk
                        WxGUIHtmlBrowser                                        *_helpHtmlBrowser;
 
                        //Name of the box and its package that is shown in the browser
-                       std::string _actualPkgBrowserBoxName;
-                       std::string _actualPkgBrowserPkgName;
+                       std::string                         _actualPkgBrowserBoxName;
+                       std::string                         _actualPkgBrowserPkgName;
 
                protected:
 
-         
+
  };