3f66f6a5b3
This keyword is not expanded by Git which means it's not replaced with the correct revision value in the releases made using git-based scripts and it's confusing to have lines with unexpanded "$Id$" in the released files. As expanding them with Git is not that simple (it could be done with git archive and export-subst attribute) and there are not many benefits in having them in the first place, just remove all these lines. If nothing else, this will make an eventual transition to Git simpler. Closes #14487. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
122 lines
3.8 KiB
C++
122 lines
3.8 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/kbdstate.h
|
|
// Purpose: Declaration of wxKeyboardState class
|
|
// Author: Vadim Zeitlin
|
|
// Created: 2008-09-19
|
|
// 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)
|
|
#ifdef __WXOSX__
|
|
,m_rawControlDown(false)
|
|
#endif
|
|
{
|
|
}
|
|
|
|
// 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 HasAnyModifiers() const { return GetModifiers() != wxMOD_NONE; }
|
|
|
|
// returns true if any modifiers changing the usual key interpretation are
|
|
// pressed, notably excluding Shift
|
|
bool HasModifiers() const
|
|
{
|
|
return ControlDown() || RawControlDown() || AltDown();
|
|
}
|
|
|
|
// 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_
|
|
|