wxWidgets/include/wx/msw
Vadim Zeitlin b6885972ee Fixes to key codes in keyboard events generated by wxMSW.
Only set Unicode key code if the event corresponds to a character key and set
it to (newly added) WXK_NONE for the other ones to avoid nonsensical values in
it for e.g. "Home" key presses.

Also set non-Unicode key to WXK_NONE for the characters that can't be
represented in the current locale. This is consistent with wxGTK and avoids
conflicts between special key values and Unicode keys.

Clearly document the above behaviour.

Notice that implementing the correct behaviour in wxMSW involved untangling
previously interwoven WM_KEY{DOWN,UP} and WM_CHAR messages handlers. Clearly
separate them now as they get different input (key codes for the former,
characters for the latter) and especially don't try to convert from both kinds
of input using a single wxCharCodeMSWToWX() function. As this function doesn't
need to distinguish between keys and characters any more it can simply return
the converted value in all cases instead of returning 0 sometimes to indicate
a character value instead of a key. Simplify the code using this function
accordingly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-11 10:18:47 +00:00
..
ole Implement wx-prefixed macros versions of DECLARE_EVENT_TABLE, BEGIN_EVENT_TABLE* and END_EVENT_TABLE macros. 2010-06-09 14:28:08 +00:00
private Provide a task-dialog based wxMSW wxMessageDialog implementation. 2010-08-18 22:48:28 +00:00
wince Merge wxUIActionSimulator fixes from SOC2010_GUI_TEST branch. 2010-08-22 22:15:42 +00:00
accel.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
amd64.manifest
app.h Implement wx-prefixed macros versions of DECLARE/IMPLEMENT_APP_* macros. 2010-06-09 13:23:13 +00:00
apptbase.h remove wxMSW-specific (but copied into wxPalm too) wxAppTraits::AlwaysYield(), it's useless now that wxEventLoop is in wxBase 2009-05-24 19:39:40 +00:00
apptrait.h remove wxMSW-specific (but copied into wxPalm too) wxAppTraits::AlwaysYield(), it's useless now that wxEventLoop is in wxBase 2009-05-24 19:39:40 +00:00
bitmap.h first round of debug/release merge: introduce wxDEBUG_LEVEL, for now defined as 1 if __WXDEBUG__ is defined, i.e. no real changes; don't use __WXDEBUG__ in the headers to keep debug and release builds ABI-compatible; add functions to customize or disable asserts handling 2009-03-21 23:36:37 +00:00
blank.cur
bmpbuttn.h implement wxBitmapButton as just a wrapper for wxButton under MSW 2009-06-15 23:10:16 +00:00
bmpcbox.h Make SetFont() public (fixes #9641) 2010-07-25 07:39:17 +00:00
brush.h declare future-deprecated SetStyle(int) in wxPen/Brush and not wxPen/BrushBase as it's useless there (compilation of user code doing pen.SetStyle(wxDOT) still fails) 2008-06-17 17:28:26 +00:00
bullseye.cur Add white outline to bulls eye cursor used under MSW. 2010-03-16 14:48:02 +00:00
button.h Add new wxCommandLinkButton class. 2010-08-17 14:48:50 +00:00
calctrl.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
caret.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
cdrom.ico
checkbox.h support multiline labels in wxCheckBox (#9495) 2008-06-07 01:54:44 +00:00
checklst.h Improve wxCheckListBox appearance under Vista/Win7. 2010-01-23 13:22:00 +00:00
child.ico
chkconf.h Allow using wxGraphicsContext with MinGW if gdiplus.h is available. 2010-04-02 19:30:41 +00:00
choice.h Added wxMSW wxChoice::GetClassDefaultAttributes(), initially used in wxComboCtrl 2009-12-21 15:20:37 +00:00
clipbrd.h Include wx/dataobj.h from wx/clipbrd.h. 2009-07-20 23:54:08 +00:00
colordlg.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
colour.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
colours.bmp
combo.h Added wxMSW wxChoice::GetClassDefaultAttributes(), initially used in wxComboCtrl 2009-12-21 15:20:37 +00:00
combobox.h Add wxComboBox::Popup() and Dismiss() to manually show or hide its popup. 2010-01-24 01:00:45 +00:00
commandlinkbutton.h Add new wxCommandLinkButton class. 2010-08-17 14:48:50 +00:00
computer.ico
control.h Move wxControl::GetCompositeControlsDefaultAttributes() from MSW to common. 2009-09-26 16:43:06 +00:00
crashrpt.h take wxString in wxCrashReport::SetFileName() to allow passing either ASCII or wide strings as well as wxStrings to this method (closes 9505) 2008-05-29 13:28:05 +00:00
cross.cur
csquery.bmp
ctrlsub.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
cursor.h provide backward-compat wxCursor(int) ctor; remove empty stubs of XBM ctor from all ports except gtk,motif; make all ports emit wxLogError on invalid bitmap types; implement wxCursor(const wxString&, ...) ctor on GTK (not tested yet) 2008-09-25 17:56:07 +00:00
datectrl.h
dc.h No changes, just removed hard tabs and trailing white space. 2009-08-21 10:41:26 +00:00
dcclient.h No changes, just removed hard tabs and trailing white space. 2009-08-21 10:41:26 +00:00
dcmemory.h No changes, just removed hard tabs and trailing white space. 2009-08-21 10:41:26 +00:00
dcprint.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
dcscreen.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
dde.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
debughlp.h
dialog.h remove wxMSW-specific FindSuitableParent() and use GetParentForModalDialog() everywhere; extend it with additional checks and remove redundant ones elsewhere 2009-05-09 12:26:15 +00:00
dib.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
dirdlg.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
dragimag.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
drive.ico
enhmeta.h add ability to create wxEnhMetaFileDC based on a reference DC 2009-05-31 19:11:15 +00:00
evtloop.h another missing WXDLLIMPEXP to fix DLL build 2009-02-26 14:15:20 +00:00
fdrepdlg.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
file1.ico
filedlg.h Make wxFileDialog::Set/SetPath() behave consistently. 2009-11-26 16:17:00 +00:00
floppy.ico
folder1.ico
folder2.ico
font.h No changes, just avoid overriding GetNativeFontInfoDesc() in wxMSW wxFont. 2009-11-26 02:34:01 +00:00
fontdlg.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
frame.h use wxSTB_ as prefix for wxStatusBar styles; add support for wxSTB_ELLIPSIZE_* flags under wxGTK; support wxSTB_SHOW_TIPS even if no ellipsization mode is active; update the sample to allow the user to choose the wxStatusBar style dynamically 2009-04-25 12:59:09 +00:00
fswatcher.h Merge SOC2009_FSWATCHER branch into trunk. 2009-10-22 11:35:43 +00:00
gauge.h Use PBM_SETMARQUEE to implement indeterminate mode in wxMSW wxGauge. 2010-06-20 17:43:02 +00:00
gccpriv.h
gdiimage.h Fix file paths in the header comments. 2010-07-13 13:29:58 +00:00
genrcdefs.h
glcanvas.h recreate the window if FSAA is requested (changeset_r54022_Fix.patch from #9145) 2008-06-14 01:44:13 +00:00
hand.cur
headerctrl.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
helpbest.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
helpchm.h replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents 2008-11-02 02:39:52 +00:00
helpwin.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
htmlhelp.h Globally use "wxWindows licence" consistently. 2010-07-13 13:29:13 +00:00
hyperlink.h Provide native wxHyperlinkCtrl implementation for wxMSW. 2010-08-17 16:55:32 +00:00
ia64.manifest
icon.h replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents 2008-11-02 02:39:52 +00:00
imaglist.h Make wxImageList not copiable (fixes #10503), replace wxList with wxObjectList 2009-02-19 20:26:00 +00:00
iniconf.h Fix file paths in the header comments. 2010-07-13 13:29:58 +00:00
joystick.h
libraries.h
listbox.h Add missing Init() call to one of wxListBox ctors in wxMSW. 2010-06-10 10:40:21 +00:00
listctrl.h Implement wx-prefixed macros versions of DECLARE/IMPLEMENT*CLASS macros. 2010-06-09 13:55:48 +00:00
magnif1.cur
mdi.h Initialize wxMDIParentFrame::m_accelWindowMenu in default ctor. 2009-09-21 08:44:42 +00:00
mdi.ico
menu.h Move wxMSW wxMenu::GetWindow() down to wxMenuBase. 2010-04-24 15:07:39 +00:00
menuitem.h Compilation fixes for PCH-less build after ownerdraw-refactor branch merge. 2010-01-26 09:01:13 +00:00
metafile.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
microwin.h
mimetype.h Removed most of the pre-XDG MIME code from the Unix implementation, many speed-ups by simplification 2008-06-30 11:58:41 +00:00
minifram.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
missing.h define MIIM_BITMAP &c in wx/msw/missing.h instead of msw/menu.cpp as menuitem.cpp now needs them too 2009-01-31 20:52:44 +00:00
msgdlg.h Provide a task-dialog based wxMSW wxMessageDialog implementation. 2010-08-18 22:48:28 +00:00
mslu.h
msvcrt.h replace more __WXDEBUG__ occurrences with wxDEBUG_LEVEL 2009-03-22 12:53:48 +00:00
notebook.h Inherit notebook background recursively under wxMSW. 2010-08-10 21:48:17 +00:00
notifmsg.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
ownerdrw.h Refactor owner-drawing code. 2010-01-23 13:21:12 +00:00
palette.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
pbrush.cur
pen.h declare future-deprecated SetStyle(int) in wxPen/Brush and not wxPen/BrushBase as it's useless there (compilation of user code doing pen.SetStyle(wxDOT) still fails) 2008-06-17 17:28:26 +00:00
pencil.cur
pntleft.cur
pntright.cur
popupwin.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
printdlg.h No changes, just removed hard tabs and trailing white space. 2009-08-21 10:41:26 +00:00
printwin.h No real changes, just clean up wxAbortProc mess. 2010-05-05 12:19:53 +00:00
private.h Declare various WXH* handles compatibly with SDK. 2010-04-25 12:07:30 +00:00
progdlg.h Use task dialog for wxProgressDialog implementation in wxMSW. 2010-08-18 22:49:02 +00:00
question.ico
radiobox.h use wxRA_SPECIFY_COLS/ROWS instead of old, deprecated and confusing wxRA_HORIZONTAL/VERTICAL 2009-06-03 22:33:32 +00:00
radiobut.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
rcdefs.h
regconf.h no changes, just remove an extra space (see #10560) 2009-03-07 15:49:32 +00:00
region.h a few more int/wxPolygonFillMode substitutions in wxRegion and wxGraphicsContext code 2009-01-08 16:43:56 +00:00
registry.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
removble.ico
richmsgdlg.h Add wxRichMessageDialog class. 2010-08-18 22:48:41 +00:00
rightarr.cur
roller.cur
scrolbar.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
seh.h disable warning about _set_se_translator() requiring /EHa for VC9 too (it was disabled for up to VC8) 2009-06-06 23:27:37 +00:00
setup0.h Merge wxUIActionSimulator fixes from SOC2010_GUI_TEST branch. 2010-08-22 22:15:42 +00:00
setup_inc.h
slider.h Globally replace _T() with wxT(). 2009-07-23 20:30:22 +00:00
sound.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
spinbutt.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
spinctrl.h Use correct visual attributes for wxSpinCtrl. 2009-09-08 12:23:06 +00:00
stackwalk.h don't use hardcoded constant 200; use wxSTACKWALKER_MAX_DEPTH instead 2009-01-14 14:38:00 +00:00
statbmp.h add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros 2009-02-08 11:45:59 +00:00
statbox.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
statline.h substitute WXDLLEXPORT with WXDLLIMPEXP_CORE and WXDLLEXPORT_DATA with WXDLLIMPEXP_DATA_CORE 2008-03-26 15:06:00 +00:00
stattext.h Added DoGetClientBestSize() and use it for a couple of controls in wxMSW. 2009-06-22 20:36:13 +00:00
statusbar.h Account for the margins used by Windows around status bar text. 2009-09-21 13:00:36 +00:00
std.ico
stdpaths.h Added wxStandardPaths::MSWGetShellDir(). 2009-08-14 00:05:56 +00:00
subwin.h Globally replace _T() with wxT(). 2009-07-23 20:30:22 +00:00
taskbar.h
textctrl.h Fix setting the fonts for wxMSW wxTextCtrl with wxTE_RICH(2) style. 2010-05-25 21:15:24 +00:00
textentry.h wxTextEntry::SetMargins(), GetMargins() - implemented on wxMSW and wxGTK (GTK+ 2.10+); also added similar functions into wxComboCtrl, deprecated old indent-functions; wxPropertyGrid modified to use the new functionality 2009-09-05 12:39:12 +00:00
tglbtn.h Globally use "wxWindows licence" consistently. 2010-07-13 13:29:13 +00:00
tls.h Fix wxTlsValue<> memory leaks. 2010-03-08 12:21:58 +00:00
toolbar.h Finally really correct background erasing for wxMSW wxToolBar. 2009-12-22 15:37:43 +00:00
tooltip.h No changes, just removed hard tabs and trailing white space. 2009-08-21 10:41:26 +00:00
toplevel.h Override wxWindow::MSWGetCreateWindowCoords() in wxTopLevelWindow. 2010-04-22 11:21:21 +00:00
treectrl.h Implement wx-prefixed macros versions of DECLARE/IMPLEMENT*CLASS macros. 2010-06-09 13:55:48 +00:00
uxtheme.h Globally use "wxWindows licence" consistently. 2010-07-13 13:29:13 +00:00
uxthemep.h Globally use "wxWindows licence" consistently. 2010-07-13 13:29:13 +00:00
window.h Fixes to key codes in keyboard events generated by wxMSW. 2010-09-11 10:18:47 +00:00
winundef.h Use _UNICODE instead of UNICODE in wx/msw/winundef.h. 2010-03-09 11:08:52 +00:00
wrapcctl.h extract (and expand and clean up and document) the header window implementation used inside the generic wxDataViewCtrl in a separate wxHeaderCtrl class which could be reused in (generic) wxListCtrl and, most importantly, wxGrid later 2008-12-03 21:53:10 +00:00
wrapcdlg.h
wrapgdip.h
wrapshl.h Globally replace _T() with wxT(). 2009-07-23 20:30:22 +00:00
wrapwin.h No changes, just removed hard tabs and trailing white space. 2009-08-21 10:41:26 +00:00
wx.manifest
wx.rc