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.
Instead of the application functionality being scattered around if statements and functions in a way that may be hard to read and maintain, the functionality for a command is explicitly represented as an object which can be manipulated by a framework or application.
When a user interface event occurs, the application submits a command
to a wx.CommandProcessor
object to execute and store.
The wxPython document/view framework handles Undo and Redo by use of
wx.Command
and wx.CommandProcessor
objects. You
might find further uses for Command
, such as implementing a
macro facility that stores, loads and replays commands.
An application can derive a new class for every command, or, more likely, use one class parameterized with an integer or string command identifier.
wx.CommandProcessor
is a class that maintains a history of
wx.Command
instances, with undo/redo functionality
built-in. Derive a new class from this if you want different
behaviour.
wx.FileHistory
encapsulates functionality to record the last
few files visited, and to allow the user to quickly load these files
using the list appended to the File menu. Although
wx.FileHistory
is used by wx.DocManager
, it can be
used independently. You may wish to derive from it to allow different
behaviour, such as popping up a scrolling list of files.
By calling wx.FileHistory.UseMenu
you can associate a file
menu with the file history. The menu will then be used for appending
filenames that are added to the history.
Note
Please notice that currently if the history already contained
filenames when UseMenu() is called (e.g. when initializing a second
MDI child frame), the menu is not automatically initialized with
the existing filenames in the history and so you need to call
wx.FileHistory.AddFilesToMenu
after UseMenu() explicitly in
order to initialize the menu with the existing list of MRU files
(otherwise an assertion failure is raised in debug builds).
The filenames are appended using menu identifiers in the range
wx.ID_FILE1
to wx.ID_FILE9
.