/////////////////////////////////////////////////////////////////////////////
-// Name: msw/accel.cpp
+// Name: src/msw/accel.cpp
// Purpose: wxAcceleratorTable
// Author: Julian Smart
// Modified by:
#include "wx/accel.h"
#include "wx/msw/private.h"
-
-extern WXWORD wxCharCodeWXToMSW(int id, bool *isVirtual);
+#include "wx/msw/private/keyboard.h"
IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject)
class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData
{
- friend class WXDLLEXPORT wxAcceleratorTable;
+ friend class WXDLLIMPEXP_FWD_CORE wxAcceleratorTable;
public:
wxAcceleratorRefData();
virtual ~wxAcceleratorRefData();
HACCEL m_hAccel;
bool m_ok;
- DECLARE_NO_COPY_CLASS(wxAcceleratorRefData)
+ wxDECLARE_NO_COPY_CLASS(wxAcceleratorRefData);
};
// ============================================================================
{
int flags = entries[i].GetFlags();
- BYTE fVirt = 0;
+ BYTE fVirt = FVIRTKEY;
if ( flags & wxACCEL_ALT )
- fVirt |= FALT | FVIRTKEY;
+ fVirt |= FALT;
if ( flags & wxACCEL_SHIFT )
- fVirt |= FSHIFT | FVIRTKEY;
+ fVirt |= FSHIFT;
if ( flags & wxACCEL_CTRL )
- fVirt |= FCONTROL | FVIRTKEY;
-
- bool isVirtual;
+ fVirt |= FCONTROL;
- WORD key = wxCharCodeWXToMSW(entries[i].GetKeyCode(), &isVirtual);
- if (isVirtual)
- fVirt |= FVIRTKEY;
+ WORD key = wxMSWKeyboard::WXToVK(entries[i].GetKeyCode());
arr[i].fVirt = fVirt;
arr[i].key = key;
bool wxAcceleratorTable::Translate(wxWindow *window, WXMSG *wxmsg) const
{
-#if 0
- // calling TranslateAccelerator() with child window doesn't do anything so
- // it's probably a bug
- wxASSERT_MSG( window->IsTopLevel(),
- _T("TranslateAccelerator() needs a top level window") );
-#endif
-
MSG *msg = (MSG *)wxmsg;
return Ok() && ::TranslateAccelerator(GetHwndOf(window), GetHaccel(), msg);
}