#include "bbtkwxGUIEditorGraphicBBS.h"
#include "creaWx.h"
#include "creaSystem.h"
+#include <wx/defs.h>
#include <InterpreterBBS.h>
wxBitmap bmp_complexbox(complexbox_xpm);
wxBitmap bmp_complexinputport(complexinputport_xpm);
wxBitmap bmp_complexoutputport(complexoutputport_xpm);
-
+ wxBitmap bmp_undo(undo_xpm);
+ wxBitmap bmp_redo(redo_xpm);
wxToolBar *toolbar = new wxToolBar(this, wxID_ANY);
//Adds a tool btn to the toolbar
_T("Add output Complex box"), _T("Add output Complex box"));
toolbar->EnableTool(ID_ADDCOMPLEXBOXINPUT, false);
toolbar->EnableTool(ID_ADDCOMPLEXBOXOUTPUT, false);
-
+ toolbar->AddSeparator();
+ toolbar->AddTool(ID_UNDO, _T("Undo"),bmp_undo, wxNullBitmap, wxITEM_NORMAL, _T("Undo"), _T("Undo"));
+ toolbar->AddTool(ID_REDO, _T("Redo"),bmp_redo, wxNullBitmap, wxITEM_NORMAL, _T("Redo"), _T("Redo"));
+ //toolbar->EnableTool(ID_UNDO, false);
+ //toolbar->EnableTool(ID_REDO, false);
toolbar->SetMargins(2, 2);
toolbar->Realize();
SetToolBar(toolbar);
+
// connect command event handlers
Connect(ID_NEW, wxEVT_COMMAND_TOOL_CLICKED,
wxCommandEventHandler(wxGUIEditorGraphicBBS::OnCreateNewTab));
wxCommandEventHandler(wxGUIEditorGraphicBBS::OnAddComplexBoxInput));
Connect(ID_ADDCOMPLEXBOXOUTPUT, wxEVT_COMMAND_TOOL_CLICKED,
wxCommandEventHandler(wxGUIEditorGraphicBBS::OnAddComplexBoxOutput));
+ Connect(ID_UNDO,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnUndo));
+ Connect(ID_REDO,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(wxGUIEditorGraphicBBS::OnRedo));
}
//=========================================================================
refreshGUIControls();
}
+void wxGUIEditorGraphicBBS::OnUndo(wxCommandEvent& event) {
+ unsigned short disable;
+ GetToolBar()->EnableTool(ID_UNDO,_tabsMgr->loadTempDiagram(0));
+ if (GetToolBar()->GetToolEnabled(ID_REDO) == false)
+ GetToolBar()->EnableTool(ID_REDO,true);
+ refreshGUIControls();
+}
+
+void wxGUIEditorGraphicBBS::OnRedo(wxCommandEvent& event) {
+ unsigned short disable;
+ GetToolBar()->EnableTool(ID_REDO, _tabsMgr->loadTempDiagram(1));
+ if (GetToolBar()->GetToolEnabled(ID_UNDO) == false)
+ GetToolBar()->EnableTool(ID_UNDO,true);
+ refreshGUIControls();
+}
//=========================================================================
void wxGUIEditorGraphicBBS::OnExecuteActualDiagram(wxCommandEvent& event) {
file.close();
}
+//=========================================================================
+void wxGUIEditorGraphicBBS::SaveTempActualDiagram()
+{
+ _tabsMgr->saveTempActualDiagram();
+}
+
//=========================================================================
//The following method allows to save the current diagram asking the filename
std::string packageName = bbDes->GetPackage()->GetName();
wxGEditorTabPanel *pnl = this->_tabsMgr->getActualTabPanel();
-
+
+ // save empty state!!
+ /* if (_tabsMgr->getNumActualSelectedObjects() == 0)
+ {
+ SaveTempActualDiagram();
+ }
+ */
if (pnl != NULL) {
wxVtkSceneManager *scn = pnl->getSceneManager();
scn->createGBlackBox(50, 50, packageName, typeName);
scn->refresh();
- } // if pnl
+ }
+ if (GetToolBar()->GetToolEnabled(ID_UNDO) == false)
+ GetToolBar()->EnableTool(ID_UNDO,true);
+ SaveTempActualDiagram();
+ // if pnl
}// if bbDes
}