// Purpose: interface of wxCommandProcessor and wxCommand
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@class wxCommand
- @wxheader{cmdproc.h}
wxCommand is a base class for modelling an application command, which is an
action usually performed by selecting a menu item, pressing a toolbar
Must be supplied for the command processor to display the command
name in the application's edit menu.
*/
- wxCommand(bool canUndo = false, const wxString& name = NULL);
+ wxCommand(bool canUndo = false, const wxString& name = wxEmptyString);
/**
Destructor.
*/
- ~wxCommand();
+ virtual ~wxCommand();
/**
Returns @true if the command can be undone, @false otherwise.
*/
- bool CanUndo();
+ virtual bool CanUndo() const;
/**
Override this member function to execute the appropriate action when
processor that the action is not undoable and should not be
added to the command history.
*/
- bool Do();
+ virtual bool Do() = 0;
/**
Returns the command name.
*/
- wxString GetName();
+ virtual wxString GetName() const;
/**
Override this member function to un-execute a previous Do.
How you implement this command is totally application dependent, but
typical strategies include:
-
+
- Perform an inverse operation on the last modified piece of data in
the document. When redone, a copy of data stored in command is pasted
back or some operation reapplied. This relies on the fact that you
processor that the action is not redoable and no change should
be made to the command history.
*/
- bool Undo();
+ virtual bool Undo() = 0;
};
/**
@class wxCommandProcessor
- @wxheader{cmdproc.h}
wxCommandProcessor is a class that maintains a history of wxCommands, with
undo/redo functionality built-in. Derive a new class from this if you want
/**
Destructor.
*/
- ~wxCommandProcessor();
+ virtual ~wxCommandProcessor();
/**
Returns @true if the currently-active command can be undone, @false
otherwise.
*/
- virtual bool CanUndo();
+ virtual bool CanUndo() const;
/**
Deletes all commands in the list and sets the current command pointer
/**
Returns the list of commands.
*/
- wxList& GetCommands() const;
+ wxList& GetCommands();
/**
Returns the edit menu associated with the command processor.
the last save operation. This only works if MarkAsSaved() is called
whenever the project is saved.
*/
- virtual bool IsDirty();
+ virtual bool IsDirty() const;
/**
You must call this method whenever the project is saved if you plan to
use IsDirty().
*/
- virtual void MarkAsSaved();
+ void MarkAsSaved();
/**
Executes (redoes) the current command (the command that has just been
Sets the menu labels according to the currently set menu and the
current command state.
*/
- void SetMenuStrings();
+ virtual void SetMenuStrings();
/**
Sets the string that will be appended to the Redo menu item.
void SetUndoAccelerator(const wxString& accel);
/**
- Submits a new command to the command processor. The command processor
- calls wxCommand::Do() to execute the command; if it succeeds, the
- command is stored in the history list, and the associated edit menu (if
- any) updated appropriately. If it fails, the command is deleted
- immediately. Once Submit() has been called, the passed command should
- not be deleted directly by the application.
+ Submits a new command to the command processor.
+
+ The command processor calls wxCommand::Do() to execute the command;
+ if it succeeds, the command is stored in the history list, and the
+ associated edit menu (if any) updated appropriately.
+ If it fails, the command is deleted immediately. Once Submit() has been
+ called, the passed command should not be deleted directly by the application.
+ @param command
+ The command to submit
@param storeIt
Indicates whether the successful command should be stored in the
history list.