]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/cmdproc.h
Add files necessary to run Expat configure.
[wxWidgets.git] / interface / wx / cmdproc.h
index 9c0c1e909ce0f342d5dad2ea156fe1e8f8ecab2a..5d948d6c27e0a6e4428f2027f2509db0b65cc677 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxCommandProcessor and wxCommand
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
@@ -35,7 +35,7 @@ public:
             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.
@@ -56,7 +56,7 @@ public:
                 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.
@@ -68,14 +68,14 @@ public:
 
         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
           know the ordering of Undos; the user can never Undo at an arbitrary
           position in the command history.
         - Restore the entire document state (perhaps using document
-          transactioning). Potentially very inefficient, but possibly easier to
+          transacting). Potentially very inefficient, but possibly easier to
           code if the user interface and data are complex, and an "inverse
           execute" operation is hard to write. The docview sample uses the
           first method, to remove or restore segments in the drawing.
@@ -85,7 +85,7 @@ public:
                 processor that the action is not redoable and no change should
                 be made to the command history.
     */
-    bool Undo();
+    virtual bool Undo() = 0;
 };
 
 
@@ -126,6 +126,12 @@ public:
     */
     virtual bool CanUndo() const;
 
+    /**
+        Returns @true if the currently-active command can be redone, @false
+        otherwise.
+    */
+    virtual bool CanRedo() const;
+
     /**
         Deletes all commands in the list and sets the current command pointer
         to @NULL.
@@ -137,6 +143,11 @@ public:
     */
     wxList& GetCommands();
 
+    /**
+        Returns the current command.
+    */
+    wxCommand *GetCurrentCommand() const;
+
     /**
         Returns the edit menu associated with the command processor.
     */
@@ -219,19 +230,28 @@ public:
     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.
     */
     virtual bool Submit(wxCommand* command, bool storeIt = true);
 
+    /**
+        Just store the command without executing it. The command is stored in the
+        history list, and the associated edit menu (if any) updated appropriately.
+    */
+    virtual void Store(wxCommand *command);
+
     /**
         Undoes the last command executed.
     */