本文整理汇总了C++中wxKeyEvent::GetRawKeyCode方法的典型用法代码示例。如果您正苦于以下问题:C++ wxKeyEvent::GetRawKeyCode方法的具体用法?C++ wxKeyEvent::GetRawKeyCode怎么用?C++ wxKeyEvent::GetRawKeyCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxKeyEvent
的用法示例。
在下文中一共展示了wxKeyEvent::GetRawKeyCode方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: wxKeyCodeToSDLCode
void wxG3DCanvas::handleKeyDown(wxKeyEvent& event) {
if (_gWindow->keyboardEvents.length() > 200) {
_gWindow->keyboardEvents.clear();
}
GEvent e;
e.key.type = SDL_KEYDOWN;
e.key.state = SDL_PRESSED;
e.key.keysym.sym = wxKeyCodeToSDLCode(event.KeyCode());
#if (wxUSE_UNICODE == 1)
e.key.keysym.unicode = event.GetUnicodeKey();
#elif defined(wxHAS_RAW_KEY_CODES)
e.key.keysym.unicode = event.GetRawKeyCode();
#else
e.key.keysym.unicode = e.key.keysym.sym;
#endif
#if defined(wxHAS_RAW_KEY_CODES)
e.key.keysym.scancode = event.GetRawKeyCode();
#else
e.key.keysym.scancode = 0;
#endif
_gWindow->keyboardEvents.pushBack(e);
event.Skip();
}
示例2: OnKeyDown
void GSPanel::OnKeyDown( wxKeyEvent& evt )
{
// HACK: Legacy PAD plugins expect PCSX2 to ignore keyboard messages on the GS Window while
// the PAD plugin is open, so ignore here (PCSX2 will direct messages routed from PAD directly
// to the APP level message handler, which in turn routes them right back here -- yes it's
// silly, but oh well).
#ifdef __linux__
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
// the event before the pad see it. So you send key event directly to the pad.
if( (PADWriteEvent != NULL) && (GSopen2 != NULL) ) {
keyEvent event;
event.key = evt.GetRawKeyCode();
if (evt.GetEventType() == wxEVT_KEY_UP)
event.evt = 3; // X equivalent of KEYRELEASE;
else if (evt.GetEventType() == wxEVT_KEY_DOWN)
event.evt = 2; // X equivalent of KEYPRESS;
else
event.evt = 0;
PADWriteEvent(event);
}
#endif
if( (PADopen != NULL) && CoreThread.IsOpen() ) return;
DirectKeyCommand( evt );
}
示例3: OnKeyDown
void MovieWindowQT::OnKeyDown(wxKeyEvent &inEvent) {
// TODO - Only pass appropriate keys to QuickTime, and Skip() the
// rest of the events. Figure out why SPACE isn't working. And
// re-enable this handler in our event table.
if (mMovie) {
EventRecord event;
mMovie->FillOutEvent((HWND) mHWND, WM_KEYDOWN,
(WPARAM) inEvent.GetRawKeyCode(),
(LPARAM) inEvent.GetRawKeyFlags(), &event);
mMovie->Key(event.message & charCodeMask, event.modifiers);
}
}
示例4: OnKeyDownOrUp
void GSPanel::OnKeyDownOrUp( wxKeyEvent& evt )
{
// HACK: Legacy PAD plugins expect PCSX2 to ignore keyboard messages on the GS Window while
// the PAD plugin is open, so ignore here (PCSX2 will direct messages routed from PAD directly
// to the APP level message handler, which in turn routes them right back here -- yes it's
// silly, but oh well).
#if defined(__unix__)
// HACK2: In gsopen2 there is one event buffer read by both wx/gui and pad plugin. Wx deletes
// the event before the pad see it. So you send key event directly to the pad.
if( (PADWriteEvent != NULL) && (GSopen2 != NULL) ) {
keyEvent event;
event.key = evt.GetRawKeyCode();
if (evt.GetEventType() == wxEVT_KEY_UP)
event.evt = 3; // X equivalent of KEYRELEASE;
else if (evt.GetEventType() == wxEVT_KEY_DOWN)
event.evt = 2; // X equivalent of KEYPRESS;
else
event.evt = 0;
PADWriteEvent(event);
}
#endif
#ifdef __WXMSW__
// Not sure what happens on Linux, but on windows this method is called only when emulation
// is paused and the GS window is not hidden (and therefore the event doesn't arrive from
// the pad plugin and doesn't go through Pcsx2App::PadKeyDispatch). On such case (paused).
// It needs to handle two issues:
// 1. It's called both for key down and key up (linux apparently needs it this way) - but we
// don't want to execute the command twice (normally commands execute on key down only).
// 2. It has wx keycode which is upper case for ascii chars, but our command handlers expect
// lower case for non-special keys.
// ignore key up events
if (evt.GetEventType() == wxEVT_KEY_UP)
return;
// Make ascii keys lower case - this apparently works correctly also with modifiers (shift included)
if (evt.m_keyCode >= 'A' && evt.m_keyCode <= 'Z')
evt.m_keyCode += (int)'a' - 'A';
#endif
if( (PADopen != NULL) && CoreThread.IsOpen() ) return;
DirectKeyCommand( evt );
}
示例5: OnKeyUp
void WGetKey::OnKeyUp( wxKeyEvent& event )
{
if (event.GetKeyCode()== WXK_ESCAPE) {
EndModal(wxID_NO);
}
else {
// Note that GetRawKeyCode() returns the KeySym on wxGTK and the
// virtual key code on Windows. See:
// http://docs.wxwidgets.org/trunk/classwx_key_event.html#a6fddcd170d05b0852a7eb2a0cb730795
// and
// https://msdn.microsoft.com/en-us/library/windows/desktop/gg153546(v=vs.85).aspx
wxUint32 rkc= event.GetRawKeyCode();
m_keyCode= KeyboardCode(rkc);
EndModal(wxID_YES);
}
event.Skip(false);
}
示例6: OnKeyChar
void StyledTextBox::OnKeyChar(wxKeyEvent& keyEvent) {
// Process visible character input
if (!keyEvent.HasModifiers()) {
int keycode = keyEvent.GetRawKeyCode();
if (keycode < 255 && isprint(keycode)) {
if (HasSelectedText()) {
RemoveSelectedText();
}
char c = (wxChar)keycode;
auto text = GetStdText();
auto insertPosition = begin(text) + GetCursorPosition();
text.insert(insertPosition, c);
SetText(text);
SetCursorPosition(GetCursorPosition() + 1);
}
}
}
示例7: OnKeyDown
void KeyBindingTextCtrl::OnKeyDown(wxKeyEvent & event)
{
m_rawKeyCode = event.GetRawKeyCode();
m_keyCode = event.GetKeyCode();
SetValue(GetStringFromCode(m_rawKeyCode));
}
示例8: OnKeyEvent
void IWnd_stc::OnKeyEvent(wxKeyEvent& evt)
{
int kc = evt.GetRawKeyCode();
if(kc==wxSTC_KEY_TAB)
{
if(evt.ShiftDown())
{
CmdKeyExecute (wxSTC_CMD_BACKTAB);
}
else
{
CmdKeyExecute (wxSTC_CMD_TAB);
}
return;
}
if(evt.ControlDown())
{
switch(kc)
{
case 'C':
{
Copy();
}
return;
case 'X':
{
Cut();
}
return;
case 'V':
{
Paste();
}
return;
case 'A':
{
SelectAll();
}
return;
case 'Z':
{
Undo();
}
return;
case 'R':
{
Redo();
}
return;
case 'D':
{
this->Clear();
}
return;
//case 'F':
// if(style.get(STYLE_CAN_FIND))
// {
// WndManager::current().evtmgr["Find"].CmdExecuteEx(-1);
// evt.Skip();
// return;
// }
// break;
//case 'H':
// if(style.get(STYLE_CAN_REPLACE))
// {
// WndManager::current().evtmgr["Replace"].CmdExecuteEx(-1);
// evt.Skip();
// return;
// }
// break;
};
}
evt.Skip();
}
示例9: OnKeyDown
void wxListCtrlEx::OnKeyDown(wxKeyEvent& event)
{
if (!m_prefixSearch_enabled)
{
event.Skip();
return;
}
int code = event.GetKeyCode();
if (code == WXK_LEFT ||
code == WXK_RIGHT ||
code == WXK_UP ||
code == WXK_DOWN ||
code == WXK_HOME ||
code == WXK_END)
{
ResetSearchPrefix();
event.Skip();
return;
}
if (event.AltDown() && !event.ControlDown()) // Alt but not AltGr
{
event.Skip();
return;
}
wxChar key;
switch (code)
{
case WXK_NUMPAD0:
case WXK_NUMPAD1:
case WXK_NUMPAD2:
case WXK_NUMPAD3:
case WXK_NUMPAD4:
case WXK_NUMPAD5:
case WXK_NUMPAD6:
case WXK_NUMPAD7:
case WXK_NUMPAD8:
case WXK_NUMPAD9:
key = '0' + code - WXK_NUMPAD0;
break;
case WXK_NUMPAD_ADD:
key = '+';
break;
case WXK_NUMPAD_SUBTRACT:
key = '-';
break;
case WXK_NUMPAD_MULTIPLY:
key = '*';
break;
case WXK_NUMPAD_DIVIDE:
key = '/';
break;
default:
key = 0;
break;
}
if (key)
{
if (event.GetModifiers())
{
// Numpad keys can not have modifiers
event.Skip();
}
HandlePrefixSearch(key);
return;
}
#if defined(__WXMSW__)
if (code >= 300 && code != WXK_NUMPAD_DECIMAL)
{
event.Skip();
return;
}
// Get the actual key
BYTE state[256];
if (!GetKeyboardState(state)) {
event.Skip();
return;
}
wxChar buffer[1];
int res = ToUnicode(event.GetRawKeyCode(), 0, state, buffer, 1, 0);
if (res != 1)
{
event.Skip();
return;
}
key = buffer[0];
if (key < 32)
{
event.Skip();
return;
}
if (key == 32 && event.HasModifiers())
//.........这里部分代码省略.........