]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.cxx
This commit was manufactured by cvs2svn to create tag
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsWxGUIEditorGraphic / bbtkwxGUIEditorGraphicBBS.cxx
index e76f8bcecb98b8bf41302e20bafa3bc4df48d14c..7addacf59c6dcee36929bfb443724a19933733fe 100644 (file)
@@ -1,37 +1,37 @@
 /*=========================================================================
- Program:   bbtk
- Module:    $RCSfile$
- Language:  C++
- Date:      $Date$
- Version:   $Revision$
- =========================================================================*/
+Program:   bbtk
+Module:    $RCSfile$
+Language:  C++
+Date:      $Date$
+Version:   $Revision$
+=========================================================================*/
 
 /* ---------------------------------------------------------------------
 
- * 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
- *  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.
- * ------------------------------------------------------------------------ */
+* 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
+*  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.
+* ------------------------------------------------------------------------ */
 
 /**
- *  \file
- *  \brief Class bbtk::WxInterfaceEditorGraphicBBS .
- */
+*  \file
+*  \brief Class bbtk::WxInterfaceEditorGraphicBBS .
+*/
 
 #include "bbtkwxGUIEditorGraphicBBS.h"
 #include "creaWx.h"
 
 #include <InterpreterBBS.h>
 
-namespace bbtk {
-
-//=========================================================================
-wxGUIEditorGraphicBBS::wxGUIEditorGraphicBBS(wxFrame *parent) :
-                       wxFrame(parent, -1, _T("bbtkGEditor"), wxDefaultPosition, wxSize(
-                                       1200, 800)) {
-
-       _frameAUIMgr = new wxAuiManager(this);
-
-       /*std::string datadir( crea::System::GetExecutablePath() );
-        std::string datadir (".");
-        cout<<"RaC //------------------"<<endl;
-        cout<<"RaC //TODO wxGUIEditorGraphicBBS constructor.Initialize datadir with  crea::System::GetExecutablePath() ."<<endl;
-        cout<<"RaC //------------------"<<endl;
-
-        #ifdef LINUX // assume this is OSX
-        datadir=datadir+"/../share/creaContours";
-        #endif // MACOSX
-
-        #ifdef MACOSX // assume this is OSX
-        datadir=datadir+"/../../../../share/creaContours";
-        #endif // MACOSX
-
-        _dataDir = datadir;*/
-
-       initMenu();
-       initToolbar();
-       initTabPanelsManager();
-       initPackageBrowser();
-       initHelpHTMLBrowser();
-
-       CreateStatusBar();
-       _frameAUIMgr->Update();
-       _actualPkgBrowserBoxName = "";
-       _actualPkgBrowserPkgName = "";
-       refreshGUIControls();
-}
-
-//=========================================================================
-wxGUIEditorGraphicBBS::~wxGUIEditorGraphicBBS() {
-       printf("EED %p ~wxGUIEditorGraphicBBS()\n", this);
-
-       //EED02JUIN2010         delete _tabsMgr;
-
-       _frameAUIMgr->UnInit();
-       // FCY memory leaks
-       delete _frameAUIMgr;
-       delete _notebook;
-       delete _tabsMgr;
-
-}
-
-//=========================================================================
-void wxGUIEditorGraphicBBS::initToolbar() {
-       wxBitmap bmp_new(new_xpm);
-       wxBitmap bmp_open(open_xpm);
-       wxBitmap bmp_save(save_xpm);
-       wxBitmap bmp_run(run_xpm);
-       wxBitmap bmp_delete(delete_xpm);
-       wxBitmap bmp_centerview(centerview_xpm);
-       wxBitmap bmp_box(box_xpm);
-       wxBitmap bmp_executablebox(executablebox_xpm);
-       wxBitmap bmp_complexbox(complexbox_xpm);
-       wxBitmap bmp_complexinputport(complexinputport_xpm);
-       wxBitmap bmp_complexoutputport(complexoutputport_xpm);
-
-       wxToolBar *toolbar = new wxToolBar(this, wxID_ANY);
-
-       //Adds a tool btn to the toolbar
-       toolbar->AddTool(ID_NEW, _T("New"), bmp_new, wxNullBitmap, wxITEM_NORMAL,
-                       _T("New tab"), _T("Create a new panel tab"));
-       toolbar->AddTool(ID_OPEN, _T("Open diagram"), bmp_open, wxNullBitmap,
-                       wxITEM_NORMAL, _T("Open a diagram"), _T("Open a diagram"));
-       toolbar->AddTool(ID_SAVE_DIAGRAM, _T("Save Diagram"), bmp_save,
-                       wxNullBitmap, wxITEM_NORMAL, _T("Saves the current diagram"),
-                       _T("Saves the current diagram")); //DFCH
-       //toolbar->AddTool(ID_SAVE_AS_DIAGRAM,_T("Save Diagram As"),bmp_save, wxNullBitmap, wxITEM_NORMAL,_T("Saves the current diagram"), _T("Saves the current diagram")); //DFCH
-       toolbar->AddTool(ID_RUN, _T("Run"), bmp_run, wxNullBitmap, wxITEM_NORMAL,
-                       _T("Execute actual diagram"), _T("Execute actual diagram"));
-       toolbar->AddTool(ID_DELETEALL, _T("Delete all"), bmp_delete, wxNullBitmap,
-                       wxITEM_NORMAL, _T("Delete all boxes"), _T("Delete all boxes"));
-       toolbar->AddTool(ID_CENTERVIEW, _T("Center view"), bmp_centerview,
-                       wxNullBitmap, wxITEM_NORMAL, _T("Center view"), _T("Center view"));
-       toolbar->AddSeparator();
-       toolbar->AddTool(ID_BTNBOX, _T("New Box"), bmp_box, wxNullBitmap,
-                       wxITEM_NORMAL, _T("New Box"), _T("Nex Box"));
-       toolbar->AddSeparator();
-       toolbar->AddTool(ID_BTEXECUTABLEBOX, _T("Select as executable Box"),
-                       bmp_executablebox, wxNullBitmap, wxITEM_NORMAL,
-                       _T("Select as executable Box"), _T("Select as executable Box"));
-       toolbar->AddSeparator();
-       toolbar->AddTool(ID_BTNCOMPLEXBOX, _T("Complex box"), complexbox_xpm,
-                       wxNullBitmap, wxITEM_NORMAL, _T("Complex box"), _T("Complex box"));
-       toolbar->SetToggle(ID_BTNCOMPLEXBOX, true);
-       toolbar->AddTool(ID_ADDCOMPLEXBOXINPUT, _T("Add input to Complex box"),
-                       bmp_complexinputport, wxNullBitmap, wxITEM_NORMAL,
-                       _T("Add input to Complex box"), _T("Add input to Complex box"));
-       toolbar->AddTool(ID_ADDCOMPLEXBOXOUTPUT, _T("Add output to Complex box"),
-                       bmp_complexoutputport, wxNullBitmap, wxITEM_NORMAL,
-                       _T("Add output Complex box"), _T("Add output Complex box"));
-       toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT, false);
-       toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT, false);
-
-       toolbar->SetMargins(2, 2);
-       toolbar->Realize();
-       SetToolBar(toolbar);
-
-       // connect command event handlers
-       Connect(ID_NEW, wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreateNewTab));
-       Connect(ID_OPEN, wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnOpenDiagram));
-       Connect(ID_SAVE_DIAGRAM, wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualDiagram)); //DFCH
-       Connect(ID_SAVE_AS_DIAGRAM, wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveAsActualDiagram)); //DFCH
-       Connect(
-                       ID_RUN,
-                       wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExecuteActualDiagram));
-       Connect(
-                       ID_DELETEALL,
-                       wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnDeleteAllBoxesActualDiagram));
-       Connect(
-                       ID_CENTERVIEW,
-                       wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCenterViewActualDiagram));
-       Connect(ID_BTNBOX, wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnClickBtnBox));
-       Connect(
-                       ID_BTEXECUTABLEBOX,
-                       wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnClickBtnExecutableBox));
-       Connect(ID_BTNCOMPLEXBOX, wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnClickBtnComplexBox));
-       Connect(ID_ADDCOMPLEXBOXINPUT, wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnAddComplexBoxInput));
-       Connect(ID_ADDCOMPLEXBOXOUTPUT, wxEVT_COMMAND_TOOL_CLICKED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnAddComplexBoxOutput));
-
-}
-//=========================================================================
-void wxGUIEditorGraphicBBS::initHelpHTMLBrowser() {
-       //TO FIX THE PATH OF BBTK BIN  IN ORDER TO USE REGENERATE EXECUTABLES
-       //RegenerateAll();
-       _helpHtmlBrowser = new WxGUIHtmlBrowser(this, wxSize(200, 0));
-       _frameAUIMgr->AddPane(_helpHtmlBrowser, wxAuiPaneInfo().Right().MinSize(
-                       200, 200));
-}
-
-//=========================================================================
-void wxGUIEditorGraphicBBS::initMenu() {
-       // Create File menu and its items
-       wxMenu *fileMenu = new wxMenu();
-       fileMenu->Append(ID_NEW, _T("New diagram"), _T("New"));
-       fileMenu->Append(ID_SAVE_DIAGRAM, _T("Save Diagram"), _T("Save Diagram")); //DFCH
-       fileMenu->Append(ID_SAVE_AS_DIAGRAM, _T("Save Diagram As"),
-                       _T("Save Diagram As")); //DFCH
-       fileMenu->Append(ID_OPEN_BBS, _T("Open BBS"), _T("Open BBS"));
-       fileMenu->Append(ID_SAVE_AS_BBS, _T("Save BBS"), _T("Save BBS"));
-       fileMenu->Append(ID_SAVE_AS_COMPLEXBOX, _T("Save complex box"),
-                       _T("Save complex box"));
-       fileMenu->Append(wxID_EXIT, _T("E&xit"), _T("Exit"));
-
-       Connect(ID_NEW, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreateNewTab));
-       Connect(ID_SAVE_DIAGRAM, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualDiagram)); //DFCH
-       Connect(ID_SAVE_AS_DIAGRAM, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveAsActualDiagram));
-       Connect(ID_OPEN_BBS, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnOpenBBS));
-       Connect(ID_SAVE_AS_BBS, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualBBS));
-       Connect(
-                       ID_SAVE_AS_COMPLEXBOX,
-                       wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualComplexBox));
-       Connect(wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExit));
-
-       // Create Help menu and its items
-       wxMenu *editMenu = new wxMenu;
-       editMenu->Append(ID_COPY_TO_COMPLEXDIAGRAM,
-                       _T("Copy selected to complex box"),
-                       _T("Creates a new complex box diagram with selected boxes"));
-
-       Connect(
-                       ID_COPY_TO_COMPLEXDIAGRAM,
-                       wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCopySelectedToComplexDiagram));
-
-       // Create Help menu and its items
-       wxMenu *helpMenu = new wxMenu;
-       helpMenu->Append(wxID_ABOUT, _T("&About..."), _T("About"));
-       helpMenu->Append(ID_HELP_BBEDITOR, _T("&Help..."), _T("Help"));
-       Connect(ID_HELP_BBEDITOR, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnHelpBBeditor));
-
-       // Create Tool menu
-       wxMenu *menuTools = new wxMenu;
-       menuTools->Append(ID_bbEditor_Tool_Menu_CreatePackage,
-                       _T("Create &package") );
-       menuTools->Append(ID_bbEditor_Tool_Menu_CreateBlackBox,
-                       _T("Create &blackbox") );
-       menuTools->Append(ID_bbEditor_Tool_Menu_PlugPackage, _T("Plug package") );
-       menuTools->Append(ID_bbEditor_Tool_Menu_EditConfig, _T("&Edit bbtk config") );
-       menuTools->Append(ID_bbEditor_Tool_Menu_ShowHTMLDoc,
-                       _T("Show &HTML documentation") );
-       menuTools->Append(ID_bbEditor_Tool_Menu_CreateIndex, _T("&Generate index") );
-
-       Connect(ID_bbEditor_Tool_Menu_CreatePackage, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreatePackage));
-       Connect(ID_bbEditor_Tool_Menu_CreateBlackBox, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreateBlackBox));
-       Connect(ID_bbEditor_Tool_Menu_PlugPackage, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnPlugPackage));
-       Connect(ID_bbEditor_Tool_Menu_EditConfig, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnEditConfig));
-       Connect(ID_bbEditor_Tool_Menu_ShowHTMLDoc, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnShowHTMLDoc));
-       Connect(ID_bbEditor_Tool_Menu_CreateIndex, wxEVT_COMMAND_MENU_SELECTED,
-                       wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreateIndex));
-
-       // Append the created menu to the menu bar
-       wxMenuBar *menuBar = new wxMenuBar();
-       menuBar->Append(fileMenu, _T("&File") );
-       menuBar->Append(editMenu, _T("&Edit") );
-       menuBar->Append(menuTools, _T("&Tool") );
-       menuBar->Append(helpMenu, _T("&Help") );
-
-       // Attach this menu bar to the frame
-       SetMenuBar(menuBar);
-}
-
-//=========================================================================
-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() {
-       _pkgBrowser = new WxGUIPackageBrowser2(this);
-       _pkgBrowser->IncludeAll();
-       _frameAUIMgr->AddPane(_pkgBrowser,
-                       wxAuiPaneInfo().Left().MinSize(200, 200).CloseButton(false));
-}
-
-//================================================================
-
-void wxGUIEditorGraphicBBS::DoRegeneratePackageDoc(const std::string& pack) {
-       std::string mess("Regenerating doc for package '");
-       if (pack != "-a") {
-               mess += pack + "'";
-       } else {
-               mess = "Regenerating doc for all packages";
-       }
-
-       mess += " ... please wait";
-
-       SetStatusText(std2wx(mess));
-
-       //BBTK_BUSY_CURSOR;
-
-       std::string command;
-#if defined(WIN32)
-       command = "\"";
-#endif
-       command += ConfigurationFile::GetInstance().Get_bin_path();
-       command += ConfigurationFile::GetInstance().Get_file_separator();
-       command += "bbRegeneratePackageDoc";
-#if defined(WIN32)
-       command += "\"";
-#endif
 
-       command += " " + pack + " -q";
-       bbtkMessage("debug",1,"Executing system command '"<<command<<"'"<<std::endl);
 
-       if (!system(command.c_str())) {
-               SetStatusText(_T("Done !"));
-               /*
-                wxMessageBox(_T("Done !"),_T("Regenerate package '")
-                +std2wx(pack)+_T("' doc"),
-                wxOK | wxICON_INFORMATION);
-                */
-       } else {
-               SetStatusText(_T("Done !"));
-               wxString err(_T("An error occured while running '"));
-               err += bbtk::std2wx(command) + _T("'");
-               wxMessageBox(err, _T("Regenerate package doc"), wxOK | wxICON_ERROR);
-       }
-}
-
-//================================================================
-void wxGUIEditorGraphicBBS::DoRegenerateBoxesLists() {
-       SetStatusText(_T("Regenerating boxes lists ... please wait"));
-       //BBTK_BUSY_CURSOR ;
-
-       std::string command;
-#if defined(WIN32)
-       command = "\"";
-#endif
-       command += ConfigurationFile::GetInstance().Get_bin_path();
-       command += ConfigurationFile::GetInstance().Get_file_separator();
-       command += "bbRegenerateBoxesLists";
+namespace bbtk
+{
+
+
+       //=========================================================================
+       wxGUIEditorGraphicBBS::wxGUIEditorGraphicBBS(wxFrame *parent)
+               : wxFrame(parent, -1, _T("bbtkGEditor"),wxDefaultPosition, wxSize(1200,800))
+       {
+
+               _frameAUIMgr = new wxAuiManager(this);
+
+
+               /*std::string datadir( crea::System::GetExecutablePath() );
+               std::string datadir (".");
+               cout<<"RaC //------------------"<<endl;
+               cout<<"RaC //TODO wxGUIEditorGraphicBBS constructor.Initialize datadir with  crea::System::GetExecutablePath() ."<<endl;
+               cout<<"RaC //------------------"<<endl;
+
+           #ifdef LINUX // assume this is OSX
+                  datadir=datadir+"/../share/creaContours";
+           #endif // MACOSX
+
+               #ifdef MACOSX // assume this is OSX
+                       datadir=datadir+"/../../../../share/creaContours";
+               #endif // MACOSX
+
+               _dataDir = datadir;*/
+
+               initMenu();
+               initToolbar();
+               initTabPanelsManager();
+               initPackageBrowser();
+               initHelpHTMLBrowser();
+
+               CreateStatusBar();
+               _frameAUIMgr->Update();
+               _actualPkgBrowserBoxName="";
+               _actualPkgBrowserPkgName="";
+               refreshGUIControls();
+       }
+
+
+       //=========================================================================
+       wxGUIEditorGraphicBBS::~wxGUIEditorGraphicBBS()
+       {
+               printf ("EED %p ~wxGUIEditorGraphicBBS()\n" , this );
 
-#if defined(WIN32)
-       command += "\"";
+//EED02JUIN2010                delete _tabsMgr;
+
+           _frameAUIMgr->UnInit();
+
+
+       }
+
+       //=========================================================================
+       void wxGUIEditorGraphicBBS::initToolbar()
+       {
+               wxBitmap bmp_new(new_xpm);
+               wxBitmap bmp_open(open_xpm);
+               wxBitmap bmp_save(save_xpm);
+               wxBitmap bmp_run(run_xpm);
+               wxBitmap bmp_delete(delete_xpm);
+               wxBitmap bmp_centerview(centerview_xpm);
+               wxBitmap bmp_box(box_xpm);
+               wxBitmap bmp_complexbox(complexbox_xpm);
+               wxBitmap bmp_complexinputport(complexinputport_xpm);
+               wxBitmap bmp_complexoutputport(complexoutputport_xpm);
+
+               wxToolBar  *toolbar = new wxToolBar(this, wxID_ANY);
+
+               //Adds a tool btn to the toolbar
+               toolbar->AddTool(ID_NEW,_T("New"),bmp_new, wxNullBitmap, wxITEM_NORMAL,_T("New tab"), _T("Create a new panel tab"));
+               toolbar->AddTool(ID_OPEN,_T("Open diagram"),bmp_open, wxNullBitmap, wxITEM_NORMAL,_T("Open a diagram"), _T("Open a diagram"));
+               toolbar->AddTool(ID_SAVE_AS_DIAGRAM,_T("Save diagram"),bmp_save, wxNullBitmap, wxITEM_NORMAL,_T("Saves actual diagram"), _T("Saves actual diagram"));
+               toolbar->AddTool(ID_RUN,_T("Run"),bmp_run, wxNullBitmap, wxITEM_NORMAL,_T("Execute actual diagram"), _T("Execute actual diagram"));
+               toolbar->AddTool(ID_DELETEALL,_T("Delete all"),bmp_delete, wxNullBitmap, wxITEM_NORMAL,_T("Delete all boxes"), _T("Delete all boxes"));
+               toolbar->AddTool(ID_CENTERVIEW,_T("Center view"),bmp_centerview, wxNullBitmap, wxITEM_NORMAL,_T("Center view"), _T("Center view"));
+               toolbar->AddSeparator();
+               toolbar->AddTool(ID_BTNBOX,_T("New Box"),bmp_box, wxNullBitmap, wxITEM_NORMAL,_T("New Box"), _T("Nex Box"));
+               toolbar->AddSeparator();
+               toolbar->AddTool(ID_BTNCOMPLEXBOX,_T("Complex box"),complexbox_xpm, wxNullBitmap, wxITEM_NORMAL,_T("Complex box"), _T("Complex box"));
+               toolbar->SetToggle(ID_BTNCOMPLEXBOX,true);
+               toolbar->AddTool(ID_ADDCOMPLEXBOXINPUT,_T("Add input to Complex box"),bmp_complexinputport, wxNullBitmap, wxITEM_NORMAL,_T("Add input to Complex box"), _T("Add input to Complex box"));
+               toolbar->AddTool(ID_ADDCOMPLEXBOXOUTPUT,_T("Add output to Complex box"),bmp_complexoutputport, wxNullBitmap, wxITEM_NORMAL,_T("Add output Complex box"), _T("Add output Complex box"));
+               toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT,false);
+               toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT,false);
+
+               toolbar->SetMargins( 2, 2 );
+               toolbar->Realize();
+               SetToolBar(toolbar);
+
+               // connect command event handlers
+               Connect(ID_NEW,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreateNewTab));
+               Connect(ID_OPEN,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnOpenDiagram));
+               Connect(ID_SAVE_AS_DIAGRAM,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualDiagram));
+               Connect(ID_RUN,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExecuteActualDiagram));
+               Connect(ID_DELETEALL,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnDeleteAllBoxesActualDiagram));
+               Connect(ID_CENTERVIEW,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCenterViewActualDiagram));
+               Connect(ID_BTNBOX,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnClickBtnBox));
+               Connect(ID_BTNCOMPLEXBOX,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnClickBtnComplexBox));
+               Connect(ID_ADDCOMPLEXBOXINPUT,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnAddComplexBoxInput));
+               Connect(ID_ADDCOMPLEXBOXOUTPUT,wxEVT_COMMAND_TOOL_CLICKED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnAddComplexBoxOutput));
+
+       }
+       //=========================================================================
+       void wxGUIEditorGraphicBBS::initHelpHTMLBrowser()
+       {
+               //TO FIX THE PATH OF BBTK BIN  IN ORDER TO USE REGENERATE EXECUTABLES
+               //RegenerateAll();
+               _helpHtmlBrowser = new WxGUIHtmlBrowser(this,wxSize(200,0));
+               _frameAUIMgr->AddPane(_helpHtmlBrowser,wxAuiPaneInfo().Right().MinSize(200,200));
+       }
+
+       //=========================================================================
+       void wxGUIEditorGraphicBBS::initMenu()
+       {
+               // Create File menu and its items
+               wxMenu *fileMenu = new wxMenu();
+               fileMenu->Append(ID_NEW, _T("New diagram"), _T("New"));
+               fileMenu->Append(ID_SAVE_AS_DIAGRAM, _T("Save diagram"), _T("Save diagram"));
+               fileMenu->Append(ID_OPEN_BBS, _T("Open BBS"), _T("Open BBS"));
+               fileMenu->Append(ID_SAVE_AS_BBS, _T("Save BBS"), _T("Save BBS"));
+               fileMenu->Append(ID_SAVE_AS_COMPLEXBOX, _T("Save complex box"), _T("Save complex box"));
+               fileMenu->Append(wxID_EXIT, _T("E&xit"), _T("Exit"));
+
+               Connect(ID_NEW,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreateNewTab));
+               Connect(ID_SAVE_AS_DIAGRAM,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualDiagram));
+               Connect(ID_OPEN_BBS,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnOpenBBS));
+               Connect(ID_SAVE_AS_BBS,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualBBS));
+               Connect(ID_SAVE_AS_COMPLEXBOX,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnSaveActualComplexBox));
+               Connect(wxID_EXIT,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnExit));
+
+               // Create Help menu and its items
+               wxMenu *editMenu = new wxMenu;
+               editMenu->Append(ID_COPY_TO_COMPLEXDIAGRAM, _T("Copy selected to complex box"), _T("Creates a new complex box diagram with selected boxes"));
+
+               Connect(ID_COPY_TO_COMPLEXDIAGRAM,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCopySelectedToComplexDiagram));
+
+               // Create Help menu and its items
+               wxMenu *helpMenu = new wxMenu;
+               helpMenu->Append(wxID_ABOUT, _T("&About..."), _T("About"));
+               helpMenu->Append(ID_HELP_BBEDITOR, _T("&Help..."), _T("Help"));
+               Connect(ID_HELP_BBEDITOR,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(wxGUIEditorGraphicBBS::OnHelpBBeditor));
+
+               // Append the created menu to the menu bar
+               wxMenuBar *menuBar = new wxMenuBar();
+               menuBar->Append(fileMenu, _T("&File"));
+               menuBar->Append(editMenu, _T("&Edit"));
+               menuBar->Append(helpMenu, _T("&Help"));
+
+               // Attach this menu bar to the frame
+               SetMenuBar(menuBar);
+       }
+
+       //=========================================================================
+       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()
+       {
+               _pkgBrowser = new WxGUIPackageBrowser2(this);
+               _pkgBrowser->IncludeAll();
+               _frameAUIMgr->AddPane(_pkgBrowser,wxAuiPaneInfo().Left().MinSize(200,200).CloseButton(false));
+       }
+
+       //================================================================
+
+       void wxGUIEditorGraphicBBS::DoRegeneratePackageDoc( const std::string& pack )
+       {
+               std::string mess("Regenerating doc for package '");
+               if (pack!="-a"){
+                       mess += pack + "'";
+               }
+               else
+               {
+                       mess = "Regenerating doc for all packages";
+               }
+
+               mess += " ... please wait";
+
+               SetStatusText( std2wx(mess) );
+
+               //BBTK_BUSY_CURSOR;
+
+               std::string command;
+               #if defined(WIN32)
+                       command = "\"";
+               #endif
+                       command += ConfigurationFile::GetInstance().Get_bin_path();
+                       command += ConfigurationFile::GetInstance().Get_file_separator();
+                       command += "bbRegeneratePackageDoc";
+               #if defined(WIN32)
+                       command += "\"";
+               #endif
+
+               command += " " + pack + " -q";
+           bbtkMessage("debug",1,"Executing system command '"<<command<<"'"<<std::endl);
+
+               if ( ! system ( command.c_str() ) )
+               {
+                       SetStatusText( _T("Done !"));
+                       /*
+                       wxMessageBox(_T("Done !"),_T("Regenerate package '")
+                                        +std2wx(pack)+_T("' doc"),
+                                        wxOK | wxICON_INFORMATION);
+                       */
+               }
+               else
+               {
+                       SetStatusText( _T("Done !"));
+                       wxString err(_T("An error occured while running '"));
+                       err +=  bbtk::std2wx(command) + _T("'");
+                       wxMessageBox(err,_T("Regenerate package doc"),wxOK | wxICON_ERROR);
+           }
+       }
+
+       //================================================================
+       void wxGUIEditorGraphicBBS::DoRegenerateBoxesLists()
+       {
+               SetStatusText( _T("Regenerating boxes lists ... please wait") );
+               //BBTK_BUSY_CURSOR ;
+
+               std::string command;
+               #if defined(WIN32)
+                       command = "\"";
+               #endif
+                       command += ConfigurationFile::GetInstance().Get_bin_path();
+                       command += ConfigurationFile::GetInstance().Get_file_separator();
+                       command += "bbRegenerateBoxesLists";
+
+               #if defined(WIN32)
+                       command += "\"";
+               #endif
+                       command += " -q";
+
+               bbtkMessage("debug",1,"Executing system command '"<<command<<"'"<<std::endl);
+
+               if ( ! system ( command.c_str() ) )
+               {
+                       SetStatusText( _T("Done !"));
+                       /*
+                       wxMessageBox(_T("Done !"),_T("Regenerate boxes lists"),
+                                        wxOK | wxICON_INFORMATION);
+                       */
+               }
+               else
+               {
+                       SetStatusText( _T("Done !"));
+                       wxString err(_T("An error occured while running '"));
+                       err +=  bbtk::std2wx(command) + _T("'");
+                       wxMessageBox(err,_T("Regenerate boxes lists"),wxOK | wxICON_ERROR);
+               }
+       }
+
+  //================================================================
+       void wxGUIEditorGraphicBBS::RegenerateAll()
+       {
+               DoRegeneratePackageDoc("-a");
+               DoRegenerateBoxesLists();
+       }
+
+       //================================================================
+
+       wxAuiNotebook* wxGUIEditorGraphicBBS::getAuiNotebook()
+       {
+               return _notebook;
+       }
+
+       //================================================================
+
+       void wxGUIEditorGraphicBBS::displayBlackBoxInfo(std::string packageName, std::string boxName)
+       {
+               if(_actualPkgBrowserPkgName != packageName || _actualPkgBrowserBoxName != boxName )
+               {
+                       _actualPkgBrowserPkgName = packageName;
+                       _actualPkgBrowserBoxName = boxName;
+
+                       BlackBoxDescriptor::Pointer descriptor = GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor(packageName, boxName);
+                       _pkgBrowser->WxGUIBlackBoxListUserOnSelected(descriptor.get());
+               }
+       }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::editBlackBox(GBlackBoxModel *bbmodel)
+       {
+               wxBlackBoxEditionDialog* dialog = new wxBlackBoxEditionDialog(this,bbmodel);
+               dialog->Show();
+       }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::updateStatusBar(std::string textStatus)
+       {
+               SetStatusText(crea::std2wx(textStatus));
+       }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::executeScript(std::string script)
+       {
+               std::string separator = ConfigurationFile::GetInstance().Get_file_separator ();
+               std::string dir = ConfigurationFile::GetInstance().Get_default_temp_dir();
+               std::string filename = dir + separator + "tmp_bbtk.bbs";
+
+               ofstream tempFile;
+               tempFile.open(filename.c_str());
+               tempFile << script;
+               tempFile.close();
+
+               std::string command = "\""+ crea::System::GetExecutablePath();
+
+
+#ifdef MACOSX
+               command += separator + "../../../bbi.app/Contents/MacOS";
 #endif
-       command += " -q";
 
-       bbtkMessage("debug",1,"Executing system command '"<<command<<"'"<<std::endl);
+               #ifdef WIN32
+                       command += "\"";
+               #endif
 
-       if (!system(command.c_str())) {
-               SetStatusText(_T("Done !"));
                /*
-                wxMessageBox(_T("Done !"),_T("Regenerate boxes lists"),
-                wxOK | wxICON_INFORMATION);
-                */
-       } else {
-               SetStatusText(_T("Done !"));
-               wxString err(_T("An error occured while running '"));
-               err += bbtk::std2wx(command) + _T("'");
-               wxMessageBox(err, _T("Regenerate boxes lists"), wxOK | wxICON_ERROR);
+
+               //command += ConfigurationFile::GetInstance().Get_bin_path();
+//EED          command +="C:/temp/bbtkBIN/RelWithDebInfo//";
+//EED          command +="C:/Program Files/CreaTools/bbtk-0.9.5/bin";
+
+
+               #ifdef MACOSX
+                       command += separator + "usr/local/bin/bbi.app/Contents/MacOS/bbi\" ";
+               #else
+                   command +=".";
+                       command += separator + "bbi\" ";
+               #endif
+ */
+               command += separator + "bbi\" ";
+               command += "\""+filename + "\"";
+               #ifdef WIN32
+                       command += "\"";
+               #endif
+
+               command += " & ";
+
+               printf ("RaC wxGUIEditorGraphicBBS::executeScript %s \n" , command.c_str() );
+               system( command.c_str() );
+       }
+
+       //=========================================================================
+       // EVENT HANDLERS
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnCreateNewTab(wxCommandEvent& event)
+       {
+               _tabsMgr->addNewTab();
+               refreshGUIControls();
+       }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnExecuteActualDiagram(wxCommandEvent& event)
+       {
+               std::string script1 = _tabsMgr->getActualDiagramBBS(true);
+               cout<<endl<<"RaC wxGUIEditorGraphicBBS::executeActualDiagram SCRIPT"<<endl<<endl;
+               cout<<script1<<endl;
+
+               std::string script2 = _tabsMgr->getActualDiagramBBS(false);
+               executeScript(script2);
        }
-}
 
