diff --git a/include/wx/defs.h b/include/wx/defs.h
index 26acd387f0..5e006edbf2 100644
--- a/include/wx/defs.h
+++ b/include/wx/defs.h
@@ -2289,9 +2289,11 @@ enum wxDataFormatId
wxDF_MAX
};
-/* Virtual keycodes */
+/* Key codes */
enum wxKeyCode
{
+ WXK_NONE = 0,
+
WXK_BACK = 8, // backspace
WXK_TAB = 9,
WXK_RETURN = 13,
diff --git a/interface/wx/defs.h b/interface/wx/defs.h
index 0aad3aaf2e..9971fa818e 100644
--- a/interface/wx/defs.h
+++ b/interface/wx/defs.h
@@ -486,13 +486,27 @@ enum wxDataFormatId
/**
Virtual keycodes used by wxKeyEvent and some other wxWidgets functions.
- Note that the range @c 33 - @c 126 is reserved for the standard ASCII
- characters and that the range @c 128 - @c 255 is reserved for the
- extended ASCII characters (which are not really standard and thus should
- be avoid in portable apps!).
+ Note that the range 0..255
corresponds to the characters of
+ the current locale, in particular the 32..127
subrange is for
+ the ASCII symbols, and all the special key values such as @c WXK_END lie
+ above this range.
*/
enum wxKeyCode
{
+ /**
+ No key.
+
+ This value is returned by wxKeyEvent::GetKeyCode() if there is no
+ non-Unicode representation for the pressed key (e.g. a Cyrillic letter
+ was entered when not using a Cyrillic locale) and by
+ wxKeyEvent::GetUnicodeKey() if there is no Unicode representation for
+ the key (this happens for the special, non printable, keys only, e.g.
+ WXK_HOME).
+
+ @since 2.9.2 (you can simply use 0 with previous versions).
+ */
+ WXK_NONE = 0,
+
WXK_BACK = 8, //!< Backspace.
WXK_TAB = 9,
WXK_RETURN = 13,
@@ -502,9 +516,11 @@ enum wxKeyCode
WXK_DELETE = 127,
/**
- These are, by design, not compatible with unicode characters.
- If you want to get a unicode character from a key event, use
- wxKeyEvent::GetUnicodeKey instead.
+ Special key values.
+
+ These are, by design, not compatible with Unicode characters.
+ If you want to get a Unicode character from a key event, use
+ wxKeyEvent::GetUnicodeKey() instead.
*/
WXK_START = 300,
WXK_LBUTTON,
diff --git a/interface/wx/event.h b/interface/wx/event.h
index ce3793bd08..f83909bfc7 100644
--- a/interface/wx/event.h
+++ b/interface/wx/event.h
@@ -1323,7 +1323,8 @@ public:
Returns the Unicode character corresponding to this key event.
If the key pressed doesn't have any character value (e.g. a cursor key)
- this method will return 0.
+ this method will return @c WXK_NONE. In this case you should use
+ GetKeyCode() to retrieve the value of the key.
This function is only available in Unicode build, i.e. when
@c wxUSE_UNICODE is 1.
diff --git a/src/common/event.cpp b/src/common/event.cpp
index dd439f8427..4a9ade6ccf 100644
--- a/src/common/event.cpp
+++ b/src/common/event.cpp
@@ -733,9 +733,9 @@ wxPoint wxMouseEvent::GetLogicalPosition(const wxDC& dc) const
wxKeyEvent::wxKeyEvent(wxEventType type)
{
m_eventType = type;
- m_keyCode = 0;
+ m_keyCode = WXK_NONE;
#if wxUSE_UNICODE
- m_uniChar = 0;
+ m_uniChar = WXK_NONE;
#endif
}