Cadabra
Computer algebra system for field theory problems
|
All actions derive from the ActionBase object, which defines the interface they need to implement.
These objects are used to pass (user) action instructions around. They can be stored in undo/redo stacks. All actions run on the GUI thread. The update_gui members typically call members of the GUIBase class. Action objects are allowed to modify the DTree document doc, since they essentially contain code which is part of the DocumentThread object.
#include <Actions.hh>
Public Member Functions | |
ActionBase (DataCell::id_t ref_id) | |
virtual void | execute (DocumentThread &, GUIBase &) |
Perform the action. More... | |
virtual void | revert (DocumentThread &, GUIBase &)=0 |
Revert the change to the DTree document and the GUI. More... | |
virtual bool | undoable () const |
Can this action be undone? More... | |
Protected Attributes | |
DataCell::id_t | ref_id |
DTree::iterator | ref |
ActionBase::ActionBase | ( | DataCell::id_t | ref_id | ) |
|
virtual |
Perform the action.
This should update both the document tree data structure and the GUI. The latter is updated by calling relevant methods on the GUIBase object passed in.
Reimplemented in cadabra::ActionEraseText, cadabra::ActionInsertText, cadabra::ActionSplitCell, cadabra::ActionRemoveCell, cadabra::ActionSetRunStatus, cadabra::ActionPositionCursor, and cadabra::ActionAddCell.
|
pure virtual |
Revert the change to the DTree document and the GUI.
Implemented in cadabra::ActionEraseText, cadabra::ActionInsertText, cadabra::ActionSplitCell, cadabra::ActionRemoveCell, cadabra::ActionSetRunStatus, cadabra::ActionPositionCursor, and cadabra::ActionAddCell.
|
virtual |
Can this action be undone?
Reimplemented in cadabra::ActionSetRunStatus.
|
protected |
|
protected |