X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2317bff237632d1104593dd5f3e8afcb2517ef6b..ed39ff57b30a70a2395e07887a70bc01e7a3b7ec:/src/msw/accel.cpp diff --git a/src/msw/accel.cpp b/src/msw/accel.cpp index 1c4c6fe2cf..88351417c7 100644 --- a/src/msw/accel.cpp +++ b/src/msw/accel.cpp @@ -21,12 +21,10 @@ #endif #ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/window.h" + #include "wx/window.h" #endif -#include "wx/msw/accel.h" +#include "wx/accel.h" #include "wx/msw/private.h" @@ -43,6 +41,8 @@ public: protected: HACCEL m_hAccel; bool m_ok; + + DECLARE_NO_COPY_CLASS(wxAcceleratorRefData) }; #define M_ACCELDATA ((wxAcceleratorRefData *)m_refData) @@ -96,34 +96,34 @@ wxAcceleratorTable::wxAcceleratorTable(const wxString& resource) extern int wxCharCodeWXToMSW(int id, bool *isVirtual); // Create from an array -#if !defined(__WIN16__) && !defined(__TWIN32__) && !defined(__WXWINE__) +#if !defined(__WIN16__) && !defined(__TWIN32__) wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]) { // Not available in WIN16 m_refData = new wxAcceleratorRefData; ACCEL* arr = new ACCEL[n]; - int i; - for (i = 0; i < n; i++) + for ( int i = 0; i < n; i++ ) { + int flags = entries[i].GetFlags(); + BYTE fVirt = 0; - if (entries[i].m_flags & wxACCEL_ALT) - fVirt |= FALT; - if (entries[i].m_flags & wxACCEL_SHIFT) - fVirt |= FSHIFT; - if (entries[i].m_flags & wxACCEL_CTRL) - fVirt |= FCONTROL; + if ( flags & wxACCEL_ALT ) + fVirt |= FALT | FVIRTKEY; + if ( flags & wxACCEL_SHIFT ) + fVirt |= FSHIFT | FVIRTKEY; + if ( flags & wxACCEL_CTRL ) + fVirt |= FCONTROL | FVIRTKEY; bool isVirtual; - WORD key = wxCharCodeWXToMSW(entries[i].m_keyCode, & isVirtual); + + WORD key = wxCharCodeWXToMSW(entries[i].GetKeyCode(), &isVirtual); if (isVirtual) fVirt |= FVIRTKEY; - WORD cmd = entries[i].m_command; - arr[i].fVirt = fVirt; arr[i].key = key; - arr[i].cmd = cmd; + arr[i].cmd = entries[i].GetCommand(); } M_ACCELDATA->m_hAccel = ::CreateAcceleratorTable(arr, n);