1 ///////////////////////////////////////////////////////////////////////////////
3 // Purpose: Declaration of wxKeyboardState class
4 // Author: Vadim Zeitlin
7 // Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
11 #ifndef _WX_KBDSTATE_H_
12 #define _WX_KBDSTATE_H_
16 // ----------------------------------------------------------------------------
17 // wxKeyboardState stores the state of the keyboard modifier keys
18 // ----------------------------------------------------------------------------
20 class WXDLLIMPEXP_CORE wxKeyboardState
23 wxKeyboardState(bool controlDown
= false,
24 bool shiftDown
= false,
26 bool metaDown
= false)
27 : m_controlDown(controlDown
),
28 m_shiftDown(shiftDown
),
34 // default copy ctor, assignment operator and dtor are ok
37 // accessors for the various modifier keys
38 // ---------------------------------------
40 // should be used check if the key event has exactly the given modifiers:
41 // "GetModifiers() = wxMOD_CONTROL" is easier to write than "ControlDown()
42 // && !MetaDown() && !AltDown() && !ShiftDown()"
43 int GetModifiers() const
45 return (m_controlDown ? wxMOD_CONTROL
: 0) |
46 (m_shiftDown ? wxMOD_SHIFT
: 0) |
47 (m_metaDown ? wxMOD_META
: 0) |
48 (m_rawControlDown ? wxMOD_RAW_CONTROL
: 0) |
49 (m_altDown ? wxMOD_ALT
: 0);
52 // returns true if any modifiers at all are pressed
53 bool HasModifiers() const { return GetModifiers() != wxMOD_NONE
; }
55 // accessors for individual modifier keys
56 bool ControlDown() const { return m_controlDown
; }
57 bool RawControlDown() const
60 return m_rawControlDown
;
65 bool ShiftDown() const { return m_shiftDown
; }
66 bool MetaDown() const { return m_metaDown
; }
67 bool AltDown() const { return m_altDown
; }
69 // "Cmd" is a pseudo key which is Control for PC and Unix platforms but
70 // Apple ("Command") key under Macs: it makes often sense to use it instead
71 // of, say, ControlDown() because Cmd key is used for the same thing under
72 // Mac as Ctrl elsewhere (but Ctrl still exists, just not used for this
79 // these functions are mostly used by wxWidgets itself
80 // ---------------------------------------------------
82 void SetControlDown(bool down
) { m_controlDown
= down
; }
83 void SetRawControlDown(bool down
)
86 m_rawControlDown
= down
;
91 void SetShiftDown(bool down
) { m_shiftDown
= down
; }
92 void SetAltDown(bool down
) { m_altDown
= down
; }
93 void SetMetaDown(bool down
) { m_metaDown
= down
; }
96 // for backwards compatibility with the existing code accessing these
97 // members of wxKeyEvent directly, these variables are public, however you
98 // should not use them in any new code, please use the accessors instead
100 bool m_controlDown
: 1;
101 bool m_shiftDown
: 1;
105 bool m_rawControlDown
: 1;
109 #endif // _WX_KBDSTATE_H_