.. 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
.. currentmodule:: wx.lib.agw.shortcuteditor
.. highlight:: python
.. _wx.lib.agw.shortcuteditor.ShortcutEditor:
==========================================================================================================================================
|phoenix_title| **wx.lib.agw.shortcuteditor.ShortcutEditor**
==========================================================================================================================================
:class:`ShortcutEditor` is a widget that allows the user to customize and change keyboard
shortcuts via a dialog. It can be used to edit :class:`wx.MenuItem` shortcuts or accelerators
defined in a :class:`AcceleratorTable`.
The interface itself is very much inpired by the GIMP shortcut editor:
http://graphicssoft.about.com/od/gimptutorials/tp/keyboard-shortcut-editor.htm
There are very few minor UI differences between :class:`ShortcutEditor` and the GIMP one,
although the behaviour should be pretty much equivalent.
|
|class_hierarchy| Class Hierarchy
=================================
.. raw:: html

Inheritance diagram for class
ShortcutEditor:
|
|appearance| Control Appearance
===============================
|
.. container:: control-appearance-figures
.. figure:: _static/images/widgets/fullsize/wxmsw/wx.lib.agw.shortcuteditor.shortcuteditor.png
:alt: wxMSW
:figclass: appearance-figure
**wxMSW**
.. figure:: _static/images/widgets/fullsize/wxmac/../no_appearance.png
:alt: wxMAC
:figclass: appearance-figure
**wxMAC**
.. figure:: _static/images/widgets/fullsize/wxgtk/wx.lib.agw.shortcuteditor.shortcuteditor.png
:alt: wxGTK
:figclass: appearance-figure
**wxGTK**
|
|super_classes| Known Superclasses
==================================
:class:`wx.Dialog`
|
|method_summary| Methods Summary
================================
================================================================================ ================================================================================
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.__init__` Default class constructor.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.BindEvents` Binds a few events we will need to process
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.CreateWidgets` Creates all the widgets needed to populate the interface, such as buttons,
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.DoLayout` Lays out the widgets using sizers in a platform-independent way.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.FromAcceleratorTable` Builds the entire shortcut hierarchy starting from a modified version of a :class:`AcceleratorTable`.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.FromMenuBar` Builds the entire shortcut hierarchy starting from a :class:`wx.MenuBar`.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.GetShortcutManager` Returns the root :class:`Shortcut` containing the whole shortcut hierarchy.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.Init` Common initialization procedures.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.OnClearFilter` Handles the ``wx.EVT_BUTTON`` event for :class:`ShortcutEditor` when the user clears the
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.OnHTMLHelp` Handles the ``wx.EVT_BUTTON`` event for :class:`ShortcutEditor` when the user presses the ``Help``
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.OnRestoreDefaults` Handles the ``wx.EVT_BUTTON`` event for :class:`ShortcutEditor` when the user restores the
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.OnSetFilter` Handles the ``wx.EVT_TEXT`` event for :class:`ShortcutEditor`.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.PreShow` Does some more common initialization before showing :class:`ShortcutEditor`.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.SetColumnWidths` Sets the :class:`ListShortcut` columns widths to acceptable and eye-pleasing
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.SetHTMLHelpFile` Sets a new HTML help file (a valid html file) to be loaded when the user seeks
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.Show` Hides or shows the :class:`ShortcutEditor` dialog.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.ShowModal` Shows the :class:`ShortcutEditor` dialog in an application-modal way.
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.ToAcceleratorTable` Dumps the entire shortcut hierarchy (for shortcuts associated with a :class:`AcceleratorTable`), into
:meth:`~wx.lib.agw.shortcuteditor.ShortcutEditor.ToMenuBar` Dumps the entire shortcut hierarchy (for shortcuts associated with a :class:`wx.MenuItem`), into
================================================================================ ================================================================================
|
|api| Class API
===============
.. class:: ShortcutEditor(wx.Dialog)
:class:`ShortcutEditor` is a widget that allows the user to customize and change keyboard
shortcuts via a dialog. It can be used to edit :class:`wx.MenuItem` shortcuts or accelerators
defined in a :class:`AcceleratorTable`.
The interface itself is very much inpired by the GIMP shortcut editor:
http://graphicssoft.about.com/od/gimptutorials/tp/keyboard-shortcut-editor.htm
There are very few minor UI differences between :class:`ShortcutEditor` and the GIMP one,
although the behaviour should be pretty much equivalent.
.. method:: __init__(self, parent)
Default class constructor.
:param `parent`: an instance of :class:`wx.Window`, it can also be ``None``.
.. method:: BindEvents(self)
Binds a few events we will need to process:
* ``wx.EVT_TEXT`` for the label filtering;
* ``wx.EVT_BUTTON`` for clearing the filtering, for the HTML help window and
to reset all the shortcuts to their defaults.
.. method:: CreateWidgets(self)
Creates all the widgets needed to populate the interface, such as buttons,
texts and, most importantly, :class:`ListShortcut`.
.. method:: DoLayout(self)
Lays out the widgets using sizers in a platform-independent way.
.. method:: FromAcceleratorTable(self, accelTable)
Builds the entire shortcut hierarchy starting from a modified version of a :class:`AcceleratorTable`.
:param `accelTable`: a modified version of :class:`AcceleratorTable`, is a list of tuples (4 elements per tuple),
populated like this::
accelTable = []
# Every tuple is defined in this way:
for label, flags, keyCode, cmdID in my_accelerators:
# label: the string used to show the accelerator into the ShortcutEditor dialog
# flags: a bitmask of wx.ACCEL_ALT, wx.ACCEL_SHIFT, wx.ACCEL_CTRL, wx.ACCEL_CMD,
# or wx.ACCEL_NORMAL used to specify which modifier keys are held down
# keyCode: the keycode to be detected (i.e., ord('b'), wx.WXK_F10, etc...)
# cmdID: the menu or control command ID to use for the accelerator event.
accel_tuple = (label, flags, keyCode, cmdID)
accelTable.append(accel_tuple)
.. method:: FromMenuBar(self, topWindow)
Builds the entire shortcut hierarchy starting from a :class:`wx.MenuBar`.
:param `topWindow`: an instance of :class:`TopLevelWindow`, containing the :class:`wx.MenuBar`
we wish to scan.
.. method:: GetShortcutManager(self)
Returns the root :class:`Shortcut` containing the whole shortcut hierarchy.
.. method:: Init(self)
Common initialization procedures.
.. method:: OnClearFilter(self, event)
Handles the ``wx.EVT_BUTTON`` event for :class:`ShortcutEditor` when the user clears the
label filter at the top of the user interface.
:param `event`: an instance of :class:`CommandEvent`.
.. method:: OnHTMLHelp(self, event)
Handles the ``wx.EVT_BUTTON`` event for :class:`ShortcutEditor` when the user presses the ``Help``
button.
:param `event`: an instance of :class:`CommandEvent`.
.. note::
By default, this method launches a :class:`html.HtmlWindow` containing the default
HTML help file. If you wish to load another help file, you should call :meth:`~ShortcutEditor.SetHTMLHelpFile`
with another input HTML file.
.. method:: OnRestoreDefaults(self, event)
Handles the ``wx.EVT_BUTTON`` event for :class:`ShortcutEditor` when the user restores the
original shortcuts.
:param `event`: an instance of :class:`CommandEvent`.
.. method:: OnSetFilter(self, event=None)
Handles the ``wx.EVT_TEXT`` event for :class:`ShortcutEditor`.
:param `event`: if not ``None``, an instance of :class:`KeyEvent`.
.. method:: PreShow(self)
Does some more common initialization before showing :class:`ShortcutEditor`.
.. method:: SetColumnWidths(self)
Sets the :class:`ListShortcut` columns widths to acceptable and eye-pleasing
numbers (in pixels).
.. method:: SetHTMLHelpFile(self, htmlFile)
Sets a new HTML help file (a valid html file) to be loaded when the user seeks
for an explanation on how the UI works.
:param string `htmlFile`: a valid HTML file.
.. method:: Show(self, show=True)
Hides or shows the :class:`ShortcutEditor` dialog.
The preferred way of dismissing a modal dialog is to use `EndModal`.
:param bool `show`: if ``True``, the dialog box is shown and brought to the front,
otherwise the box is hidden. If ``False`` and the dialog is modal, control is
returned to the calling program.
.. note:: Reimplemented from :class:`wx.Window`.
.. method:: ShowModal(self)
Shows the :class:`ShortcutEditor` dialog in an application-modal way.
Program flow does not return until the dialog has been dismissed with `EndModal`.
:return: The value set with :meth:`~Dialog.SetReturnCode`.
.. note::
Notice that it is possible to call :meth:`~ShortcutEditor.ShowModal` for a dialog which had been
previously shown with :meth:`~ShortcutEditor.Show`, this allows to make an existing modeless dialog
modal. However :meth:`~ShortcutEditor.ShowModal` can't be called twice without intervening `EndModal` calls.
.. note::
Note that this function creates a temporary event loop which takes precedence
over the application's main event loop (see :class:`EventLoopBase`) and which is
destroyed when the dialog is dismissed. This also results in a call to
:meth:`AppConsole.ProcessPendingEvents` ().
.. method:: ToAcceleratorTable(self, window)
Dumps the entire shortcut hierarchy (for shortcuts associated with a :class:`AcceleratorTable`), into
a :class:`AcceleratorTable`. This method **does** rebuild the :class:`AcceleratorTable` and sets it back
to the input `window`.
:param `window`: an instance of :class:`wx.Window`, to which the new :class:`AcceleratorTable` should be set.
.. method:: ToMenuBar(self, topWindow)
Dumps the entire shortcut hierarchy (for shortcuts associated with a :class:`wx.MenuItem`), into
a :class:`wx.MenuBar`, changing only the :class:`wx.Menu` / :class:`wx.MenuItem` labels (it does **not** rebuild
the :class:`wx.MenuBar`).
:param `topWindow`: an instance of :class:`TopLevelWindow`, containing the :class:`wx.MenuBar`
we wish to repopulate.