-//================================================================
-void wxGUIEditorGraphicBBS::RegenerateAll() {
-       DoRegeneratePackageDoc("-a");
-       DoRegenerateBoxesLists();
-}
 
-//================================================================
+       //=========================================================================
+       // HANDLERS
+       //=========================================================================
+       void wxGUIEditorGraphicBBS::OnOpenBBS(wxCommandEvent& event)
+       {
+               wxFileDialog * openFileDialog = new wxFileDialog(this,wxT("Open BBS"),wxEmptyString,wxT("NewBBS"),wxT("*.bbs"),wxOPEN);
+               if (openFileDialog->ShowModal() == wxID_OK)
+               {
+                       wxString fileName = openFileDialog->GetPath(  );
 
-wxAuiNotebook* wxGUIEditorGraphicBBS::getAuiNotebook() {
-       return _notebook;
-}
 
-//================================================================
+                       _tabsMgr->addNewTab(  openFileDialog->GetFilename()  );
 
-void wxGUIEditorGraphicBBS::displayBlackBoxInfo(std::string packageName,
-               std::string boxName) {
-       if (_actualPkgBrowserPkgName != packageName || _actualPkgBrowserBoxName
-                       != boxName) {
-               _actualPkgBrowserPkgName = packageName;
-               _actualPkgBrowserBoxName = boxName;
+                       bbtk::InterpreterBBS::Pointer I = bbtk::InterpreterBBS::New( this->_tabsMgr->getActualTabPanel()->getSceneManager() , _pkgBrowser->GetFactory());
 
-               BlackBoxDescriptor::Pointer descriptor =
-                               GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor(
-                                               packageName, boxName);
-               _pkgBrowser->WxGUIBlackBoxListUserOnSelected(descriptor.get());
+                       // We tell the interpreter to throw exceptions on error
+                       I->SetThrow(true);
+                       // Interpret the file supposed to define a box called 'Processing'
+                       I->InterpretFile( (const char*) (fileName.mb_str()) );
+               }
+               refreshGUIControls();
        }
-}
 
-//=========================================================================
 
-void wxGUIEditorGraphicBBS::editBlackBox(GBlackBoxModel *bbmodel) {
-       wxBlackBoxEditionDialog* dialog =
-                       new wxBlackBoxEditionDialog(this, bbmodel);
-       dialog->Show();
-}
 
-//=========================================================================
+    void wxGUIEditorGraphicBBS::SaveActualBBS(std::string filename)
+       {
+        ofstream file;
+
+//EED          file.open(fileName.c_str());
+        file.open( filename.c_str() );
+        std::string content="";
+        // writing file header
+        content += "# ----------------------------------\n";
+        content += "# - BBTKGEditor v 1.2 BBS BlackBox Script\n";
+        content += "# - ";
+        content += filename;
+        content += "\n";
+        content += "# ----------------------------------\n";
+        content += "\n";
+        content += _tabsMgr->getActualDiagramBBS();
+        file << content;
+        file.close();
+       }
 
-void wxGUIEditorGraphicBBS::updateStatusBar(std::string textStatus) {
-       SetStatusText(crea::std2wx(textStatus));
-}
 
-//=========================================================================
+       void wxGUIEditorGraphicBBS::OnSaveActualBBS(wxCommandEvent& event)
+       {
+               wxFileDialog * saveFileDialog = new wxFileDialog(this,wxT("Save  actual BBS"),wxEmptyString,wxT("NewBBS"),wxT("*.bbs"),wxSAVE|wxOVERWRITE_PROMPT);
+               if (saveFileDialog->ShowModal() == wxID_OK)
+               {
+                       wxString fileName = saveFileDialog->GetPath(  );
+            SaveActualBBS( (const char*) (fileName.mb_str())  );
+               }
 
-void wxGUIEditorGraphicBBS::executeScript(std::string script) {
-       std::string separator =
-                       ConfigurationFile::GetInstance().Get_file_separator();
-       std::string dir = ConfigurationFile::GetInstance().Get_default_temp_dir();
-       std::string filename = dir + separator + "tmp_bbtk.bbs";
+       }
 
-       ofstream tempFile;
-       tempFile.open(filename.c_str());
-       tempFile << script;
-       tempFile.close();
 
-       std::string command = "";
+    void wxGUIEditorGraphicBBS::AskComplexBoxConfiguration()
+    {
+               std::string cbName = _tabsMgr->GetCbName();
+               std::string paName = _tabsMgr->GetCbPackageName();
 
-#ifdef WIN32
-       command += "start /b ";
-#endif
+               wxTextEntryDialog *cbNameDialog = new wxTextEntryDialog(this,wxT("Complex Box name"));
+               wxTextEntryDialog *paNameDialog = new wxTextEntryDialog(this,wxT("Package name"));
 
-       //              command += "\""+ crea::System::GetExecutablePath();
-       //#ifdef MACOSX
-       //              command += separator + "../../../bbi.app/Contents/MacOS";
-       //#endif
+               cbNameDialog->SetValue( wxString(cbName.c_str(),wxConvUTF8) );
+               paNameDialog->SetValue( wxString(paName.c_str(),wxConvUTF8) );
 
-       command += "bbi ";
-       command += "\"" + filename + "\"";
+               if (cbNameDialog->ShowModal() == wxID_OK)
+               {
+                       wxString complexboxname = cbNameDialog->GetValue();
+                       cbName=(const char*) (complexboxname.mb_str());
+               }
 
-#ifndef WIN32
-       command += " & ";
-#endif
 
-       printf("RaC wxGUIEditorGraphicBBS::executeScript %s \n", command.c_str());
-       system(command.c_str());
-}
-
-//=========================================================================
-// EVENT HANDLERS
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnCreateNewTab(wxCommandEvent& event) {
-       _tabsMgr->addNewTab();
-       refreshGUIControls();
-}
+               if (paNameDialog->ShowModal() == wxID_OK)
+               {
+                       wxString packagename = paNameDialog->GetValue();
+                       paName=(const char*) (packagename.mb_str());
+               }
 
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnExecuteActualDiagram(wxCommandEvent& event) {
-       std::string script1 = _tabsMgr->getActualDiagramBBS(true);
-       cout << endl << "RaC wxGUIEditorGraphicBBS::executeActualDiagram SCRIPT"
-                       << endl << endl;
-       cout << script1 << endl;
-
-       std::string script2 = _tabsMgr->getActualDiagramBBS(false);
-       executeScript(script2);
-}
-
-//=========================================================================
-// HANDLERS
-//=========================================================================
-void wxGUIEditorGraphicBBS::OnOpenBBS(wxCommandEvent& event) {
-       wxFileDialog * openFileDialog = new wxFileDialog(this, wxT("Open BBS"),
-                       wxEmptyString, wxT("NewBBS"), wxT("*.bbs"), wxOPEN);
-       if (openFileDialog->ShowModal() == wxID_OK) {
-               wxString fileName = openFileDialog->GetPath();
-
-               _tabsMgr->addNewTab(openFileDialog->GetFilename());
-
-               bbtk::InterpreterBBS::Pointer I = bbtk::InterpreterBBS::New(
-                               this->_tabsMgr->getActualTabPanel()->getSceneManager(),
-                               _pkgBrowser->GetFactory());
-
-               // We tell the interpreter to throw exceptions on error
-               I->SetThrow(true);
-               // Interpret the file supposed to define a box called 'Processing'
-               I->InterpretFile((const char*) (fileName.mb_str()));
-       }
-       refreshGUIControls();
-}
-
-void wxGUIEditorGraphicBBS::SaveActualBBS(std::string filename) {
-       ofstream file;
-
-       //EED           file.open(fileName.c_str());
-       file.open(filename.c_str());
-       std::string content = "";
-       // writing file header
-       content += "# ----------------------------------\n";
-       content += "# - BBTKGEditor v 1.2 BBS BlackBox Script\n";
-       content += "# - ";
-       content += filename;
-       content += "\n";
-       content += "# ----------------------------------\n";
-       content += "\n";
-       content += _tabsMgr->getActualDiagramBBS();
-       file << content;
-       file.close();
-}
-
-void wxGUIEditorGraphicBBS::OnSaveActualBBS(wxCommandEvent& event) {
-       wxFileDialog * saveFileDialog = new wxFileDialog(this,
-                       wxT("Save  actual BBS"), wxEmptyString, wxT("NewBBS"),
-                       wxT("*.bbs"), wxSAVE | wxOVERWRITE_PROMPT);
-       if (saveFileDialog->ShowModal() == wxID_OK) {
-               wxString fileName = saveFileDialog->GetPath();
-               SaveActualBBS((const char*) (fileName.mb_str()));
-       }
-
-}
-
-void wxGUIEditorGraphicBBS::AskComplexBoxConfiguration() {
-       std::string cbName = _tabsMgr->GetCbName();
-       std::string paName = _tabsMgr->GetCbPackageName();
-
-       wxTextEntryDialog *cbNameDialog = new wxTextEntryDialog(this,
-                       wxT("Complex Box name"));
-       wxTextEntryDialog *paNameDialog = new wxTextEntryDialog(this,
-                       wxT("Package name"));
-
-       cbNameDialog->SetValue(wxString(cbName.c_str(), wxConvUTF8));
-       paNameDialog->SetValue(wxString(paName.c_str(), wxConvUTF8));
-
-       if (cbNameDialog->ShowModal() == wxID_OK) {
-               wxString complexboxname = cbNameDialog->GetValue();
-               cbName = (const char*) (complexboxname.mb_str());
-       }
-
-       if (paNameDialog->ShowModal() == wxID_OK) {
-               wxString packagename = paNameDialog->GetValue();
-               paName = (const char*) (packagename.mb_str());
-       }
-
-       _tabsMgr->SetCbName(cbName);
-       _tabsMgr->SetCbPackageName(paName);
-}
-
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::SaveActualComplexBox(std::string filename) {
-       ofstream file;
-       file.open(filename.c_str());
-
-       std::string content = "";
-
-       // writing file header
-       content += "# ----------------------------------\n";
-       content += "# - BBTKGEditor v 1.2 BBS BlackBox Script (Complex Box)\n";
-       content += "# - ";
-       content += filename;
-       content += "\n";
-       content += "# ----------------------------------\n";
-       content += "\n";
-       content += _tabsMgr->getActualComplexBoxBBS();
-       file << content;
-       file.close();
-}
-
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnSaveActualComplexBox(wxCommandEvent& event) {
-       wxFileDialog * saveFileDialog = new wxFileDialog(this,
-                       wxT("Save Complex Box BBS"), wxEmptyString,
-                       _T("ComplexBoxName"), wxT("*.bbs"), wxSAVE
-                                       | wxOVERWRITE_PROMPT);
-       if (saveFileDialog->ShowModal() == wxID_OK) {
-               wxString fileName = saveFileDialog->GetPath();
-               SaveActualComplexBox((const char*) (fileName.mb_str()));
-       }
-}
-
-//=========================================================================
-void wxGUIEditorGraphicBBS::SaveActualDiagram(std::string filename) {
-       ofstream file;
-       file.open(filename.c_str());
-
-       std::string content = "";
-
-       // writing file header
-       content += "# ----------------------------------\n";
-       content += "# - BBTKGEditor v 1.2 BBG BlackBox Diagram file\n";
-       content += "# - ";
-
-       content += filename;
-
-       content += "\n";
-       content += "# ----------------------------------\n";
-       content += "\n";
-       content += "APP_START\n";
-       _tabsMgr->saveActualDiagram(content, filename); //DFCH
-       content += "APP_END\n";
-       file << content;
-       file.close();
-}
-
-//=========================================================================
-
-//The following method allows to save the current diagram asking the filename
-//DFCH
-void wxGUIEditorGraphicBBS::SaveCurrentDiagramAs() {
-       wxFileDialog * saveFileDialog = new wxFileDialog(this,
-                       wxT("Save current diagram"), wxEmptyString, wxT("NewDiagram"),
-                       wxT("*.bbg"), wxSAVE | wxOVERWRITE_PROMPT);
-       if (saveFileDialog->ShowModal() == wxID_OK) {
-               _tabsMgr->SetNameTabPanel(saveFileDialog->GetFilename());
-               wxString pathfileName = saveFileDialog->GetPath();
-               std::string pathfilename = (const char*) (pathfileName.mb_str());
-               std::string pathfilenamebbs = pathfilename;
-               pathfilenamebbs[pathfilenamebbs.length() - 1] = 's';
-               if (_tabsMgr->isActualDiagramComplexBox() == false) {
-                       SaveActualDiagram(pathfilename);
-                       SaveActualBBS(pathfilenamebbs);
-               } else {
-                       AskComplexBoxConfiguration();
-                       SaveActualDiagram(pathfilename);
-                       SaveActualComplexBox(pathfilenamebbs);
-               } //if isActualDiagramComplexBox
-       } // if saveFileDialog
-}
-//=========================================================================
-//DFCH
-void wxGUIEditorGraphicBBS::OnSaveActualDiagram(wxCommandEvent& event) {
-       std::string pathfilename = _tabsMgr->GetCurrentTabPanelPath();
-       if (pathfilename.empty()) {
-               SaveCurrentDiagramAs();
-       } else {
-               std::string pathfilenamebbs = pathfilename;
-               pathfilenamebbs[pathfilenamebbs.length() - 1] = 's';
-
-               if (_tabsMgr->isActualDiagramComplexBox() == false) {
-                       SaveActualDiagram(pathfilename);
-                       SaveActualBBS(pathfilenamebbs);
-               } else {
-                       AskComplexBoxConfiguration();
-                       SaveActualDiagram(pathfilename);
-                       SaveActualComplexBox(pathfilenamebbs);
-               } //if isActualDiagramComplexBox
-       }
-}
-//=========================================================================
-//DFCH
-void wxGUIEditorGraphicBBS::OnSaveAsActualDiagram(wxCommandEvent& event) {
-       SaveCurrentDiagramAs();
-}
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::refreshGUIControls() {
-       wxToolBar* toolbar = GetToolBar();
-       if (_tabsMgr->isActualDiagramComplexBox()) {
-               toolbar->ToggleTool(ID_BTNCOMPLEXBOX, true);
-               toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT, true);
-               toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT, true);
-
-               GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX, true);
-               GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS, false);
-       } else {
-               toolbar->ToggleTool(ID_BTNCOMPLEXBOX, false);
-               toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT, false);
-               toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT, false);
-
-               GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX, false);
-               GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS, true);
-       }
-
-       if (_tabsMgr->getNumActualSelectedObjects() > 0) {
-               GetMenuBar()->GetMenu(1)->Enable(ID_COPY_TO_COMPLEXDIAGRAM, true);
-       } else {
-               ///TODO Fix the possibility to say from the SceneManager to the GUI to refresh the options
-               GetMenuBar()->GetMenu(1)->Enable(ID_COPY_TO_COMPLEXDIAGRAM, true);
-       }
-
-}
-
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnDeleteAllBoxesActualDiagram(wxCommandEvent& event) {
-       wxMessageDialog *dial = new wxMessageDialog(NULL,
-                       wxT("Are you sure to delete all boxes of the diagram?"),
-                       wxT("Delete all boxes"), wxYES_NO | wxNO_DEFAULT
-                                       | wxICON_QUESTION);
-       if (dial->ShowModal() == wxID_YES) {
-               _tabsMgr->deleteAllBoxesActualDiagram();
-       }
-}
-
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnCenterViewActualDiagram(wxCommandEvent& event) {
-       _tabsMgr->centerViewActualDiagram();
-}
-
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnOpenDiagram(wxCommandEvent& event) {
-       wxFileDialog * openFileDialog = new wxFileDialog(this, wxT("Open diagram"),
-                       wxEmptyString, wxT(""), wxT("*.bbg"), wxOPEN | wxFILE_MUST_EXIST);
-       if (openFileDialog->ShowModal() == wxID_OK) {
-               wxString fileName = openFileDialog->GetPath();
-               ifstream inputStream;
-               std::string fName = (const char*) (fileName.mb_str());
-               inputStream.open(fName.c_str());
-               _tabsMgr->addNewTab(openFileDialog->GetFilename());
-
-               _tabsMgr->loadDiagram(inputStream, fName);
-
-               inputStream.close();
-       }
-       refreshGUIControls();
-}
-
-//=========================================================================
-
-
-void wxGUIEditorGraphicBBS::OnClickBtnBox(wxCommandEvent& event) {
-       BlackBoxDescriptor *bbDes = _pkgBrowser->GetActualSelected();
-       if (bbDes != NULL) {
-               std::string typeName = bbDes->GetTypeName();
-               std::string packageName = bbDes->GetPackage()->GetName();
-
-               wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
-
-               if (pnl != NULL) {
-                       wxVtkSceneManager *scn = pnl->getSceneManager();
-                       scn->createGBlackBox(50, 50, packageName, typeName);
-                       scn->refresh();
-               } // if pnl
-       }// if bbDes
-}
+        _tabsMgr->SetCbName(cbName);
+        _tabsMgr->SetCbPackageName(paName);
+    }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::SaveActualComplexBox(std::string filename)
+       {
+        ofstream file;
+        file.open( filename.c_str() );
+
+        std::string content="";
+
+        // writing file header
+        content += "# ----------------------------------\n";
+        content += "# - BBTKGEditor v 1.2 BBS BlackBox Script (Complex Box)\n";
+        content += "# - ";
+        content += filename;
+        content += "\n";
+        content += "# ----------------------------------\n";
+        content += "\n";
+        content += _tabsMgr->getActualComplexBoxBBS();
+        file << content;
+        file.close();
+       }
 
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnClickBtnExecutableBox(wxCommandEvent& event) {
-       //DFCH
-       wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
+       //=========================================================================
 
-       if (pnl != NULL) {
-               wxVtkSceneManager *scn = pnl->getSceneManager();
-               if( scn->MakeBoxExecutable() )
-                       std::cout<<"DFCH: wxGUIEditorGraphicBBS::OnClickBtnExecutableBox...successful"<<std::endl;
+       void wxGUIEditorGraphicBBS::OnSaveActualComplexBox(wxCommandEvent& event)
+       {
+        wxFileDialog * saveFileDialog = new wxFileDialog(this ,wxT("Save Complex Box BBS") ,wxEmptyString, _T("ComplexBoxName") ,wxT("*.bbs"), wxSAVE | wxOVERWRITE_PROMPT);
+        if (saveFileDialog->ShowModal() == wxID_OK)
+        {
+            wxString fileName = saveFileDialog->GetPath();
+            SaveActualComplexBox( (const char*) (fileName.mb_str()) );
+        }
+       }
+
+       //=========================================================================
+       void wxGUIEditorGraphicBBS::SaveActualDiagram(std::string filename)
+       {
+        ofstream file;
+        file.open( filename.c_str() );
+
+        std::string content="";
+
+        // writing file header
+        content += "# ----------------------------------\n";
+        content += "# - BBTKGEditor v 1.2 BBG BlackBox Diagram file\n";
+        content += "# - ";
+
+        content += filename;
+
+        content += "\n";
+        content += "# ----------------------------------\n";
+        content += "\n";
+        content += "APP_START\n";
+        _tabsMgr->saveActualDiagram(content);
+        content += "APP_END\n";
+        file << content;
+        file.close();
+    }
+
+
+       //=========================================================================
+       void wxGUIEditorGraphicBBS::OnSaveActualDiagram(wxCommandEvent& event)
+       {
+               wxFileDialog * saveFileDialog = new wxFileDialog(this,wxT("Save  actual diagram"),wxEmptyString,wxT("NewDiagram"),wxT("*.bbg"),wxSAVE|wxOVERWRITE_PROMPT);
+               if (saveFileDialog->ShowModal() == wxID_OK)
+               {
+            _tabsMgr->SetNameTabPanel( saveFileDialog->GetFilename() );
+
+                       wxString pathfileName       = saveFileDialog->GetPath();
+                       std::string pathfilename    = (const char*) (pathfileName.mb_str());
+            std::string pathfilenamebbs = pathfilename;
+            pathfilenamebbs[pathfilenamebbs.length()-1]='s';
+
+            if (_tabsMgr->isActualDiagramComplexBox()==false)
+            {
+                SaveActualDiagram( pathfilename );
+                SaveActualBBS(pathfilenamebbs);
+            } else {
+                AskComplexBoxConfiguration();
+                SaveActualDiagram( pathfilename );
+                SaveActualComplexBox(pathfilenamebbs);
+            } //if isActualDiagramComplexBox
+               } // if saveFileDialog
+       }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::refreshGUIControls()
+       {
+               wxToolBar* toolbar = GetToolBar();
+               if(_tabsMgr->isActualDiagramComplexBox())
+               {
+                       toolbar->ToggleTool(ID_BTNCOMPLEXBOX,true);
+                       toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT,true);
+                       toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT,true);
+
+                       GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX,true);
+                       GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS,false);
+               }
                else
