/*=========================================================================
- 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) {
- printf("EED wxGUIEditorGraphicBBS::OnCreatePackag ... not implemented ..\n");
-}
-
-//=========================================================================
-void wxGUIEditorGraphicBBS::OnCreateBlackBox(wxCommandEvent& event) {
- printf(
- "EED wxGUIEditorGraphicBBS::OnCreateBlackBox ... not implemented ..\n");
-}
-//=========================================================================
-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