void NewtonDemos::KeyUp(const wxKeyEvent &event) { m_shiftKey = event.ShiftDown(); m_controlKey = event.ControlDown(); // if (!event.GetModifiers()) { int keyCode = event.GetKeyCode(); int code = keyCode & 0xff; m_key[m_keyMap[code]] = false; // } }
void LabelTrack::KeyEvent(double sel0, double sel1, wxKeyEvent & event) { long keyCode = event.KeyCode(); if (mSelIndex >= 0) { switch (keyCode) { case WXK_BACK:{ int len = mLabels[mSelIndex]->title.Length(); if (len > 0) mLabels[mSelIndex]->title = mLabels[mSelIndex]->title.Left(len - 1); } break; case WXK_RETURN: if (mLabels[mSelIndex]->title == "") { delete mLabels[mSelIndex]; mLabels.RemoveAt(mSelIndex); } mSelIndex = -1; break; case WXK_TAB: if (event.ShiftDown()) { if (mSelIndex > 0) mSelIndex--; } else { if (mSelIndex < (int)mLabels.Count() - 1) mSelIndex++; } break; default: mLabels[mSelIndex]->title += keyCode; break; } } else { // Create new label LabelStruct *l = new LabelStruct(); l->t = sel0; l->title += wxChar(keyCode); int len = mLabels.Count(); int pos = 0; while (pos < len && l->t > mLabels[pos]->t) pos++; mLabels.Insert(l, pos); mSelIndex = pos; } }
void YardKeybrd::OnChar(wxKeyEvent & event){ if (event.GetKeyCode() == 8){ DeleteChar(); }else{ if (!event.ShiftDown()) screencontents.Append(event.GetKeyCode()); else screencontents.Append(event.GetKeyCode() + 32); } RefreshScreen(); }
/// Key press void InstanceCtrl::OnChar(wxKeyEvent& event) { int flags = 0; if (event.ControlDown()) flags |= wxINST_CTRL_DOWN; if (event.ShiftDown()) flags |= wxINST_SHIFT_DOWN; if (event.AltDown()) flags |= wxINST_ALT_DOWN; if (event.GetKeyCode() == WXK_LEFT || event.GetKeyCode() == WXK_RIGHT || event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_DOWN || event.GetKeyCode() == WXK_HOME || event.GetKeyCode() == WXK_PAGEUP || event.GetKeyCode() == WXK_PAGEDOWN || event.GetKeyCode() == WXK_END) { Navigate(event.GetKeyCode(), flags); } if (event.GetKeyCode() == WXK_RETURN) { InstanceCtrlEvent cmdEvent( wxEVT_COMMAND_INST_ACTIVATE, GetId()); cmdEvent.SetEventObject(this); cmdEvent.SetFlags(flags); GetEventHandler()->ProcessEvent(cmdEvent); } else if (event.GetKeyCode() == WXK_DELETE) { InstanceCtrlEvent cmdEvent( wxEVT_COMMAND_INST_DELETE, GetId()); cmdEvent.SetEventObject(this); cmdEvent.SetFlags(flags); GetEventHandler()->ProcessEvent(cmdEvent); } else if (event.GetKeyCode() == WXK_F2) { InstanceCtrlEvent cmdEvent( wxEVT_COMMAND_INST_RENAME, GetId()); cmdEvent.SetEventObject(this); cmdEvent.SetFlags(flags); GetEventHandler()->ProcessEvent(cmdEvent); } else event.Skip(); }
void SymbolSymmetryEditor::onKeyChange(wxKeyEvent& ev) { if (symmetryMoveAction) { if (ev.GetKeyCode() == WXK_CONTROL || ev.GetKeyCode() == WXK_SHIFT) { // changed constrains symmetryMoveAction->constrain = ev.ControlDown(); symmetryMoveAction->snap = ev.ShiftDown() != settings.symbol_grid_snap ? settings.symbol_grid_size : 0; control.Refresh(false); } else if (ev.GetKeyCode() == WXK_ESCAPE) { // cancel drawing resetActions(); } } }
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 CamuleDlg::OnKeyPressed(wxKeyEvent& event) { if (event.GetKeyCode() == WXK_F1) { // Ctrl/Alt/Shift must not be pressed, to avoid // conflicts with other (global) shortcuts. if (!event.HasModifiers() && !event.ShiftDown()) { LaunchUrl(wxT("http://wiki.amule.org")); return; } } event.Skip(); }
void WinEDA_DrawPanel::OnKeyEvent(wxKeyEvent& event) /****************************************************/ { long key, localkey; bool escape = FALSE; key = localkey = event.m_keyCode; switch( localkey ) { case WXK_CONTROL: case WXK_CAPITAL: case WXK_SHIFT: case WXK_NUMLOCK: case WXK_LBUTTON: case WXK_RBUTTON: case 0x0135: /* Alt key */ return; case WXK_ESCAPE: escape = m_AbortRequest = TRUE; break; } if( event.ControlDown() ) localkey |= GR_KB_CTRL; if( event.AltDown() ) localkey |= GR_KB_ALT; if( event.ShiftDown() && (key > 256) ) localkey |= GR_KB_SHIFT; wxClientDC DC(this); BASE_SCREEN * Screen = GetScreen(); PrepareGraphicContext(&DC); g_KeyPressed = localkey; if ( escape ) { if( Screen->ManageCurseur && Screen->ForceCloseManageCurseur ) { SetCursor(m_PanelCursor = m_PanelDefaultCursor); Screen->ForceCloseManageCurseur(m_Parent, &DC); SetCursor(m_PanelCursor = m_PanelDefaultCursor); } else m_Parent->SetToolID(0, m_PanelCursor = m_PanelDefaultCursor = wxCURSOR_ARROW, wxEmptyString); } m_Parent->GeneralControle(&DC, Screen->m_MousePosition); }
PlatformKeyboardEvent::PlatformKeyboardEvent(wxKeyEvent& event) { m_text = wxString(event.GetUnicodeKey()); m_unmodifiedText = m_text; m_keyIdentifier = keyIdentifierForWxKeyCode(event.GetKeyCode()); m_isKeyUp = event.GetEventType() == wxEVT_KEY_UP; m_autoRepeat = false; // FIXME: not correct. m_WindowsKeyCode = windowsKeyCodeForKeyEvent(event.GetKeyCode()); m_isKeypad = (event.GetKeyCode() >= WXK_NUMPAD_SPACE) && (event.GetKeyCode() <= WXK_NUMPAD_DIVIDE); m_shiftKey = event.ShiftDown(); m_ctrlKey = event.CmdDown(); m_altKey = event.AltDown(); m_metaKey = event.MetaDown(); }
void HtMainFrame::OnKeyDown (wxKeyEvent &event) { // Keyboard shortcuts to change the current active notebook tab. if (event.ControlDown() && event.GetKeyCode() == WXK_TAB) { bool goForward = !event.ShiftDown(); GetNotebook()->AdvanceSelection(goForward); return; } // resume default event propagation event.Skip(); }
void AudacityApp::OnKey(wxKeyEvent& event) { AudacityProject *audacityPrj = GetActiveProject(); wxString newStr = ""; long key = event.GetKeyCode(); if(event.ControlDown()) newStr += "Ctrl+"; if(event.AltDown()) newStr += "Alt+"; if(event.ShiftDown()) newStr += "Shift+"; if (event.ControlDown() && key >= 1 && key <= 26) newStr += (char)(64 + key); else if (key >= 33 && key <= 126) newStr += (char)key; else if (key == WXK_BACK) newStr = "Backspace"; else if (key == WXK_DELETE) newStr = "Delete"; else if (key == WXK_SPACE) newStr = "Spacebar"; else { event.Skip(); return; // Don't change it if we don't recognize the key } if(audacityPrj->IsActive()) { int commandIndex = audacityPrj->FindCommandByCombos(newStr); if(audacityPrj->GetCommandState(commandIndex) == enabledMenu) { audEventFunction audFunc = audacityPrj->GetCommandFunc(commandIndex); if(audFunc) (audacityPrj->*((wxEventFunction) audFunc))(event); return; } } event.Skip(); }
void CRemoteTreeView::OnKeyDown(wxKeyEvent& event) { if (event.GetKeyCode() != WXK_TAB) { event.Skip(); return; } wxNavigationKeyEvent navEvent; navEvent.SetEventObject(this); navEvent.SetDirection(!event.ShiftDown()); navEvent.SetFromTab(true); navEvent.ResumePropagation(1); ProcessEvent(navEvent); }
void Edit::OnKeyDown (wxKeyEvent &event) { if (CallTipActive()) CallTipCancel(); if (event.GetKeyCode() == WXK_SPACE && event.ControlDown() && event.ShiftDown()) { int pos = GetCurrentPos(); CallTipSetBackground(*wxYELLOW); CallTipShow(pos, "This is a CallTip with multiple lines.\n" "It is meant to be a context sensitive popup helper for the user."); return; } event.Skip(); }
virtual void OnKeydown(wxKeyEvent& event) { int key = event.GetKeyCode(); if(HasCapture() && key == WXK_ESCAPE) { KillMouseFocus(); return; } // printf("kd:%c\n", key); dword flags = KF_DOWN|OpJoyKeyFlags(); if(event.AltDown()) flags |= KF_ALT; if(event.ShiftDown()) flags |= KF_SHIFT; TranslateKey(key, flags); Handler()->OnKey(key, flags); }
void OnKeyDown(wxKeyEvent& event) { if (event.GetKeyCode() != WXK_TAB) { event.Skip(); return; } wxNavigationKeyEvent navEvent; navEvent.SetEventObject(m_parent); navEvent.SetDirection(!event.ShiftDown()); navEvent.SetFromTab(true); navEvent.ResumePropagation(1); m_parent->ProcessEvent(navEvent); }
void LogFinderFrame::OnTabKeyPress(wxKeyEvent& Event) { wxWindow *Window = FindFocus(); if(Event.GetKeyCode() == WXK_TAB) { bool Backward = Event.ShiftDown(); switch (Window->GetId()) { case ID_TEXT_FILE_PATH: if(Backward) FindWindow(ID_EXPORT_BUTTON)->SetFocus(); else FindWindow(ID_FILE_BUTTON)->SetFocus(); break; case ID_FILE_BUTTON: if(Backward) FindWindow(ID_TEXT_FILE_PATH)->SetFocus(); else FindWindow(ID_WORD_SEARCH)->SetFocus(); break; case ID_WORD_SEARCH: if(Backward) FindWindow(ID_FILE_BUTTON)->SetFocus(); else FindWindow(ID_SEARCH_BUTTON)->SetFocus(); break; case ID_SEARCH_BUTTON: if(Backward) FindWindow(ID_WORD_SEARCH)->SetFocus(); else FindWindow(ID_EXPORT_BUTTON)->SetFocus(); break; case ID_EXPORT_BUTTON: if(Backward) FindWindow(ID_SEARCH_BUTTON)->SetFocus(); else FindWindow(ID_TEXT_FILE_PATH)->SetFocus(); break; default: if(Backward) FindWindow(ID_EXPORT_BUTTON)->SetFocus(); else FindWindow(ID_TEXT_FILE_PATH)->SetFocus(); } } }
void wxTabTraversalWrapperCharHook(wxKeyEvent &event) { #ifdef __WXMAC__ // Compensate for the regressions in TAB key navigation // due to the switch to wxWidgets 3.0.2 if (event.GetKeyCode() == WXK_TAB) { wxWindow::FindFocus()->Navigate( event.ShiftDown() ? wxNavigationKeyEvent::IsBackward : wxNavigationKeyEvent::IsForward ); return; } #endif event.Skip(); }
void LoginForm::onFormChar(wxKeyEvent& event) { if (event.m_keyCode == WXK_TAB) { processTab(!event.ShiftDown(), event.GetId()); } else { int32 keyCode = event.GetKeyCode(); if (!event.HasModifiers() && ((keyCode >= '0' && keyCode <= '9') || (keyCode >= 'a' && keyCode <= 'z') || (keyCode >= 'A' && keyCode <= 'Z' ))) { m_tbUsername->SetFocus(); m_tbUsername->SetValue((char)keyCode); m_tbUsername->SetInsertionPointEnd(); } } }
void NewtonDemos::KeyDown(const wxKeyEvent &event) { int keyCode = event.GetKeyCode(); if (keyCode == WXK_ESCAPE) { // send a display refresh event in case the runtime update is stopped bu the user. wxMenuEvent exitEvent (wxEVT_COMMAND_MENU_SELECTED, wxID_EXIT); GetEventHandler()->ProcessEvent(exitEvent); } m_shiftKey = event.ShiftDown(); m_controlKey = event.ControlDown(); // if (!event.GetModifiers()) { int code = keyCode & 0xff; m_key[m_keyMap[code]] = true; // } }
void wxSpinCtrl::OnChar ( wxKeyEvent& rEvent ) { switch (rEvent.GetKeyCode()) { case WXK_RETURN: { wxCommandEvent vEvent( wxEVT_COMMAND_TEXT_ENTER ,m_windowId ); wxString sVal = wxGetWindowText(m_hWndBuddy); InitCommandEvent(vEvent); vEvent.SetString(sVal); vEvent.SetInt(GetValue()); if (HandleWindowEvent(vEvent)) return; break; } case WXK_TAB: // // Always produce navigation event - even if we process TAB // ourselves the fact that we got here means that the user code // decided to skip processing of this TAB - probably to let it // do its default job. // { wxNavigationKeyEvent vEventNav; vEventNav.SetDirection(!rEvent.ShiftDown()); vEventNav.SetWindowChange(rEvent.ControlDown()); vEventNav.SetEventObject(this); if (GetParent()->HandleWindowEvent(vEventNav)) return; } break; } // // No, we didn't process it // rEvent.Skip(); } // end of wxSpinCtrl::OnChar
void SymbolList::OnSearchChar(wxKeyEvent& event) { switch ( event.GetKeyCode() ) { case WXK_UP: m_listBox->SelectPrev(); return; case WXK_DOWN: m_listBox->SelectNext(); return; case WXK_ESCAPE: if (event.ShiftDown()) m_parentFrame.CloseSymbolList(); if (m_editorSymbols) m_parentFrame.FocusEditor(); //m_editorCtrl->SetFocus(); return; } // no, we didn't process it event.Skip(); }
PlatformKeyboardEvent::PlatformKeyboardEvent(wxKeyEvent& event) { if (event.GetEventType() == wxEVT_KEY_UP) m_type = PlatformEvent::KeyUp; else if (event.GetEventType() == wxEVT_KEY_DOWN) m_type = PlatformEvent::KeyDown; else if (event.GetEventType() == wxEVT_CHAR) m_type = PlatformEvent::Char; else ASSERT_NOT_REACHED(); if (m_type != PlatformEvent::Char) m_keyIdentifier = keyIdentifierForWxKeyCode(event.GetKeyCode()); else { //ENTER is an editing command processed as a char (only Enter and Tab are) //unfortunately the unicode key for numpad_enter (370) is NOT what we want here (13) //The unicode values for normal enter and tab are the same as the ASCII values, thus ok //Note that I think this a wx bug, as the Character Code is actually 13 when //numpad_enter is a CHAR event. if (event.GetKeyCode() == 13 && event.GetUnicodeKey() == wxChar(370)) m_text = "\r"; else m_text = wxString(event.GetUnicodeKey()); m_unmodifiedText = m_text; } m_autoRepeat = false; // FIXME: not correct. m_windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(event.GetKeyCode()); m_nativeVirtualKeyCode = event.GetKeyCode(); m_isKeypad = (event.GetKeyCode() >= WXK_NUMPAD_SPACE) && (event.GetKeyCode() <= WXK_NUMPAD_DIVIDE); m_modifiers = 0; if (event.ShiftDown()) m_modifiers |= ShiftKey; if (event.CmdDown()) m_modifiers |= CtrlKey; if (event.AltDown()) m_modifiers |= AltKey; if (event.MetaDown()) m_modifiers |= MetaKey; m_timestamp = WTF::currentTime(); }
void TimeEdit::OnKeyDown(wxKeyEvent &event) { int kc = event.GetKeyCode(); // Needs to be done here to trump user-defined hotkeys int key = event.GetUnicodeKey(); if (event.CmdDown()) { if (key == 'C' || key == 'X') CopyTime(); else if (key == 'V') PasteTime(); else event.Skip(); return; } // Shift-Insert would paste the stuff anyway // but no one updates the private "time" variable. if (event.ShiftDown() && kc == WXK_INSERT) { PasteTime(); return; } if (byFrame || insert) { event.Skip(); return; } // Overwrite mode stuff // On OS X backspace is reported as delete #ifdef __APPLE__ if (kc == WXK_DELETE) kc = WXK_BACK; #endif // Back just moves cursor back one without deleting if (kc == WXK_BACK) { long start = GetInsertionPoint(); if (start > 0) SetInsertionPoint(start - 1); } // Delete just does nothing else if (kc != WXK_DELETE) event.Skip(); }
void SubsTextEditCtrl::OnKeyDown(wxKeyEvent &event) { if (osx::ime::process_key_event(this, event)) return; event.Skip(); // Workaround for wxSTC eating tabs. if (event.GetKeyCode() == WXK_TAB) Navigate(event.ShiftDown() ? wxNavigationKeyEvent::IsBackward : wxNavigationKeyEvent::IsForward); else if (event.GetKeyCode() == WXK_RETURN && event.GetModifiers() == wxMOD_SHIFT) { auto sel_start = GetSelectionStart(), sel_end = GetSelectionEnd(); wxCharBuffer old = GetTextRaw(); std::string data(old.data(), sel_start); data.append("\\N"); data.append(old.data() + sel_end, old.length() - sel_end); SetTextRaw(data.c_str()); SetSelection(sel_start + 2, sel_start + 2); event.Skip(false); } }
void PythonIOCtrl::OnUserInput(wxKeyEvent& ke) { if(ke.GetModifiers()==wxMOD_CONTROL) { // wxMessageBox(_T("control pressed")); // wxMessageBox(wxString::Format(_("Key: %i"),ke.GetKeyCode())); // if(ke.GetKeyCode()==4) // { // m_pyctrl->DispatchCode(GetValue()); // would need to retrieve the code control's value //// if(m_pyctrl->DispatchCode(GetValue())) //// ChangeValue(_T("")); // return; // } if(ke.GetKeyCode()==5) { m_pyctrl->BreakCode(); return; } } if(ke.GetKeyCode()==WXK_RETURN) { if(!ke.ShiftDown() && !ke.ControlDown()) { if(m_line_entry_mode) { m_line_entry_mode=false; SetEditable(false); wxString line; if(m_line_entry_point<GetLastPosition()) line=GetRange(m_line_entry_point,GetLastPosition()); line.Replace(_T("\n"),_T("")); //will cause major problems if there is more than one line feed returned here, so we remove them (TODO: fix on server side?? server should treat buffered lines as new input without errors) line.Replace(_T("\r"),_T("")); line.Append(_T("\n")); AppendText(_T("\n")); m_pyctrl->stdin_append(line); m_pyctrl->Continue(); } } } ke.Skip(); }
void wxTextCtrl::OnChar( wxKeyEvent& rEvent ) { switch (rEvent.GetKeyCode()) { case WXK_RETURN: if ( !(m_windowStyle & wxTE_MULTILINE) ) { wxCommandEvent vEvent(wxEVT_COMMAND_TEXT_ENTER, m_windowId); vEvent.SetEventObject(this); if ( GetEventHandler()->ProcessEvent(vEvent)) return; } //else: multiline controls need Enter for themselves break; case WXK_TAB: // always produce navigation event - even if we process TAB // ourselves the fact that we got here means that the user code // decided to skip processing of this TAB - probably to let it // do its default job. // // NB: Notice that Ctrl-Tab is handled elsewhere and Alt-Tab is // handled by Windows { wxNavigationKeyEvent vEventNav; vEventNav.SetDirection(!rEvent.ShiftDown()); vEventNav.SetWindowChange(false); vEventNav.SetEventObject(this); if ( GetEventHandler()->ProcessEvent(vEventNav) ) return; } break; } rEvent.Skip(); } // end of wxTextCtrl::OnChar
void KeyConfigPrefs::OnFilterKeyDown(wxKeyEvent & e) { wxTextCtrl *t = (wxTextCtrl *)e.GetEventObject(); int keycode = e.GetKeyCode(); // Make sure we can navigate away from the hotkey textctrl. // On Linux and OSX, it an get stuck, but it doesn't hurt // to do it for Windows as well. if (keycode == WXK_TAB) { wxNavigationKeyEvent nevent; nevent.SetWindowChange(e.ControlDown()); nevent.SetDirection(!e.ShiftDown()); nevent.SetEventObject(t); nevent.SetCurrentFocus(t); t->GetParent()->GetEventHandler()->ProcessEvent(nevent); return; } if (mViewType == ViewByKey) { wxString key = KeyStringDisplay(KeyEventToKeyString(e)); t->SetValue(key); if (key != wxEmptyString) { mView->SetFilter(t->GetValue()); } } else { if (keycode == WXK_RETURN) { mFilterPending = false; mView->SetFilter(t->GetValue()); } else { mFilterPending = true; mFilterTimer.Start(500, wxTIMER_ONE_SHOT); e.Skip(); } } }
void LoginForm::onChar(wxKeyEvent& event) { if (event.m_keyCode == WXK_TAB) { processTab(!event.ShiftDown(), event.GetId()); } else { #ifndef UI_HIDE_AUTOLOGIN if (event.GetId() == m_cbRemPass->GetId()) { if (event.m_keyCode == WXK_RETURN) doLogin(); else if (event.m_keyCode == ' ') m_cbRemPass->SetValue(!m_cbRemPass->GetValue()); } #endif event.Skip(); } }
void KeyConfigPrefs::OnHotkeyKeyDown(wxKeyEvent & e) { wxTextCtrl *t = (wxTextCtrl *)e.GetEventObject(); // Make sure we can navigate away from the hotkey textctrl. // On Linux and OSX, it can get stuck, but it doesn't hurt // to do it for Windows as well. // // Mac note: Don't waste time trying to figure out why the // focus goes back to the prefs tree. Unless Voiceover is // active, buttons on the Mac do not accept focus and all the // controls between this one and the tree control are buttons. if (e.GetKeyCode() == WXK_TAB) { NavigateIn(e.ShiftDown() ? wxNavigationKeyEvent::IsBackward : wxNavigationKeyEvent::IsForward); return; } t->SetValue(KeyStringDisplay(KeyEventToKeyString(e))); }
void wxWebView::OnKeyEvents(wxKeyEvent& event) { WebCore::Frame* frame = 0; if (m_mainFrame) frame = m_mainFrame->GetFrame(); if (frame && frame->view()) { // WebCore doesn't handle these events itself, so we need to do // it and not send the event down or else CTRL+C will erase the text // and replace it with c. if (event.CmdDown() && event.GetEventType() == wxEVT_KEY_UP) { if (event.GetKeyCode() == static_cast<int>('C')) Copy(); else if (event.GetKeyCode() == static_cast<int>('X')) Cut(); else if (event.GetKeyCode() == static_cast<int>('V')) Paste(); else if (event.GetKeyCode() == static_cast<int>('Z')) { if (event.ShiftDown()) { if (m_mainFrame->CanRedo()) m_mainFrame->Redo(); } else { if (m_mainFrame->CanUndo()) m_mainFrame->Undo(); } } } else { WebCore::PlatformKeyboardEvent wkEvent(event); if (wkEvent.type() == WebCore::PlatformKeyboardEvent::Char && wkEvent.altKey()) frame->eventHandler()->handleAccessKey(wkEvent); else frame->eventHandler()->keyEvent(wkEvent); } } // make sure we get the character event. if (event.GetEventType() != wxEVT_CHAR) event.Skip(); }