-                       std::cout<<"DFCH: wxGUIEditorGraphicBBS::OnClickBtnExecutableBox...Error!!"<<std::endl;
+               {
+                       toolbar->ToggleTool(ID_BTNCOMPLEXBOX,false);
+                       toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT,false);
+                       toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT,false);
+
+                       GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_COMPLEXBOX,false);
+                       GetMenuBar()->GetMenu(0)->Enable(ID_SAVE_AS_BBS,true);
+               }
+
+               if(_tabsMgr->getNumActualSelectedObjects()>0)
+               {
+                       GetMenuBar()->GetMenu(1)->Enable(ID_COPY_TO_COMPLEXDIAGRAM,true);
+               }
+               else
+               {
+                       ///TODO Fix the possibility to say from the SceneManager to the GUI to refresh the options
+                       GetMenuBar()->GetMenu(1)->Enable(ID_COPY_TO_COMPLEXDIAGRAM,true);
+               }
+
+       }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnDeleteAllBoxesActualDiagram(wxCommandEvent& event)
+       {
+               wxMessageDialog *dial = new wxMessageDialog(NULL, wxT("Are you sure to delete all boxes of the diagram?"), wxT("Delete all boxes"), wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION);
+               if(dial->ShowModal() == wxID_YES)
+               {
+                       _tabsMgr->deleteAllBoxesActualDiagram();
+               }
+       }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnCenterViewActualDiagram(wxCommandEvent& event)
+       {
+               _tabsMgr->centerViewActualDiagram();
+       }
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnOpenDiagram(wxCommandEvent& event)
+       {
+               wxFileDialog * openFileDialog = new wxFileDialog(this,wxT("Open diagram"),wxEmptyString,wxT(""),wxT("*.bbg"),wxOPEN|wxFILE_MUST_EXIST);
+               if (openFileDialog->ShowModal() == wxID_OK)
+               {
+                       wxString fileName = openFileDialog->GetPath();
+                       ifstream inputStream;
+                       std::string fName=(const char*) (fileName.mb_str());
+                       inputStream.open( fName.c_str() );
+                       _tabsMgr->addNewTab( openFileDialog->GetFilename() );
+
+                       _tabsMgr->loadDiagram(inputStream);
+
+                       inputStream.close();
+               }
+               refreshGUIControls();
        }
