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

==========================================================================================================================================
|phoenix_title|  **wx.KeyboardState**
==========================================================================================================================================

Provides methods for testing the state of the keyboard modifier keys.          

This class is used as a base class of :ref:`wx.KeyEvent`  and :ref:`wx.MouseState`  and, hence, indirectly, of :ref:`wx.MouseEvent`, so its methods may be used to get information about the modifier keys which were pressed when the event occurred. 

This class is implemented entirely inline in <:ref:`/kbdstate.h`> and thus has no linking requirements. 





         



.. seealso:: :ref:`wx.KeyEvent`, :ref:`wx.MouseState`    







|

|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>KeyboardState</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.KeyboardState_inheritance.png" alt="Inheritance diagram of KeyboardState" 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.KeyboardState.html" title="wx.KeyboardState" alt="" coords="5,5,145,35"/> </map> 
   </p>
   </div>

|


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

:ref:`wx.KeyEvent`, :ref:`wx.MouseState`

|


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

================================================================================ ================================================================================
:meth:`~wx.KeyboardState.__init__`                                               Constructor initializes the modifier key settings.
:meth:`~wx.KeyboardState.AltDown`                                                Returns ``True`` if the Alt key is pressed.
:meth:`~wx.KeyboardState.CmdDown`                                                Returns ``True`` if the key used for command accelerators is pressed.
:meth:`~wx.KeyboardState.ControlDown`                                            Returns ``True`` if the Control key or Apple/Command key under macOS is pressed.
:meth:`~wx.KeyboardState.GetModifiers`                                           Return the bit mask of all pressed modifier keys.
:meth:`~wx.KeyboardState.HasAnyModifiers`                                        Returns ``True`` if any modifiers at all are pressed.
:meth:`~wx.KeyboardState.HasModifiers`                                           Returns ``True`` if Control or Alt are pressed.
:meth:`~wx.KeyboardState.MetaDown`                                               Returns ``True`` if the Meta/Windows/Apple key is pressed.
:meth:`~wx.KeyboardState.RawControlDown`                                         Returns ``True`` if the Control key (also under macOS).
:meth:`~wx.KeyboardState.SetAltDown`                                             
:meth:`~wx.KeyboardState.SetControlDown`                                         
:meth:`~wx.KeyboardState.SetMetaDown`                                            
:meth:`~wx.KeyboardState.SetRawControlDown`                                      
:meth:`~wx.KeyboardState.SetShiftDown`                                           
:meth:`~wx.KeyboardState.ShiftDown`                                              Returns ``True`` if the Shift key is pressed.
================================================================================ ================================================================================


|


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

================================================================================ ================================================================================
:attr:`~wx.KeyboardState.altDown`                                                See :meth:`~wx.KeyboardState.AltDown` and :meth:`~wx.KeyboardState.SetAltDown`
:attr:`~wx.KeyboardState.cmdDown`                                                See :meth:`~wx.KeyboardState.CmdDown`
:attr:`~wx.KeyboardState.controlDown`                                            See :meth:`~wx.KeyboardState.ControlDown` and :meth:`~wx.KeyboardState.SetControlDown`
:attr:`~wx.KeyboardState.metaDown`                                               See :meth:`~wx.KeyboardState.MetaDown` and :meth:`~wx.KeyboardState.SetMetaDown`
:attr:`~wx.KeyboardState.rawControlDown`                                         See :meth:`~wx.KeyboardState.RawControlDown` and :meth:`~wx.KeyboardState.SetRawControlDown`
:attr:`~wx.KeyboardState.shiftDown`                                              See :meth:`~wx.KeyboardState.ShiftDown` and :meth:`~wx.KeyboardState.SetShiftDown`
================================================================================ ================================================================================


|


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


