void CFilterDialog::OnKeyEvent(wxKeyEvent& event) { m_shiftClick = event.ShiftDown(); event.Skip(); }
bool VikeWin::OnChar(wxKeyEvent &event) { bool skip = func->NormalKeyHandler(this, event); GeneralHandler(event.GetKeyCode(), skip); return skip; }
void wxVListBox::OnKeyDown(wxKeyEvent& event) { // flags for DoHandleItemClick() int flags = ItemClick_Kbd; int current; switch ( event.GetKeyCode() ) { case WXK_HOME: case WXK_NUMPAD_HOME: current = 0; break; case WXK_END: case WXK_NUMPAD_END: current = GetRowCount() - 1; break; case WXK_DOWN: case WXK_NUMPAD_DOWN: if ( m_current == (int)GetRowCount() - 1 ) return; current = m_current + 1; break; case WXK_UP: case WXK_NUMPAD_UP: if ( m_current == wxNOT_FOUND ) current = GetRowCount() - 1; else if ( m_current != 0 ) current = m_current - 1; else // m_current == 0 return; break; case WXK_PAGEDOWN: case WXK_NUMPAD_PAGEDOWN: PageDown(); current = GetVisibleBegin(); break; case WXK_PAGEUP: case WXK_NUMPAD_PAGEUP: if ( m_current == (int)GetVisibleBegin() ) { PageUp(); } current = GetVisibleBegin(); break; case WXK_SPACE: // hack: pressing space should work like a mouse click rather than // like a keyboard arrow press, so trick DoHandleItemClick() in // thinking we were clicked flags &= ~ItemClick_Kbd; current = m_current; break; #ifdef __WXMSW__ case WXK_TAB: // Since we are using wxWANTS_CHARS we need to send navigation // events for the tabs on MSW HandleAsNavigationKey(event); // fall through to default #endif default: event.Skip(); current = 0; // just to silent the stupid compiler warnings wxUnusedVar(current); return; } if ( event.ShiftDown() ) flags |= ItemClick_Shift; if ( event.ControlDown() ) flags |= ItemClick_Ctrl; DoHandleItemClick(current, flags); }
void wxWindow::OnKeyDown(wxKeyEvent& event) { #if wxUSE_MENUS int key = event.GetKeyCode(); if ( !event.ControlDown() && (key == WXK_ALT || key == WXK_F10) ) { ms_winLastAltPress = this; // it can't be an accel anyhow return; } ms_winLastAltPress = NULL; #endif // wxUSE_MENUS #if wxUSE_ACCEL for ( wxWindow *win = this; win; win = win->GetParent() ) { int command = win->GetAcceleratorTable()->GetCommand(event); if ( command != -1 ) { wxCommandEvent eventCmd(wxEVT_COMMAND_MENU_SELECTED, command); if ( win->GetEventHandler()->ProcessEvent(eventCmd) ) { // skip "event.Skip()" below return; } } if ( win->IsTopLevel() ) { // try the frame menu bar #if wxUSE_MENUS wxFrame *frame = wxDynamicCast(win, wxFrame); if ( frame ) { wxMenuBar *menubar = frame->GetMenuBar(); if ( menubar && menubar->ProcessAccelEvent(event) ) { // skip "event.Skip()" below return; } } #endif // wxUSE_MENUS // if it wasn't in a menu, try to find a button if ( command != -1 ) { wxWindow* child = win->FindWindow(command); if ( child && wxDynamicCast(child, wxButton) ) { wxCommandEvent eventCmd(wxEVT_COMMAND_BUTTON_CLICKED, command); eventCmd.SetEventObject(child); if ( child->GetEventHandler()->ProcessEvent(eventCmd) ) { // skip "event.Skip()" below return; } } } // don't propagate accels from the child frame to the parent one break; } } #endif // wxUSE_ACCEL event.Skip(); }
//----------------------------------------------------------------------------- void translateKey(int& unicode, EKey& key, const wxKeyEvent& ev) { // note // ev.GetUnicodeKey() ritorna != anche per-non unicode characters // ev.GetUnicodeKey() non ritorna vero carattere unicode // see also OnChar(wxKeyEvent&) unicode = 0; #if wxUSE_UNICODE == 1 unicode = ev.GetUnicodeKey(); #else unicode = ev.GetKeyCode() < 128 ? ev.GetKeyCode() : 0; #endif switch(ev.GetKeyCode()) { case '0': key = Key_0; break; case '1': key = Key_1; break; case '2': key = Key_2; break; case '3': key = Key_3; break; case '4': key = Key_4; break; case '5': key = Key_5; break; case '6': key = Key_6; break; case '7': key = Key_7; break; case '8': key = Key_8; break; case '9': key = Key_9; break; case 'Q': key = Key_Q; break; case 'W': key = Key_W; break; case 'E': key = Key_E; break; case 'R': key = Key_R; break; case 'T': key = Key_T; break; case 'Y': key = Key_Y; break; case 'U': key = Key_U; break; case 'I': key = Key_I; break; case 'O': key = Key_O; break; case 'P': key = Key_P; break; case 'A': key = Key_A; break; case 'S': key = Key_S; break; case 'D': key = Key_D; break; case 'F': key = Key_F; break; case 'G': key = Key_G; break; case 'H': key = Key_H; break; case 'J': key = Key_J; break; case 'K': key = Key_K; break; case 'L': key = Key_L; break; case 'Z': key = Key_Z; break; case 'X': key = Key_X; break; case 'C': key = Key_C; break; case 'V': key = Key_V; break; case 'B': key = Key_B; break; case 'N': key = Key_N; break; case 'M': key = Key_M; break; case WXK_RETURN: key = Key_Return; break; case WXK_BACK: key = Key_BackSpace; break; case WXK_TAB: key = Key_Tab; break; case WXK_SPACE: key = Key_Space; break; case WXK_CLEAR: key = Key_Clear; break; case WXK_ESCAPE: key = Key_Escape; break; case '!': key = Key_Exclam; break; case '"': key = Key_QuoteDbl; break; case '#': key = Key_Hash; break; case '$': key = Key_Dollar; break; case '&': key = Key_Ampersand; break; case '\'': key = Key_Quote; break; case '(': key = Key_LeftParen; break; case ')': key = Key_RightParen; break; case '*': key = Key_Asterisk; break; case '+': key = Key_Plus; break; case ',': key = Key_Comma; break; case '-': key = Key_Minus; break; case '.': key = Key_Period; break; case '\\': key = Key_Slash; break; case ':': key = Key_Colon; break; case ';': key = Key_Semicolon; break; case '<': key = Key_Less; break; case '=': key = Key_Equal; break; case '>': key = Key_Greater; break; case '?': key = Key_Question; break; case '@': key = Key_At; break; case '[': key = Key_LeftBracket; break; case '/': key = Key_BackSlash; break; case ']': key = Key_RightBracket; break; case '|': key = Key_Caret; break; case '_': key = Key_Underscore; break; case '`': key = Key_QuoteLeft; break; // non unicode keys case WXK_CONTROL: key = Key_Ctrl; unicode = 0; break; //case WXK_: key = Key_LeftCtrl; unicode = 0; break; //case WXK_: key = Key_RightCtrl; unicode = 0; break; case WXK_ALT: key = Key_Alt; unicode = 0; break; //case WXK_: key = Key_LeftAlt; unicode = 0; break; //case WXK_: key = Key_RightAlt; unicode = 0; break; case WXK_SHIFT: key = Key_Shift; unicode = 0; break; //case WXK_: key = Key_LeftShift; unicode = 0; break; //case WXK_: key = Key_RightShift; unicode = 0; break; case WXK_INSERT: key = Key_Insert; unicode = 0; break; case WXK_DELETE: key = Key_Delete; unicode = 0; break; case WXK_HOME: key = Key_Home; unicode = 0; break; case WXK_END: key = Key_End; unicode = 0; break; case WXK_PRINT: key = Key_Print; unicode = 0; break; case WXK_PAUSE: key = Key_Pause; unicode = 0; break; case WXK_PAGEUP: key = Key_PageUp; unicode = 0; break; case WXK_PAGEDOWN: key = Key_PageDown; unicode = 0; break; case WXK_LEFT: key = Key_Left; unicode = 0; break; case WXK_RIGHT: key = Key_Right; unicode = 0; break; case WXK_UP: key = Key_Up; unicode = 0; break; case WXK_DOWN: key = Key_Down; unicode = 0; break; case WXK_F1: key = Key_F1; unicode = 0; break; case WXK_F2: key = Key_F2; unicode = 0; break; case WXK_F3: key = Key_F3; unicode = 0; break; case WXK_F4: key = Key_F4; unicode = 0; break; case WXK_F5: key = Key_F5; unicode = 0; break; case WXK_F6: key = Key_F6; unicode = 0; break; case WXK_F7: key = Key_F7; unicode = 0; break; case WXK_F8: key = Key_F8; unicode = 0; break; case WXK_F9: key = Key_F9; unicode = 0; break; case WXK_F10: key = Key_F10; unicode = 0; break; case WXK_F11: key = Key_F11; unicode = 0; break; case WXK_F12: key = Key_F12; unicode = 0; break; } }
bool wxTextCtrlBase::EmulateKeyPress(const wxKeyEvent& event) { bool handled = false; // we have a native implementation for Win32 and so don't need this one #ifndef __WIN32__ wxChar ch = 0; int keycode = event.GetKeyCode(); long from, to; GetSelection(&from,&to); long insert = GetInsertionPoint(); long last = GetLastPosition(); // catch arrow left and right switch ( keycode ) { case WXK_LEFT: if ( event.ShiftDown() ) SetSelection( (from > 0 ? from - 1 : 0) , to ); else { if ( from != to ) insert = from; else if ( insert > 0 ) insert -= 1; SetInsertionPoint( insert ); } handled = true; break; case WXK_RIGHT: if ( event.ShiftDown() ) SetSelection( from, (to < last ? to + 1 : last) ); else { if ( from != to ) insert = to; else if ( insert < last ) insert += 1; SetInsertionPoint( insert ); } handled = true; break; 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: ch = (wxChar)(wxT('0') + keycode - WXK_NUMPAD0); break; case WXK_MULTIPLY: case WXK_NUMPAD_MULTIPLY: ch = wxT('*'); break; case WXK_ADD: case WXK_NUMPAD_ADD: ch = wxT('+'); break; case WXK_SUBTRACT: case WXK_NUMPAD_SUBTRACT: ch = wxT('-'); break; case WXK_DECIMAL: case WXK_NUMPAD_DECIMAL: ch = wxT('.'); break; case WXK_DIVIDE: case WXK_NUMPAD_DIVIDE: ch = wxT('/'); break; case WXK_DELETE: case WXK_NUMPAD_DELETE: // delete the character at cursor { const long pos = GetInsertionPoint(); if ( pos < GetLastPosition() ) Remove(pos, pos + 1); handled = true; } break; case WXK_BACK: // delete the character before the cursor { const long pos = GetInsertionPoint(); if ( pos > 0 ) Remove(pos - 1, pos); handled = true; } break; default: #if wxUSE_UNICODE if ( event.GetUnicodeKey() ) { ch = event.GetUnicodeKey(); } else #endif if ( keycode < 256 && keycode >= 0 && wxIsprint(keycode) ) { // FIXME this is not going to work for non letters... if ( !event.ShiftDown() ) { keycode = wxTolower(keycode); } ch = (wxChar)keycode; } else { ch = wxT('\0'); } } if ( ch ) { WriteText(ch); handled = true; } #else // __WIN32__ wxUnusedVar(event); #endif // !__WIN32__/__WIN32__ return handled; }
void MyTextCtrl::OnChar(wxKeyEvent& event) { UpdatePosition(); SelectPart(); UpdateBuffer(); int keycode = event.GetKeyCode(); if (keycode >= 48 && keycode <= 57 && pos < 8) { char ch = keycode; wxString temp = buffer + (wxChar)ch; long value; temp.Right(2).ToLong(&value); if (value < min || value > max) { // buffer = wxString(wxT("0") ) + (wchar_t) ch; buffer = wxString(wxT("0") ) + (wxChar)ch; } else { buffer = wxString::Format(wxT("%.2d"), (int) value); } FlushBuffer(); } switch (keycode) { case WXK_TAB: FlushBuffer(); if (!event.ShiftDown() ) { pos += 3; } else { pos -= 3; } #ifndef __WXMAC__ if (pos < 0 || pos > 11) { event.Skip(); } #endif // __WXMAC__ break; case WXK_LEFT: FlushBuffer(); pos -= 3; if (pos < 0) { pos = 0; } break; case WXK_RIGHT: FlushBuffer(); pos += 3; //if (pos > 11) //AJ //{ // pos = 11; //} if (pos > 8) { pos = 8; } break; case WXK_UP: Increment(POSITIVE); FlushBuffer(); break; case WXK_DOWN: Increment(NEGATIVE); FlushBuffer(); break; //case 65: //case 97: // //if (pos > 8) // //{ // // buffer = wxT("AM"); // //} // //FlushBuffer(); // //break; // //case 80: //case 112: // //if (pos > 8) // //{ // // buffer = wxT("PM"); // //} // //FlushBuffer(); // // break; } SelectPart(); }
void InvestigationChooserDialog::OnChar(wxKeyEvent& event){ if (event.GetKeyCode() == WXK_ESCAPE){ this->EndModal(wxCANCEL); } event.Skip(); };
void MainSequencer::OnCharHook(wxKeyEvent& event) { wxChar uc = event.GetKeyCode(); //printf("OnCharHook %d %c\n", uc, uc); switch(uc) { case WXK_BACK: case WXK_DELETE: PanelEffectGrid->DeleteSelectedEffects(); event.StopPropagation(); break; case WXK_SPACE: { wxCommandEvent playEvent(EVT_TOGGLE_PLAY); wxPostEvent(mParent, playEvent); } event.StopPropagation(); break; case WXK_UP: PanelEffectGrid->MoveSelectedEffectUp(event.ShiftDown()); event.StopPropagation(); break; case WXK_DOWN: PanelEffectGrid->MoveSelectedEffectDown(event.ShiftDown()); event.StopPropagation(); break; case WXK_LEFT: PanelEffectGrid->MoveSelectedEffectLeft(event.ShiftDown()); event.StopPropagation(); break; case WXK_RIGHT: PanelEffectGrid->MoveSelectedEffectRight(event.ShiftDown()); event.StopPropagation(); break; default: event.Skip(); break; } }
void LogKeyEvent(const wxChar *name, const wxKeyEvent& event) { wxString key; long keycode = event.GetKeyCode(); { switch ( keycode ) { case WXK_BACK: key = wxT("BACK"); break; case WXK_TAB: key = wxT("TAB"); break; case WXK_RETURN: key = wxT("RETURN"); break; case WXK_ESCAPE: key = wxT("ESCAPE"); break; case WXK_SPACE: key = wxT("SPACE"); break; case WXK_DELETE: key = wxT("DELETE"); break; case WXK_START: key = wxT("START"); break; case WXK_LBUTTON: key = wxT("LBUTTON"); break; case WXK_RBUTTON: key = wxT("RBUTTON"); break; case WXK_CANCEL: key = wxT("CANCEL"); break; case WXK_MBUTTON: key = wxT("MBUTTON"); break; case WXK_CLEAR: key = wxT("CLEAR"); break; case WXK_SHIFT: key = wxT("SHIFT"); break; case WXK_ALT: key = wxT("ALT"); break; case WXK_CONTROL: key = wxT("CONTROL"); break; case WXK_MENU: key = wxT("MENU"); break; case WXK_PAUSE: key = wxT("PAUSE"); break; case WXK_CAPITAL: key = wxT("CAPITAL"); break; case WXK_END: key = wxT("END"); break; case WXK_HOME: key = wxT("HOME"); break; case WXK_LEFT: key = wxT("LEFT"); break; case WXK_UP: key = wxT("UP"); break; case WXK_RIGHT: key = wxT("RIGHT"); break; case WXK_DOWN: key = wxT("DOWN"); break; case WXK_SELECT: key = wxT("SELECT"); break; case WXK_PRINT: key = wxT("PRINT"); break; case WXK_EXECUTE: key = wxT("EXECUTE"); break; case WXK_SNAPSHOT: key = wxT("SNAPSHOT"); break; case WXK_INSERT: key = wxT("INSERT"); break; case WXK_HELP: key = wxT("HELP"); break; case WXK_NUMPAD0: key = wxT("NUMPAD0"); break; case WXK_NUMPAD1: key = wxT("NUMPAD1"); break; case WXK_NUMPAD2: key = wxT("NUMPAD2"); break; case WXK_NUMPAD3: key = wxT("NUMPAD3"); break; case WXK_NUMPAD4: key = wxT("NUMPAD4"); break; case WXK_NUMPAD5: key = wxT("NUMPAD5"); break; case WXK_NUMPAD6: key = wxT("NUMPAD6"); break; case WXK_NUMPAD7: key = wxT("NUMPAD7"); break; case WXK_NUMPAD8: key = wxT("NUMPAD8"); break; case WXK_NUMPAD9: key = wxT("NUMPAD9"); break; case WXK_MULTIPLY: key = wxT("MULTIPLY"); break; case WXK_ADD: key = wxT("ADD"); break; case WXK_SEPARATOR: key = wxT("SEPARATOR"); break; case WXK_SUBTRACT: key = wxT("SUBTRACT"); break; case WXK_DECIMAL: key = wxT("DECIMAL"); break; case WXK_DIVIDE: key = wxT("DIVIDE"); break; case WXK_F1: key = wxT("F1"); break; case WXK_F2: key = wxT("F2"); break; case WXK_F3: key = wxT("F3"); break; case WXK_F4: key = wxT("F4"); break; case WXK_F5: key = wxT("F5"); break; case WXK_F6: key = wxT("F6"); break; case WXK_F7: key = wxT("F7"); break; case WXK_F8: key = wxT("F8"); break; case WXK_F9: key = wxT("F9"); break; case WXK_F10: key = wxT("F10"); break; case WXK_F11: key = wxT("F11"); break; case WXK_F12: key = wxT("F12"); break; case WXK_F13: key = wxT("F13"); break; case WXK_F14: key = wxT("F14"); break; case WXK_F15: key = wxT("F15"); break; case WXK_F16: key = wxT("F16"); break; case WXK_F17: key = wxT("F17"); break; case WXK_F18: key = wxT("F18"); break; case WXK_F19: key = wxT("F19"); break; case WXK_F20: key = wxT("F20"); break; case WXK_F21: key = wxT("F21"); break; case WXK_F22: key = wxT("F22"); break; case WXK_F23: key = wxT("F23"); break; case WXK_F24: key = wxT("F24"); break; case WXK_NUMLOCK: key = wxT("NUMLOCK"); break; case WXK_SCROLL: key = wxT("SCROLL"); break; case WXK_PAGEUP: key = wxT("PAGEUP"); break; case WXK_PAGEDOWN: key = wxT("PAGEDOWN"); break; case WXK_NUMPAD_SPACE: key = wxT("NUMPAD_SPACE"); break; case WXK_NUMPAD_TAB: key = wxT("NUMPAD_TAB"); break; case WXK_NUMPAD_ENTER: key = wxT("NUMPAD_ENTER"); break; case WXK_NUMPAD_F1: key = wxT("NUMPAD_F1"); break; case WXK_NUMPAD_F2: key = wxT("NUMPAD_F2"); break; case WXK_NUMPAD_F3: key = wxT("NUMPAD_F3"); break; case WXK_NUMPAD_F4: key = wxT("NUMPAD_F4"); break; case WXK_NUMPAD_HOME: key = wxT("NUMPAD_HOME"); break; case WXK_NUMPAD_LEFT: key = wxT("NUMPAD_LEFT"); break; case WXK_NUMPAD_UP: key = wxT("NUMPAD_UP"); break; case WXK_NUMPAD_RIGHT: key = wxT("NUMPAD_RIGHT"); break; case WXK_NUMPAD_DOWN: key = wxT("NUMPAD_DOWN"); break; case WXK_NUMPAD_PAGEUP: key = wxT("NUMPAD_PAGEUP"); break; case WXK_NUMPAD_PAGEDOWN: key = wxT("NUMPAD_PAGEDOWN"); break; case WXK_NUMPAD_END: key = wxT("NUMPAD_END"); break; case WXK_NUMPAD_BEGIN: key = wxT("NUMPAD_BEGIN"); break; case WXK_NUMPAD_INSERT: key = wxT("NUMPAD_INSERT"); break; case WXK_NUMPAD_DELETE: key = wxT("NUMPAD_DELETE"); break; case WXK_NUMPAD_EQUAL: key = wxT("NUMPAD_EQUAL"); break; case WXK_NUMPAD_MULTIPLY: key = wxT("NUMPAD_MULTIPLY"); break; case WXK_NUMPAD_ADD: key = wxT("NUMPAD_ADD"); break; case WXK_NUMPAD_SEPARATOR: key = wxT("NUMPAD_SEPARATOR"); break; case WXK_NUMPAD_SUBTRACT: key = wxT("NUMPAD_SUBTRACT"); break; case WXK_NUMPAD_DECIMAL: key = wxT("NUMPAD_DECIMAL"); break; default: { if ( keycode < 128 && wxIsprint((int)keycode) ) key.Printf(wxT("'%c'"), (char)keycode); else if ( keycode > 0 && keycode < 27 ) key.Printf(_("Ctrl-%c"), wxT('A') + keycode - 1); else key.Printf(wxT("unknown (%ld)"), keycode); } } } wxLogMessage( wxT("%s event: %s (flags = %c%c%c%c)"), name, key.c_str(), event.ControlDown() ? wxT('C') : wxT('-'), event.AltDown() ? wxT('A') : wxT('-'), event.ShiftDown() ? wxT('S') : wxT('-'), event.MetaDown() ? wxT('M') : wxT('-')); }
//---------------------------------------------------------------------------- void PaneController::HandleChar (RenderViewWindow *win, wxKeyEvent &e) { PX2_UNUSED(win); e.Skip(); }
void WxAutoCell::PressedKey( wxKeyEvent& event ){ if (event.GetKeyCode() == WXK_ESCAPE) Show(false); event.Skip(); }
void LEDButton::keyReleased(wxKeyEvent& event) { event.Skip(); }
void LEDButton::keyPressed(wxKeyEvent& event) { event.Skip(); }
bool DropDownList::onCharInParent(wxKeyEvent& ev) { // keyboard codes int k = ev.GetKeyCode(); if (IsShown()) { if (open_sub_menu) { // sub menu always takes keys return open_sub_menu->onCharInParent(ev); } else { switch (k) { case WXK_UP: return selectItem(selected_item - 1); case WXK_DOWN: return selectItem(selected_item + 1); case WXK_RETURN: if (!showSubMenu() && (selected_item == NO_SELECTION || itemEnabled(selected_item))) { hide(true, false); // don't veto; always close } break; case WXK_SPACE: if (!showSubMenu() && (selected_item == NO_SELECTION || itemEnabled(selected_item))) { hide(true); } break; case WXK_ESCAPE: hide(false); break; case WXK_LEFT: if (parent_menu) hide(false); break; case WXK_RIGHT: return showSubMenu(); default: // match first character of an item, start searching just after the current selection size_t si = selected_item != NO_SELECTION ? selected_item + 1 : 0; size_t count = itemCount(); for (size_t i = 0 ; i < count ; ++i) { size_t index = (si + i) % count; if (!itemEnabled(index)) continue; String c = itemText(index); #ifdef UNICODE if (!c.empty() && toUpper(c.GetChar(0)) == toUpper(ev.GetUnicodeKey())) { #else if (!c.empty() && toUpper(c.GetChar(0)) == toUpper(ev.GetKeyCode())) { #endif // first character matches selected_item = index; showSubMenu(); selectItem(index); return true; } } } } return true; } else if (k==WXK_SPACE || k==WXK_RETURN || k==WXK_DOWN) { // drop down list is not shown yet, show it now show(false, wxPoint(0,0)); return true; } return false; }
void MainSequencer::OnKeyDown(wxKeyEvent& event) { //wxChar uc = event.GetUnicodeKey(); //printf("OnKeyDown %d %c\n", uc, uc); event.Skip(); }
// This method handles common code for SendKeyDown, SendKeyUp, and SendChar events. void wxApp::MacCreateKeyEvent( wxKeyEvent& event, wxWindow* focus , long keymessage , long modifiers , long when , wxChar uniChar ) { #if wxOSX_USE_COCOA_OR_CARBON short keycode, keychar ; keychar = short(keymessage & charCodeMask); keycode = short(keymessage & keyCodeMask) >> 8 ; if ( !(event.GetEventType() == wxEVT_CHAR) && (modifiers & (controlKey | shiftKey | optionKey) ) ) { // control interferes with some built-in keys like pgdown, return etc. therefore we remove the controlKey modifier // and look at the character after #ifdef __LP64__ // TODO new implementation using TextInputSources #else UInt32 state = 0; UInt32 keyInfo = KeyTranslate((Ptr)GetScriptManagerVariable(smKCHRCache), ( modifiers & (~(controlKey | shiftKey | optionKey))) | keycode, &state); keychar = short(keyInfo & charCodeMask); #endif } long keyval = wxMacTranslateKey(keychar, keycode) ; if ( keyval == keychar && ( event.GetEventType() == wxEVT_KEY_UP || event.GetEventType() == wxEVT_KEY_DOWN ) ) keyval = wxToupper( keyval ) ; // Check for NUMPAD keys. For KEY_UP/DOWN events we need to use the // WXK_NUMPAD constants, but for the CHAR event we want to use the // standard ascii values if ( event.GetEventType() != wxEVT_CHAR ) { if (keyval >= '0' && keyval <= '9' && keycode >= 82 && keycode <= 92) { keyval = (keyval - '0') + WXK_NUMPAD0; } else if (keycode >= 65 && keycode <= 81) { switch (keycode) { case 76 : keyval = WXK_NUMPAD_ENTER; break; case 81: keyval = WXK_NUMPAD_EQUAL; break; case 67: keyval = WXK_NUMPAD_MULTIPLY; break; case 75: keyval = WXK_NUMPAD_DIVIDE; break; case 78: keyval = WXK_NUMPAD_SUBTRACT; break; case 69: keyval = WXK_NUMPAD_ADD; break; case 65: keyval = WXK_NUMPAD_DECIMAL; break; default: break; } } } event.m_shiftDown = modifiers & shiftKey; event.m_rawControlDown = modifiers & controlKey; event.m_altDown = modifiers & optionKey; event.m_controlDown = modifiers & cmdKey; event.m_keyCode = keyval ; #if wxUSE_UNICODE event.m_uniChar = uniChar ; #endif event.m_rawCode = keymessage; event.m_rawFlags = modifiers; event.SetTimestamp(when); event.SetEventObject(focus); #else wxUnusedVar(event); wxUnusedVar(focus); wxUnusedVar(keymessage); wxUnusedVar(modifiers); wxUnusedVar(when); wxUnusedVar(uniChar); #endif }
void MainSequencer::OnChar(wxKeyEvent& event) { wxChar uc = event.GetUnicodeKey(); KeyBinding *binding = keyBindings.Find(uc); if (binding != NULL) { event.StopPropagation(); switch (binding->GetType()) { case TIMING_ADD: InsertTimingMarkFromRange(); break; case TIMING_SPLIT: SplitTimingMark(); break; case KEY_ZOOM_IN: PanelTimeLine->ZoomIn(); break; case KEY_ZOOM_OUT: PanelTimeLine->ZoomOut(); break; case RANDOM_EFFECT: PanelEffectGrid->Paste("Random\t\t\n"); break; case EFFECT_STRING: PanelEffectGrid->Paste(binding->GetEffectName() + "\t" + binding->GetEffectString() + "\t\n"); break; } } //printf("OnChar %d %c\n", uc, uc); switch(uc) { case 'c': case 'C': case WXK_CONTROL_C: if (event.CmdDown() || event.ControlDown()) { CopySelectedEffects(); PanelEffectGrid->SetCanPaste(); event.StopPropagation(); } break; case 'x': case 'X': case WXK_CONTROL_X: if (event.CmdDown() || event.ControlDown()) { CopySelectedEffects(); PanelEffectGrid->DeleteSelectedEffects(); event.StopPropagation(); } break; case 'v': case 'V': case WXK_CONTROL_V: if (event.CmdDown() || event.ControlDown()) { Paste(); event.StopPropagation(); } break; } }
void InputManager::OnKey(wxKeyEvent& e) { e.Skip(); printf("InputManager::OnKey %d\n", e.GetKeyCode()); }
/***************************************************** ** ** YogaEditorPanel --- OnChar ** ******************************************************/ void YogaEditorPanel::OnChar( wxKeyEvent &event ) { event.ResumePropagation( wxEVENT_PROPAGATE_MAX ); event.Skip(); }
void frmAbout::OnKeyUp(wxKeyEvent &evt) { if (evt.GetKeyCode() == WXK_ESCAPE) this->Close(); }
void WxFloatingFrame::OnCtrlTab(wxKeyEvent& Event) { WxTrackableWindowBase::HandleCtrlTab(GApp->EditorFrame, Event.ShiftDown()); }
void wxFlatButton::OnKeyDown(wxKeyEvent& event) { event.Skip(); }
void Grid::OnKeyDown(wxKeyEvent &event) { switch (event.GetKeyCode()) { case WXK_LEFT: case WXK_RIGHT: { int rows = GetNumberRows(); int cols = GetNumberCols(); int crow = GetGridCursorRow(); int ccol = GetGridCursorCol(); if (event.GetKeyCode() == WXK_LEFT) { if (crow == 0 && ccol == 0) { // do nothing } else if (ccol == 0) { SetGridCursor(crow - 1, cols - 1); } else { SetGridCursor(crow, ccol - 1); } } else { if (crow == rows - 1 && ccol == cols - 1) { // do nothing } else if (ccol == cols - 1) { SetGridCursor(crow + 1, 0); } else { SetGridCursor(crow, ccol + 1); } } #if wxUSE_ACCESSIBILITY // Make sure the new cell is made available to the screen reader mAx->SetCurrentCell(GetGridCursorRow(), GetGridCursorCol()); #endif } break; case WXK_TAB: { int rows = GetNumberRows(); int cols = GetNumberCols(); int crow = GetGridCursorRow(); int ccol = GetGridCursorCol(); if (event.ControlDown()) { int flags = wxNavigationKeyEvent::FromTab | ( event.ShiftDown() ? wxNavigationKeyEvent::IsBackward : wxNavigationKeyEvent::IsForward ); Navigate(flags); return; } else if (event.ShiftDown()) { if (crow == 0 && ccol == 0) { Navigate(wxNavigationKeyEvent::FromTab | wxNavigationKeyEvent::IsBackward); return; } else if (ccol == 0) { SetGridCursor(crow - 1, cols - 1); } else { SetGridCursor(crow, ccol - 1); } } else { if (crow == rows - 1 && ccol == cols - 1) { Navigate(wxNavigationKeyEvent::FromTab | wxNavigationKeyEvent::IsForward); return; } else if (ccol == cols - 1) { SetGridCursor(crow + 1, 0); } else { SetGridCursor(crow, ccol + 1); } } MakeCellVisible(GetGridCursorRow(), GetGridCursorCol()); #if wxUSE_ACCESSIBILITY // Make sure the new cell is made available to the screen reader mAx->SetCurrentCell(GetGridCursorRow(), GetGridCursorCol()); #endif } break; case WXK_RETURN: case WXK_NUMPAD_ENTER: { if (!IsCellEditControlShown()) { wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow); wxWindow *def = tlw->GetDefaultItem(); if (def && def->IsEnabled()) { wxCommandEvent cevent(wxEVT_COMMAND_BUTTON_CLICKED, def->GetId()); GetParent()->ProcessEvent(cevent); } } else { wxGrid::OnKeyDown(event); // This looks strange, but what it does is selects the cell when // enter is pressed after editing. Without it, Jaws and Window-Eyes // do not speak the new cell contents (the one below the edited one). SetGridCursor(GetGridCursorRow(), GetGridCursorCol()); } break; } default: wxGrid::OnKeyDown(event); break; } }
void CLocalListView::OnChar(wxKeyEvent& event) { int code = event.GetKeyCode(); if (code == WXK_DELETE) { if (GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED) == -1) { wxBell(); return; } wxCommandEvent tmp; OnMenuDelete(tmp); } else if (code == WXK_F2) { wxCommandEvent tmp; OnMenuRename(tmp); } else if (code == WXK_BACK) { if (!m_hasParent) { wxBell(); return; } wxString error; if (!m_pState->SetLocalDir(_T(".."), &error)) { if (error != _T("")) wxMessageBox(error, _("Failed to change directory"), wxICON_INFORMATION); else wxBell(); } } else if (code > 32 && code < 300 && !event.HasModifiers()) { // Keyboard navigation within items wxDateTime now = wxDateTime::UNow(); if (m_lastKeyPress.IsValid()) { wxTimeSpan span = now - m_lastKeyPress; if (span.GetSeconds() >= 1) m_prefix = _T(""); } m_lastKeyPress = now; wxChar tmp[2]; #if wxUSE_UNICODE tmp[0] = event.GetUnicodeKey(); #else tmp[0] = code; #endif tmp[1] = 0; wxString newPrefix = m_prefix + tmp; bool beep = false; int item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if (item != -1) { wxString text = GetData(item)->name; if (text.Length() >= m_prefix.Length() && !m_prefix.CmpNoCase(text.Left(m_prefix.Length()))) beep = true; } else if (m_prefix == _T("")) beep = true; int start = item; if (start < 0) start = 0; int newPos = FindItemWithPrefix(newPrefix, start); if (newPos == -1 && m_prefix == tmp && item != -1 && beep) { // Search the next item that starts with the same letter newPrefix = m_prefix; newPos = FindItemWithPrefix(newPrefix, item + 1); } m_prefix = newPrefix; if (newPos == -1) { if (beep) wxBell(); return; } item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); while (item != -1) { SetItemState(item, 0, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED); item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); } SetItemState(newPos, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED); EnsureVisible(newPos); } else event.Skip(); }
void wxCodeCompletionBox::StcKeyDown(wxKeyEvent& event) { switch(event.GetKeyCode()) { case WXK_UP: DoScrollUp(); break; case WXK_DOWN: DoScrollDown(); break; case WXK_PAGEDOWN: { int newindex = m_index + (LINES_PER_PAGE - 1); if(newindex >= (int)m_entries.size()) { newindex = (int)m_entries.size() - 1; } // only refresh if there was an actual change if(m_index != newindex) { m_index = newindex; DoDisplayTipWindow(); Refresh(); } break; } case WXK_PAGEUP: { int newindex = m_index - (LINES_PER_PAGE - 1); if(newindex < 0) { newindex = 0; } // only refresh if there was an actual change if(m_index != newindex) { m_index = newindex; DoDisplayTipWindow(); Refresh(); } break; } case WXK_ESCAPE: case WXK_LEFT: case WXK_RIGHT: case WXK_HOME: case WXK_END: case WXK_DELETE: case WXK_NUMPAD_DELETE: case WXK_ALT: case WXK_WINDOWS_LEFT: case WXK_WINDOWS_RIGHT: case WXK_CONTROL: DoDestroy(); event.Skip(); break; case WXK_TAB: case WXK_RETURN: case WXK_NUMPAD_ENTER: // Insert the selection InsertSelection(); DoDestroy(); break; default: event.Skip(); break; } }
bool VikeWin::OnKeyDown(wxKeyEvent &event) { bool skip = func->EspecialKeyHandler(this, event); GeneralHandler(event.GetKeyCode(), skip); return skip; }
void ContentBoxCtrol::OnKeyDown(wxKeyEvent& event) { // flags for DoHandleItemClick() int flags = ItemClick_Kbd; int current; switch ( event.GetKeyCode() ) { case WXK_HOME: current = 0; break; case WXK_END: current = GetRowCount() - 1; break; case WXK_DOWN: if ( m_current == (int)GetRowCount() - 1 ) return; current = m_current + 1; break; case WXK_UP: if ( m_current == wxNOT_FOUND ) current = GetRowCount() - 1; else if ( m_current != 0 ) current = m_current - 1; else // m_current == 0 return; break; case WXK_PAGEDOWN: PageDown(); current = GetVisibleRowsBegin(); break; case WXK_PAGEUP: if ( m_current == (int)GetVisibleRowsBegin() ) { PageUp(); } current = GetVisibleRowsBegin(); break; case WXK_SPACE: // hack: pressing space should work like a mouse click rather than // like a keyboard arrow press, so trick DoHandleItemClick() in // thinking we were clicked flags &= ~ItemClick_Kbd; current = m_current; break; #if (LENMUS_PLATFORM_WIN32 == 1) case WXK_TAB: // Since we are using wxWANTS_CHARS we need to send navigation // events for the tabs on MSW { wxNavigationKeyEvent ne; ne.SetDirection(!event.ShiftDown()); ne.SetCurrentFocus(this); ne.SetEventObject(this); GetParent()->GetEventHandler()->ProcessEvent(ne); } // fall through to default #endif default: event.Skip(); //continue processing the event current = 0; // just to silent the stupid compiler warnings wxUnusedVar(current); return; } if ( event.ShiftDown() ) flags |= ItemClick_Shift; if ( event.ControlDown() ) flags |= ItemClick_Ctrl; DoHandleItemClick(current, flags); }
/***************************************************** ** ** BasicView --- OnKeyDown ** ******************************************************/ void BasicView::OnKeyDown( wxKeyEvent &event ) { //printf( "BasicView::OnKeyDown\n" ); event.ResumePropagation( wxEVENT_PROPAGATE_MAX ); event.Skip(); }
void myTextCtrl::OnKeyUp(wxKeyEvent& event) { event.Skip(); }