-       //DFCH
 
-}
+       //=========================================================================
+
+
+       void wxGUIEditorGraphicBBS::OnClickBtnBox(wxCommandEvent& event)
+       {
+               BlackBoxDescriptor      *bbDes = _pkgBrowser->GetActualSelected();
+        if (bbDes!=NULL)
+        {
+            std::string                        typeName        = bbDes->GetTypeName();
+            std::string                        packageName = bbDes->GetPackage()->GetName();
 
-//=========================================================================
 
-void wxGUIEditorGraphicBBS::OnClickBtnComplexBox(wxCommandEvent& event) {
-       wxToolBar* toolbar = GetToolBar();
-       bool temp = toolbar->GetToolState(ID_BTNCOMPLEXBOX);
-       if (temp) {
-               _tabsMgr->setActualDiagramComplexBox(true);
-       } else {
-               _tabsMgr->setActualDiagramComplexBox(false);
+            wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
+
+            if (pnl!=NULL)
+            {
+                wxVtkSceneManager *scn = pnl->getSceneManager();
+                scn->createGBlackBox(50,50,packageName, typeName);
+                scn->refresh();
+            } // if pnl
+        }// if bbDes
        }
-       refreshGUIControls();
-}
 
-//=========================================================================
+       //=========================================================================
+
 
-void wxGUIEditorGraphicBBS::OnAddComplexBoxInput(wxCommandEvent& event) {
-       wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,
-                       wxT("Name of input port"));
-       if (nameDialog->ShowModal() == wxID_OK) {
-               wxString fileName = nameDialog->GetValue();
-               if (!fileName.IsEmpty()) {
-                       std::string portName = (const char*) (fileName.mb_str());
-                       _tabsMgr->addActualDiagramComplexInputPort(portName);
+       void wxGUIEditorGraphicBBS::OnClickBtnComplexBox(wxCommandEvent& event)
+       {
+               wxToolBar* toolbar = GetToolBar();
+               bool temp = toolbar->GetToolState(ID_BTNCOMPLEXBOX);
+               if(temp)
+               {
+                       _tabsMgr->setActualDiagramComplexBox(true);
+               }
+               else
+               {
+                       _tabsMgr->setActualDiagramComplexBox(false);
                }
+               refreshGUIControls();
        }
-}
 
-//=========================================================================
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnAddComplexBoxInput(wxCommandEvent& event)
+       {
+               wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,wxT("Name of input port"));
+               if (nameDialog->ShowModal() == wxID_OK)
+               {
+                       wxString fileName = nameDialog->GetValue();
+                       if(!fileName.IsEmpty())
+                       {
+                               std::string portName=(const char*) (fileName.mb_str());
+                               _tabsMgr->addActualDiagramComplexInputPort(portName);
+                       }
+               }
+       }
 
-void wxGUIEditorGraphicBBS::OnAddComplexBoxOutput(wxCommandEvent& event) {
-       wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,
-                       wxT("Name of output port"));
-       if (nameDialog->ShowModal() == wxID_OK) {
-               wxString fileName = nameDialog->GetValue();
-               if (!fileName.IsEmpty()) {
-                       std::string portName = (const char*) (fileName.mb_str());
-                       _tabsMgr->addActualDiagramComplexOutputPort(portName);
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnAddComplexBoxOutput(wxCommandEvent& event)
+       {
+               wxTextEntryDialog *nameDialog = new wxTextEntryDialog(this,wxT("Name of output port"));
+               if (nameDialog->ShowModal() == wxID_OK)
+               {
+                       wxString fileName = nameDialog->GetValue();
+                       if(!fileName.IsEmpty())
+                       {
+                               std::string portName=(const char*) (fileName.mb_str());
+                               _tabsMgr->addActualDiagramComplexOutputPort(portName);
+                       }
                }
        }
-}
-
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnCopySelectedToComplexDiagram(
-               wxCommandEvent& event) {
-       _tabsMgr->copySelectedBBoxesToComplexDiagram();
-}
-
-void wxGUIEditorGraphicBBS::OnHelpBBeditor(wxCommandEvent& event) {
-       printf("wxGUIEditorGraphicBBS::OnHelpBBeditor ....not implemented..\n");
-}
-
-//=========================================================================
-void wxGUIEditorGraphicBBS::OnCreatePackage(wxCommandEvent& event) {
-
-       bbtkSystemTools::CreatePackage();
-}
-
-//=========================================================================
-void wxGUIEditorGraphicBBS::OnCreateBlackBox(wxCommandEvent& event) {
-       bbtkSystemTools::CreateBlackBox();
-}
-//=========================================================================
-void wxGUIEditorGraphicBBS::OnPlugPackage(wxCommandEvent& event) {
-       printf("EED wxGUIEditorGraphicBBS::OnPlugPackage ... not implemented ..\n");
-}
-//=========================================================================
-void wxGUIEditorGraphicBBS::OnEditConfig(wxCommandEvent& event) {
-       printf("EED wxGUIEditorGraphicBBS::OnEditConfig ... not implemented ..\n");
-}
-//=========================================================================
-void wxGUIEditorGraphicBBS::OnShowHTMLDoc(wxCommandEvent& event) {
-       printf("EED wxGUIEditorGraphicBBS::OnShowHTMLDoc ... not implemented ..\n");
-}
-//=========================================================================
-void wxGUIEditorGraphicBBS::OnCreateIndex(wxCommandEvent& event) {
-       printf("EED wxGUIEditorGraphicBBS::OnCreateIndex ... not implemented ..\n");
-}
-
-//=========================================================================
-
-void wxGUIEditorGraphicBBS::OnExit(wxCommandEvent& event) {
-       Close(true);
-}
-
-//=========================================================================
-
-} // EO namespace bbtk
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnCopySelectedToComplexDiagram(wxCommandEvent& event)
+       {
+               _tabsMgr->copySelectedBBoxesToComplexDiagram();
+       }
+
+
+       void wxGUIEditorGraphicBBS::OnHelpBBeditor(wxCommandEvent& event)
+       {
+               printf("wxGUIEditorGraphicBBS::OnHelpBBeditor ......\n");
+       }
+
+
+
+       //=========================================================================
+
+       void wxGUIEditorGraphicBBS::OnExit(wxCommandEvent& event)
+       {
+               Close(true);
+       }
+
+
+
+       //=========================================================================
+
+}  // EO namespace bbtk
 
 // EOF