.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.Command:

==========================================================================================================================================
|phoenix_title|  **wx.Command**
==========================================================================================================================================

:ref:`wx.Command`  is a base class for modelling an application command, which is an action usually performed by selecting a menu item, pressing a toolbar button or any other means provided by the application to change the data or view.          







         



.. seealso:: :ref:`Command Overview <command overview>`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>Command</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.Command_inheritance.png" alt="Inheritance diagram of Command" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.Command.html" title="wx.Command" alt="" coords="5,83,117,112"/> <area shape="rect" id="node2" href="wx.Object.html" title="wx.Object" alt="" coords="18,5,105,35"/> </map> 
   </p>
   </div>

|


|sub_classes| Known Subclasses
==============================

:ref:`wx.richtext.RichTextCommand`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.Command.__init__`                                                     Constructor.
:meth:`~wx.Command.CanUndo`                                                      Returns ``True`` if the command can be undone, ``False`` otherwise.
:meth:`~wx.Command.Do`                                                           Override this member function to execute the appropriate action when called.
:meth:`~wx.Command.GetName`                                                      Returns the command name.
:meth:`~wx.Command.Undo`                                                         Override this member function to un-execute a previous Do.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.Command.Name`                                                         See :meth:`~wx.Command.GetName`
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.Command(Object)

   **Possible constructors**::

       Command(canUndo=False, name=EmptyString)
       
   
   Command is a base class for modelling an application command, which
   is an action usually performed by selecting a menu item, pressing a
   toolbar button or any other means provided by the application to
   change the data or view.



   .. method:: __init__(self, canUndo=False, name=EmptyString)

      Constructor.                  

      :ref:`wx.Command`  is an abstract class, so you will need to derive a new class and call this constructor from your own constructor. 




      :param `canUndo`: Tells the command processor whether this command is undo-able. You can achieve the same functionality by overriding the :meth:`CanUndo`   member function (if for example the criteria for undoability is context-dependent).   
      :type `canUndo`: bool
      :param `name`: Must be supplied for the command processor to display the command name in the application's edit menu.   
      :type `name`: string






                  





   .. method:: CanUndo(self)

      Returns ``True`` if the command can be undone, ``False`` otherwise.                  

      :rtype: `bool`








   .. method:: Do(self)

      Override this member function to execute the appropriate action when called.                  

                

      :rtype: `bool`







      :returns: 

         ``True`` to indicate that the action has taken place, ``False`` otherwise. Returning ``False`` will indicate to the command processor that the action is not undoable and should not be added to the command history.   








   .. method:: GetName(self)

      Returns the command name.                  

      :rtype: `string`








   .. method:: Undo(self)

      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 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 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. 




                

      :rtype: `bool`







      :returns: 

         ``True`` to indicate that the action has taken place, ``False`` otherwise. Returning ``False`` will indicate to the command processor that the action is not redoable and no change should be made to the command history.   








   .. attribute:: Name

      See :meth:`~wx.Command.GetName`

