From 8b9e09383acad70d338f233bbcc7327463757c23 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 23 Aug 2011 13:03:52 +0000 Subject: [PATCH] adjusting keyboardstate to new ctrl / raw_ctrl handling on osx git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/defs.h | 2 +- include/wx/kbdstate.h | 32 ++++++++++++++++++++++++-------- interface/wx/kbdstate.h | 29 ++++++++++++++--------------- 3 files changed, 39 insertions(+), 24 deletions(-) diff --git a/include/wx/defs.h b/include/wx/defs.h index e2e80ec3b2..3ba1752a34 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -2584,7 +2584,7 @@ enum wxKeyModifier wxMOD_META = 0x0008, wxMOD_WIN = wxMOD_META, #if defined(__WXMAC__) || defined(__WXCOCOA__) - wxMOD_RAW_CONTROL = wxMOD_META, + wxMOD_RAW_CONTROL = 0x0010, #else wxMOD_RAW_CONTROL = wxMOD_CONTROL, #endif diff --git a/include/wx/kbdstate.h b/include/wx/kbdstate.h index d2055a0c09..93412c975f 100644 --- a/include/wx/kbdstate.h +++ b/include/wx/kbdstate.h @@ -45,6 +45,7 @@ public: return (m_controlDown ? wxMOD_CONTROL : 0) | (m_shiftDown ? wxMOD_SHIFT : 0) | (m_metaDown ? wxMOD_META : 0) | + (m_rawControlDown ? wxMOD_RAW_CONTROL : 0) | (m_altDown ? wxMOD_ALT : 0); } @@ -53,6 +54,14 @@ public: // accessors for individual modifier keys bool ControlDown() const { return m_controlDown; } + bool RawControlDown() const + { +#ifdef __WXOSX__ + return m_rawControlDown; +#else + return m_controlDown; +#endif + } bool ShiftDown() const { return m_shiftDown; } bool MetaDown() const { return m_metaDown; } bool AltDown() const { return m_altDown; } @@ -64,17 +73,21 @@ public: // purpose under Mac) bool CmdDown() const { -#if defined(__WXMAC__) || defined(__WXCOCOA__) - return MetaDown(); -#else return ControlDown(); -#endif } // these functions are mostly used by wxWidgets itself // --------------------------------------------------- void SetControlDown(bool down) { m_controlDown = down; } + void SetRawControlDown(bool down) + { +#ifdef __WXOSX__ + m_rawControlDown = down; +#else + m_controlDown = down; +#endif + } void SetShiftDown(bool down) { m_shiftDown = down; } void SetAltDown(bool down) { m_altDown = down; } void SetMetaDown(bool down) { m_metaDown = down; } @@ -84,10 +97,13 @@ public: // members of wxKeyEvent directly, these variables are public, however you // should not use them in any new code, please use the accessors instead public: - bool m_controlDown : 1; - bool m_shiftDown : 1; - bool m_altDown : 1; - bool m_metaDown : 1; + bool m_controlDown : 1; + bool m_shiftDown : 1; + bool m_altDown : 1; + bool m_metaDown : 1; +#ifdef __WXOSX__ + bool m_rawControlDown : 1; +#endif }; #endif // _WX_KBDSTATE_H_ diff --git a/interface/wx/kbdstate.h b/interface/wx/kbdstate.h index 27060a379a..4b85b6383a 100644 --- a/interface/wx/kbdstate.h +++ b/interface/wx/kbdstate.h @@ -77,18 +77,23 @@ public: bool HasModifiers() const; /** - Returns true if the Control key is pressed. + Returns true if the Control key or Apple/Command key under OS X is pressed. This function doesn't distinguish between right and left control keys. - In portable code you usually want to use CmdDown() to automatically - test for the more frequently used Command key (and not the rarely used - Control one) under Mac. - Notice that GetModifiers() should usually be used instead of this one. */ bool ControlDown() const; + /** + Returns true if the Control key (also under OS X). + + This function doesn't distinguish between right and left control keys. + + Notice that GetModifiers() should usually be used instead of this one. + */ + bool RawControlDown() const; + /** Returns true if the Shift key is pressed. @@ -102,9 +107,7 @@ public: 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 and Apple, or Command, key - under Mac. - + under Unix systems, Windows keys under MSW Notice that GetModifiers() should usually be used instead of this one. @see CmdDown() @@ -119,13 +122,8 @@ public: bool AltDown() const; /** - Returns true if the key used for command accelerators is pressed. - - @c Cmd is a pseudo key which is Control for PC and Unix platforms but - Apple (or Command) key under Macs: it makes often sense to use it - instead of ControlDown() because @c Command key is used for the same - thing under Mac as @c Control elsewhere (even though @c Control still - exists, it is usually not used for the same purpose under Mac). + Returns true if the key used for command accelerators is pressed. Same as + ControlDown(). Deprecated. Notice that GetModifiers() should usually be used instead of this one. */ @@ -133,6 +131,7 @@ public: void SetControlDown(bool down); + void SetRawControlDown(bool down); void SetShiftDown(bool down); void SetAltDown(bool down); void SetMetaDown(bool down);