.. class:: wx.KeyboardState(object)

   **Possible constructors**::

       KeyboardState(controlDown=False, shiftDown=False, altDown=False,
                     metaDown=False)
       
   
   Provides methods for testing the state of the keyboard modifier keys.



   .. method:: __init__(self, controlDown=False, shiftDown=False, altDown=False, metaDown=False)

      Constructor initializes the modifier key settings.                  

      By default, no modifiers are active.                  


      :param `controlDown`: 
      :type `controlDown`: bool
      :param `shiftDown`: 
      :type `shiftDown`: bool
      :param `altDown`: 
      :type `altDown`: bool
      :param `metaDown`: 
      :type `metaDown`: bool







   .. method:: AltDown(self)

      Returns ``True`` if the Alt key is pressed.                  

      Notice that :meth:`GetModifiers`   should usually be used instead of this one.                  

      :rtype: `bool`








   .. method:: CmdDown(self)

      Returns ``True`` if the key used for command accelerators is pressed.                  

      Same as :meth:`ControlDown` . Deprecated. 

      Notice that :meth:`GetModifiers`   should usually be used instead of this one.                  

      :rtype: `bool`








   .. method:: ControlDown(self)

      Returns ``True`` if the Control key or Apple/Command key under macOS is pressed.                  

      This function doesn't distinguish between right and left control keys. 

      Notice that :meth:`GetModifiers`   should usually be used instead of this one.                  

      :rtype: `bool`








   .. method:: GetModifiers(self)

      Return the bit mask of all pressed modifier keys.                  

      The return value is a combination of  ``MOD_ALT`` ,   ``MOD_CONTROL`` ,   ``MOD_SHIFT``   and   ``MOD_META``   bit masks. Additionally,   ``MOD_NONE``   is defined as 0, i.e. corresponds to no modifiers (see  :meth:`HasAnyModifiers` ) and  ``MOD_CMD``   is either   ``MOD_CONTROL``   (MSW and Unix) or   ``MOD_META``   (Mac), see  :meth:`CmdDown` . See :ref:`wx.KeyModifier`  for the full list of modifiers. 

      Notice that this function is easier to use correctly than, for example, :meth:`ControlDown`   because when using the latter you also have to remember to test that none of the other modifiers is pressed: 

      ::

                  if ControlDown() and not AltDown() and not ShiftDown() and not MetaDown():
                      # handle Ctrl-XXX ...
                      HandleControl()



      and forgetting to do it can result in serious program bugs (e.g. program not working with European keyboard layout where  ``AltGr``   key which is seen by the program as combination of ``CTRL`` and ``ALT`` is used). On the other hand, you can simply write: 

      ::

                  if GetModifiers() == wx.MOD_CONTROL:
                      # handle Ctrl-XXX ...
                      HandleControl()



      with this function.                  

      :rtype: `int`








   .. method:: HasAnyModifiers(self)

      Returns ``True`` if any modifiers at all are pressed.                  

      This is equivalent to  :meth:`GetModifiers`       ``!=``       ``MOD_NONE`` . 

      Notice that this is different from :meth:`HasModifiers`   method which doesn't take e.g. Shift modifier into account. This method is most suitable for mouse events when any modifier, including Shift, can change the interpretation of the event. 

                

      :rtype: `bool`







      .. versionadded:: 2.9.5 
     








   .. method:: HasModifiers(self)

      Returns ``True`` if Control or Alt are pressed.                  

      Checks if Control, Alt or, under macOS only, Command key are pressed (notice that the real Control key is still taken into account under OS X too). 

      This method returns ``False`` if only Shift is pressed for compatibility reasons and also because pressing Shift usually doesn't change the interpretation of key events, see :meth:`HasAnyModifiers`   if you want to take Shift into account as well.                  

      :rtype: `bool`








   .. method:: MetaDown(self)

      Returns ``True`` if the Meta/Windows/Apple key is pressed.                  

      This function tests the state of the key traditionally called Meta under Unix systems, Windows keys under MSW Notice that :meth:`GetModifiers`   should usually be used instead of this one. 

                

      :rtype: `bool`







      .. seealso:: :meth:`CmdDown`     








   .. method:: RawControlDown(self)

      Returns ``True`` if the Control key (also under macOS).                  

      This function doesn't distinguish between right and left control keys. 

      Notice that :meth:`GetModifiers`   should usually be used instead of this one.                  

      :rtype: `bool`








   .. method:: SetAltDown(self, down)




      :param `down`: 
      :type `down`: bool







   .. method:: SetControlDown(self, down)




      :param `down`: 
      :type `down`: bool







   .. method:: SetMetaDown(self, down)




      :param `down`: 
      :type `down`: bool







   .. method:: SetRawControlDown(self, down)




      :param `down`: 
      :type `down`: bool







   .. method:: SetShiftDown(self, down)




      :param `down`: 
      :type `down`: bool







   .. method:: ShiftDown(self)

      Returns ``True`` if the Shift key is pressed.                  

      This function doesn't distinguish between right and left shift keys. 

      Notice that :meth:`GetModifiers`   should usually be used instead of this one.                  

      :rtype: `bool`








   .. attribute:: altDown

      See :meth:`~wx.KeyboardState.AltDown` and :meth:`~wx.KeyboardState.SetAltDown`


   .. attribute:: cmdDown

      See :meth:`~wx.KeyboardState.CmdDown`


   .. attribute:: controlDown

      See :meth:`~wx.KeyboardState.ControlDown` and :meth:`~wx.KeyboardState.SetControlDown`


   .. attribute:: metaDown

      See :meth:`~wx.KeyboardState.MetaDown` and :meth:`~wx.KeyboardState.SetMetaDown`


   .. attribute:: rawControlDown

      See :meth:`~wx.KeyboardState.RawControlDown` and :meth:`~wx.KeyboardState.SetRawControlDown`


   .. attribute:: shiftDown

      See :meth:`~wx.KeyboardState.ShiftDown` and :meth:`~wx.KeyboardState.SetShiftDown`

