From 86408a0374b40187afaecd6e28ed66dad06de102 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 11 Sep 2010 10:18:41 +0000 Subject: [PATCH] Add WXK_NONE symbolic constant indicating absence of a key. wxKeyEvent::GetKeyCode() and GetUnicodeKey() return 0 to indicate that the key code or Unicode character is not available, give symbolic name to this 0 to make the code using these methods more clear. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/defs.h | 4 +++- interface/wx/defs.h | 30 +++++++++++++++++++++++------- interface/wx/event.h | 3 ++- src/common/event.cpp | 4 ++-- 4 files changed, 30 insertions(+), 11 deletions(-) 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 } -- 2.45.2