m_rawControlDown is supposed to be only used under OS X so put an #ifdef __WXOSX__ around it in wxKeyboardState::GetModifiers() to fix compilation under the other platforms. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			113 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/kbdstate.h
 | |
| // Purpose:     Declaration of wxKeyboardState class
 | |
| // Author:      Vadim Zeitlin
 | |
| // Created:     2008-09-19
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_KBDSTATE_H_
 | |
| #define _WX_KBDSTATE_H_
 | |
| 
 | |
| #include "wx/defs.h"
 | |
| 
 | |
| // ----------------------------------------------------------------------------
 | |
| // wxKeyboardState stores the state of the keyboard modifier keys
 | |
| // ----------------------------------------------------------------------------
 | |
| 
 | |
| class WXDLLIMPEXP_CORE wxKeyboardState
 | |
| {
 | |
| public:
 | |
|     wxKeyboardState(bool controlDown = false,
 | |
|                     bool shiftDown = false,
 | |
|                     bool altDown = false,
 | |
|                     bool metaDown = false)
 | |
|         : m_controlDown(controlDown),
 | |
|           m_shiftDown(shiftDown),
 | |
|           m_altDown(altDown),
 | |
|           m_metaDown(metaDown)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     // default copy ctor, assignment operator and dtor are ok
 | |
| 
 | |
| 
 | |
|     // accessors for the various modifier keys
 | |
|     // ---------------------------------------
 | |
| 
 | |
|     // should be used check if the key event has exactly the given modifiers:
 | |
|     // "GetModifiers() = wxMOD_CONTROL" is easier to write than "ControlDown()
 | |
|     // && !MetaDown() && !AltDown() && !ShiftDown()"
 | |
|     int GetModifiers() const
 | |
|     {
 | |
|         return (m_controlDown ? wxMOD_CONTROL : 0) |
 | |
|                (m_shiftDown ? wxMOD_SHIFT : 0) |
 | |
|                (m_metaDown ? wxMOD_META : 0) |
 | |
| #ifdef __WXOSX__
 | |
|                (m_rawControlDown ? wxMOD_RAW_CONTROL : 0) |
 | |
| #endif
 | |
|                (m_altDown ? wxMOD_ALT : 0);
 | |
|     }
 | |
| 
 | |
|     // returns true if any modifiers at all are pressed
 | |
|     bool HasModifiers() const { return GetModifiers() != wxMOD_NONE; }
 | |
| 
 | |
|     // 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; }
 | |
| 
 | |
|     // "Cmd" is a pseudo key which is Control for PC and Unix platforms but
 | |
|     // Apple ("Command") key under Macs: it makes often sense to use it instead
 | |
|     // of, say, ControlDown() because Cmd key is used for the same thing under
 | |
|     // Mac as Ctrl elsewhere (but Ctrl still exists, just not used for this
 | |
|     // purpose under Mac)
 | |
|     bool CmdDown() const
 | |
|     {
 | |
|         return ControlDown();
 | |
|     }
 | |
| 
 | |
|     // 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; }
 | |
| 
 | |
| 
 | |
|     // for backwards compatibility with the existing code accessing these
 | |
|     // 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;
 | |
| #ifdef __WXOSX__
 | |
|     bool m_rawControlDown : 1;
 | |
| #endif
 | |
| };
 | |
| 
 | |
| #endif // _WX_KBDSTATE_H_
 | |
| 
 |