// Author: wxWidgets team
// Created: 2008-09-19
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
This class is implemented entirely inline in @<wx/kbdstate.h@> and thus has
no linking requirements.
- @category{misc}
@nolibrary
+ @category{events}
@see wxKeyEvent, wxMouseState
*/
The return value is a combination of @c wxMOD_ALT, @c wxMOD_CONTROL,
@c wxMOD_SHIFT and @c wxMOD_META bit masks. Additionally, @c wxMOD_NONE
- is defined as 0, i.e. corresponds to no modifiers (see HasModifiers())
+ is defined as 0, i.e. corresponds to no modifiers (see HasAnyModifiers())
and @c wxMOD_CMD is either @c wxMOD_CONTROL (MSW and Unix) or
@c wxMOD_META (Mac), see CmdDown().
See ::wxKeyModifier for the full list of modifiers.
Returns true if any modifiers at all are pressed.
This is equivalent to @c GetModifiers() @c != @c wxMOD_NONE.
+
+ Notice that this is different from 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.
+
+ @since 2.9.5
+ */
+ bool HasAnyModifiers() const;
+
+ /**
+ Returns true if Control or Alt are pressed.
+
+ Checks if Control, Alt or, under OS X 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 HasAnyModifiers() if you want to
+ take Shift into account as well.
*/
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.
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()
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.
*/
bool CmdDown() const;
+
+
+ void SetControlDown(bool down);
+ void SetRawControlDown(bool down);
+ void SetShiftDown(bool down);
+ void SetAltDown(bool down);
+ void SetMetaDown(bool down);
+
};