From 0d9b2c16361930cc9b7378102395763db801250f Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 26 Jun 2004 13:14:24 +0000 Subject: [PATCH] added and documented wxKeyEvent::GetUnicodeKey(); made it work for MSW; added test for it to the text sample git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28030 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 16 +++++------ docs/latex/wx/keyevent.tex | 55 +++++++++++++++++++++++++++++--------- samples/text/text.cpp | 4 +++ src/msw/window.cpp | 3 +++ 4 files changed, 56 insertions(+), 22 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 35cb4de59d..edf66ac999 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -112,20 +112,17 @@ All: - number of fixes to wxPluginManager (Rick Brice, Hans Van Leemputten) - fixed memory leak in wxURL when using a proxy (Steven Van Ingelgem) - fixed bug in wxDateTime::Set(jdn) when DST was in effect -- it's now possible to use msgids in other languages than English with - wxLocale (based on patch by Stefan Kowski) +- support msgids in charsets other than C (based on patch by Stefan Kowski) All (GUI): - added wxTaskBarIcon::CreatePopupMenu which is now recommended way of showing popup menu; calling wxTaskBarIcon::PopupMenu directly is discouraged -- Added ..._CMD_... variants for wxGrid event table entry macros - taking window identifiers -- Added wxWindowBase::Navigate for programmatic navigation to the next - control. -- On most platforms, wxTextCtrl::OnChar now inserts a tab character if - wxTE_PROCESS_TAB is set, or navigates to the next control if not. +- Added ..._CMD_...(id) variants for wxGrid event table entry macros +- Added wxWindow::Navigate for programmatic navigation to the next control. +- wxTextCtrl::OnChar now inserts a tab character if wxTE_PROCESS_TAB is set +- added wxKeyEvent::GetUnicodeKey() Unix: @@ -140,11 +137,12 @@ wxGTK: wxMotif: -- added 3 state checkbox +- added support for wxCHK_3STATE style (3 state checkbox) wxMSW: - fixed UNC paths handling in wxFileSystem (Daniel Nash) +- set wxKeyEvent::m_uniChar in Unicode build wxWinCE: diff --git a/docs/latex/wx/keyevent.tex b/docs/latex/wx/keyevent.tex index 5a54a47e65..ad045258a2 100644 --- a/docs/latex/wx/keyevent.tex +++ b/docs/latex/wx/keyevent.tex @@ -78,66 +78,77 @@ functions that take a wxKeyEvent argument. \latexignore{\rtfignore{\wxheading{Members}}} + \membersection{wxKeyEvent::m\_altDown} \member{bool}{m\_altDown} true if the Alt key is pressed down. + \membersection{wxKeyEvent::m\_controlDown} \member{bool}{m\_controlDown} true if control is pressed down. + \membersection{wxKeyEvent::m\_keyCode} \member{long}{m\_keyCode} Virtual keycode. See \helpref{Keycodes}{keycodes} for a list of identifiers. + \membersection{wxKeyEvent::m\_metaDown} \member{bool}{m\_metaDown} true if the Meta key is pressed down. + \membersection{wxKeyEvent::m\_shiftDown} \member{bool}{m\_shiftDown} true if shift is pressed down. + \membersection{wxKeyEvent::m\_x} \member{int}{m\_x} X position of the event. + \membersection{wxKeyEvent::m\_y} \member{int}{m\_y} Y position of the event. + \membersection{wxKeyEvent::wxKeyEvent} \func{}{wxKeyEvent}{\param{WXTYPE}{ keyEventType}} Constructor. Currently, the only valid event types are wxEVT\_CHAR and wxEVT\_CHAR\_HOOK. + \membersection{wxKeyEvent::AltDown} \constfunc{bool}{AltDown}{\void} Returns true if the Alt key was down at the time of the key event. + \membersection{wxKeyEvent::ControlDown} \constfunc{bool}{ControlDown}{\void} Returns true if the control key was down at the time of the key event. + \membersection{wxKeyEvent::GetKeyCode} \constfunc{int}{GetKeyCode}{\void} @@ -146,6 +157,16 @@ Returns the virtual key code. ASCII events return normal ASCII values, while non-ASCII events return values such as {\bf WXK\_LEFT} for the left cursor key. See \helpref{Keycodes}{keycodes} for a full list of the virtual key codes. + +\membersection{wxKeyEvent::GetPosition} + +\constfunc{wxPoint}{GetPosition}{\void} + +\constfunc{void}{GetPosition}{\param{long *}{x}, \param{long *}{y}} + +Obtains the position (in client coordinates) at which the key was pressed. + + \membersection{wxKeyEvent::GetRawKeyCode} \constfunc{wxUint32}{GetRawKeyCode}{\void} @@ -156,6 +177,7 @@ which should only be used in advanced applications. {\bf NB:} Currently the raw key codes are not supported by all ports, use {\tt\#ifdef wxHAS\_RAW\_KEY\_CODES} to determine if this feature is available. + \membersection{wxKeyEvent::GetRawKeyFlags} \constfunc{wxUint32}{GetRawKeyFlags}{\void} @@ -166,31 +188,30 @@ platform-dependent and should only be used in advanced applications. {\bf NB:} Currently the raw key flags are not supported by all ports, use {\tt \#ifdef wxHAS\_RAW\_KEY\_CODES} to determine if this feature is available. -\membersection{wxKeyEvent::GetX} -\constfunc{long}{GetX}{\void} +\membersection{wxKeyEvent::GetUnicodeKey} -Returns the X position (in client coordinates) of the event. +\constfunc{wxChar}{GetUnicodeKey}{\void} -\membersection{wxKeyEvent::GetY} +Returns the Unicode character corresponding to this key event. -\constfunc{long}{GetY}{\void} +This function is only available in Unicode build, i.e. when +\texttt{wxUSE\_UNICODE} is $1$. -Returns the Y (in client coordinates) position of the event. -\membersection{wxKeyEvent::MetaDown} +\membersection{wxKeyEvent::GetX} -\constfunc{bool}{MetaDown}{\void} +\constfunc{long}{GetX}{\void} -Returns true if the Meta key was down at the time of the key event. +Returns the X position (in client coordinates) of the event. -\membersection{wxKeyEvent::GetPosition} -\constfunc{wxPoint}{GetPosition}{\void} +\membersection{wxKeyEvent::GetY} -\constfunc{void}{GetPosition}{\param{long *}{x}, \param{long *}{y}} +\constfunc{long}{GetY}{\void} + +Returns the Y (in client coordinates) position of the event. -Obtains the position (in client coordinates) at which the key was pressed. \membersection{wxKeyEvent::HasModifiers} @@ -203,6 +224,14 @@ the latter is that it is common for {\sc NumLock} key to be configured as {\sc Meta} under X but the key presses even while {\sc NumLock} is on should be still processed normally). + +\membersection{wxKeyEvent::MetaDown} + +\constfunc{bool}{MetaDown}{\void} + +Returns true if the Meta key was down at the time of the key event. + + \membersection{wxKeyEvent::ShiftDown}\label{wxkeyeventshiftdown} \constfunc{bool}{ShiftDown}{\void} diff --git a/samples/text/text.cpp b/samples/text/text.cpp index 9bdf91d303..c229d8c0a7 100644 --- a/samples/text/text.cpp +++ b/samples/text/text.cpp @@ -581,6 +581,10 @@ void MyTextCtrl::LogKeyEvent(const wxChar *name, wxKeyEvent& event) const } } +#if wxUSE_UNICODE + key += wxString::Format(_T(" (Unicode: %#04x)"), event.GetUnicodeKey()); +#endif // wxUSE_UNICODE + wxLogMessage( _T("%s event: %s (flags = %c%c%c%c)"), name, key.c_str(), diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 51552987e4..0bfc228932 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -4522,6 +4522,9 @@ wxKeyEvent wxWindowMSW::CreateKeyEvent(wxEventType evType, event.m_eventObject = (wxWindow *)this; // const_cast event.m_keyCode = id; +#if wxUSE_UNICODE + event.m_uniChar = wParam; +#endif event.m_rawCode = (wxUint32) wParam; event.m_rawFlags = (wxUint32) lParam; #ifndef __WXWINCE__ -- 2.45.2