119 TString credo( CompressName(redo) );
120 TString cundo( CompressName(undo) );
122 fNRargs = fNUargs = -1;
126 fRedo = redo ?
new TQConnection(clname, obj, credo) : 0;
127 fUndo = undo ?
new TQConnection(clname, obj, cundo) : fRedo;
134 if (!obj && !redo && !undo) {
168 Init(clname, obj, redo, undo);
200 else Init(0, 0, redo, undo);
218 for (
int i = 0; i<
fNRargs; i++) {
224 for (
int i = 0; i <
fNUargs; i++) {
275 return gActiveCommand;
339 "Cannot merge - an object which doesn't inherit from TQCommand found in the list");
399 for (
int i = 0; i <
fNRargs; i++) {
440 if (!redo || !undo || (redo != undo))
return kFALSE;
485 for (i = 0; i <
fNRargs; i++) {
488 for (i = 0; i <
fNUargs; i++) {
522 for (
int i = 0; i <
fNRargs; i++) {
556 for (
int i = 0; i <
fNUargs; i++) {
588 gActiveCommand =
this;
611 if (done)
Emit(
"Redo()");
626 gActiveCommand =
this;
654 if (done)
Emit(
"Undo()");
667 const Int_t maxname = 100;
839 lnk->GetObject()->ls();
949 TString ostr = onredo ?
"1radd" :
"0radd";
950 if (opt) ostr += opt;
998 Emit(
"CurrentChanged(TQCommand*)", (
long)c);
virtual const char * GetTitle() const
Returns command description.
ClassImp(TQCommand) ClassImp(TQUndoManager) static TQCommand *gActiveCommand=0
virtual Bool_t CanRedo() const
Returns kTRUE if redo action is possible.
virtual void ls(Option_t *option="") const
Lists all commands in stack.
virtual Int_t GetEntries() const
virtual void SetUndoArgs(Int_t nargs,...)
Set undo parameters.
virtual void Merge(TQCommand *c)
Add command to the list of merged commands.
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
virtual Bool_t CanUndo() const
Returns kTRUE if Undo action is possible, kFALSE if it's not.
const char * GetRedoName() const
Returns the name of redo command.
Int_t GetStatus() const
Returns a number of sequential undo or redo operations.
virtual void SetLogging(Bool_t on=kTRUE)
Start logging.
virtual void PrintCollectionEntry(TObject *entry, Option_t *option, Int_t recurse) const
Print collection entry.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
virtual Bool_t CanUndo() const
Returns kTRUE if undo action is possible.
virtual void Add(TObject *obj, Option_t *opt)
Add command to the stack of commands.
virtual Option_t * GetOption() const
const char * GetUndoName() const
Returns the name of undo command.
virtual void Compress(TQCommand *c)
Compress command.
virtual void PrintCollectionHeader(Option_t *option) const
Print collection header.
Bool_t IsMacro() const
Returns kTRUE if neither redo nor undo action specified.
TQUndoManager()
Constructor.
This is the ROOT implementation of the Qt object communication mechanism (see also http://www...
virtual void Init(const char *cl, void *object, const char *redo, const char *undo)
Common protected method used in several constructors.
virtual void Undo(Option_t *option="")
Performs undo action. Move cursor position backward in history stack.
Long_t * GetRedoArgs() const
Returns a pointer to array of redo arguments.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
Bool_t IsRedoing() const
Redo action is in progress.
virtual void AddLast(TObject *obj)
Add object at the end of the list.
virtual ~TQCommand()
dtor.
virtual Bool_t IsSetter() const
Returns kTRUE is command if Redo is the same as Undo function and is the setter action.
virtual void Redo(Option_t *option="")
Execute command and then merge commands.
virtual ~TQUndoManager()
Destructor.
const char * Data() const
virtual void Redo(Option_t *option="")
Performs redo action. Move cursor position forward in history stack.
virtual void SetArgs(Int_t nargs,...)
Set do/redo and undo parameters.
void * GetObject() const
Returns an object for which undo redo actions are applied.
virtual Bool_t IsEmpty() const
void Init(TClassEdit::TInterpreterLookupHelper *helper)
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual Bool_t CanMerge(TQCommand *c) const
Two commands can be merged if they can be composed into a single command (Macro command).
TQCommand(const char *cl=0, void *object=0, const char *redo=0, const char *undo=0)
Constructor.
void Emit(const char *signal)
Acitvate signal without args.
virtual Bool_t IsEqual(const TObject *obj) const
Equal comparison.
UInt_t GetLimit() const
Returns a maximum number of commands which could be located in stack.
Long_t * GetUndoArgs() const
Returns a pointer to array of undo arguments.
TQCommand * GetCursor() const
Returns a command correspondent to the current cursor position in stack.
TQConnection class is an internal class, used in the object communication mechanism.
Bool_t IsExecuting() const
Returns kTRUE if command execution is in progress.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual TObject * Remove(TObject *obj)
Remove object from the list.
virtual void CurrentChanged(TQCommand *c)
emit signal
Collection abstract base class.
TObject * GetObject() const
TObjLink * fLast
pointer to first entry in linked list
const char * GetName() const
Returns name of connection (aka name of slot)
friend class TQConnection
virtual void Delete(Option_t *option="")
If "opt" is not zero delete every merged command which option string is equal to "opt".
const char * GetClassName() const
void ExecuteMethod()
Apply slot-method to the fReceiver object without arguments.
virtual void SetTitle(const char *title)
Sets description of the command.
TQCommand * GetCurrent() const
Returns the last executed command.
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
Int_t GetNUargs() const
Returns a number of undo arguments.
Wrapper around a TObject so it can be stored in a TList.
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
virtual void SetName(const char *name)
Sets name of the command.
virtual void Add(TObject *obj, Option_t *opt)
Add command to the list of merged commands.
virtual void SetRedoArgs(Int_t nargs,...)
Set redo parameters.
virtual void Undo(Option_t *option="")
Un-execute all merged commands and the command.
Mother of all ROOT objects.
virtual Bool_t CanRedo() const
Returns kTRUE if Redo action is possible, kFALSE if it's not.
virtual void Add(TObject *obj)
Recorder of operations for undo and redo.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual const char * GetName() const
Returns the command name.
static TQCommand * GetCommand()
Return a command which is doing redo/undo action.
TQConnection * GetRedo() const
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
The Command design pattern is based on the idea, that all editing in an application is done by creati...
Bool_t IsUndoing() const
Undo action is in progress.
Bool_t IsLogging() const
Returns kTRUE if logging is ON.
virtual Bool_t CanCompress(TQCommand *c) const
By default, commands can be compressed if they are:
Int_t GetNRargs() const
Returns a number of redo arguments.
virtual void ls(Option_t *option="") const
ls this command and merged commands
virtual void SetLimit(UInt_t limit)
Returns a maximum number of commands which could be located in stack.