void ENVIRONMENT_VARIABLE_CHAR_VALIDATOR::OnChar( wxKeyEvent& aEvent ) { wxTextValidator::OnChar( aEvent ); // Special key or error in valid character check already occurred. if( aEvent.GetSkipped() ) return; // Check if first character is valid. Cannot be number. int keyCode = aEvent.GetKeyCode(); wxString str( (wxUniChar)keyCode, 1 ); wxString numbers( wxT( "0123456789" ) ); if( (m_stringValue->IsEmpty() && numbers.Contains( str )) || (!m_stringValue->IsEmpty() && numbers.Contains( m_stringValue[0])) ) { if( !wxValidator::IsSilent() ) wxBell(); // eat message return; } else { aEvent.Skip(); } }
void klsGLCanvas::wxKeyDown(wxKeyEvent& event) { reclaimViewport(); // Give the subclassed handler first dibs on the event: OnKeyDown( event ); // If the subclassed handler took the event, then don't handle it: if( event.GetSkipped() ) return; switch (event.GetKeyCode()) { case WXK_LEFT: case WXK_NUMPAD_LEFT: translatePan(-PAN_STEP * getZoom(), 0.0); break; case WXK_RIGHT: case WXK_NUMPAD_RIGHT: translatePan(+PAN_STEP * getZoom(), 0.0); break; case WXK_UP: case WXK_NUMPAD_UP: translatePan(0.0, PAN_STEP * getZoom()); break; case WXK_DOWN: case WXK_NUMPAD_DOWN: translatePan(0.0, -PAN_STEP * getZoom()); break; case 43: // + key on top row (Works for both '+' and '=') //if (!shiftKeyOn) break; case WXK_NUMPAD_ADD: setZoom( getZoom() * ZOOM_STEP ); break; case 45: // - key on top row (Works for both '-' and '_') case WXK_NUMPAD_SUBTRACT: setZoom( getZoom() / ZOOM_STEP ); break; default: event.Skip(); break; } updateMiniMap(); }
/////////////// // Key pressed void AegisubApp::OnKey(wxKeyEvent &event) { //frame->audioBox->audioDisplay->AddPendingEvent(event); if (!event.GetSkipped()) { event.Skip(); } }