Phoenix Logo

phoenix_title Command Overview

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.

phoenix_title CommandProcessor Overview

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.

phoenix_title FileHistory Overview

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.


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.