void wxGxTreeViewBase::OnChar(wxKeyEvent& event) { if(event.GetModifiers() & wxMOD_ALT) return; if(event.GetModifiers() & wxMOD_CONTROL) return; if(event.GetModifiers() & wxMOD_SHIFT) return; switch(event.GetKeyCode()) { case WXK_DELETE: case WXK_NUMPAD_DELETE: if(m_pDeleteCmd) m_pDeleteCmd->OnClick(); break; case WXK_UP: SelectItem(GetPrevVisible(GetSelection())); break; case WXK_DOWN: SelectItem(GetNextVisible(GetSelection())); break; default: break; } }
void wxGxContentView::OnChar(wxKeyEvent& event) { if(event.GetModifiers() & wxMOD_ALT) return; if(event.GetModifiers() & wxMOD_CONTROL) return; switch(event.GetKeyCode()) { case WXK_DELETE: case WXK_NUMPAD_DELETE: if (event.GetModifiers() & wxMOD_SHIFT) { //TODO: complete delete } else { if (NULL != m_pDeleteCmd) { //TODO: delete to trash can m_pDeleteCmd->OnClick(); } } break; case WXK_UP: case WXK_DOWN: SelectItem(event.GetKeyCode(), event.GetModifiers() & wxMOD_SHIFT); break; default: break; } }
//--------------------------------------------------------- void CVIEW_Map_Control::On_Key_Down(wxKeyEvent &event) { if( m_pMap->Find_Layer(Get_Active_Layer()) && Get_Active_Layer()->Edit_On_Key_Down(event.GetKeyCode()) ) { return; } switch( event.GetKeyCode() ) { default: event.Skip(); break; case WXK_PAGEUP: _Zoom(m_pMap->Get_Extent().Get_Center(), true); break; case WXK_PAGEDOWN: _Zoom(m_pMap->Get_Extent().Get_Center(), false); break; case WXK_LEFT: _Move(wxPoint(-10, 0)); break; case WXK_RIGHT: _Move(wxPoint( 10, 0)); break; case WXK_UP: _Move(wxPoint( 0, -10)); break; case WXK_DOWN: _Move(wxPoint( 0, 10)); break; case WXK_F2: m_pMap->SaveAs_Image(); break; case 'C': if( event.GetModifiers() == wxMOD_CONTROL ) { m_pMap->SaveAs_Image_Clipboard(false); } else if( event.GetModifiers() == wxMOD_ALT ) { m_pMap->SaveAs_Image_Clipboard(GetClientSize().x, GetClientSize().y, -1); } break; case 'L': if( event.GetModifiers() == wxMOD_CONTROL ) { m_pMap->SaveAs_Image_Clipboard(true); } } }
void wxGISToolExecuteView::OnChar(wxKeyEvent& event) { if(event.GetModifiers() & wxMOD_ALT) return; if(event.GetModifiers() & wxMOD_CONTROL) return; if(event.GetModifiers() & wxMOD_SHIFT) return; switch(event.GetKeyCode()) { case WXK_DELETE: case WXK_NUMPAD_DELETE: if(m_pDeleteCmd) m_pDeleteCmd->OnClick(); break; case WXK_UP: { long nSelItem = GetNextItem(wxNOT_FOUND, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if(nSelItem == wxNOT_FOUND) SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); else { SetItemState(nSelItem, wxLIST_STATE_DONTCARE, wxLIST_STATE_SELECTED); if(nSelItem == 0) { SetItemState(GetItemCount() - 1, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); } else { SetItemState(nSelItem - 1, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); } } } break; case WXK_DOWN: { long nSelItem = GetNextItem(wxNOT_FOUND, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if(nSelItem == wxNOT_FOUND) SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); else { SetItemState(nSelItem, wxLIST_STATE_DONTCARE, wxLIST_STATE_SELECTED); if(nSelItem == GetItemCount() - 1) { SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); } else { SetItemState(nSelItem + 1, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); } } } break; default: break; } }
void STISpectrumDialog::OnLevelTableKeyPress( wxKeyEvent& event ) { #ifndef __WXMAC__ if( (event.GetModifiers() == 3) ) // Ctrl+C ascii translated code. #else if( (event.GetModifiers() == wxMOD_CMD) && // Command+C on Apple machines event.GetKeyCode() == 99 ) #endif { wxCommandEvent cmd(wxEVT_COMMAND_MENU_SELECTED, ID_LEVEL_COPY_SELECTION_MENU); OnLevelTableCopySelection(cmd); } }
void IncrementalSearch::OnKeyDown(wxKeyEvent& event) { if(m_pTextCtrl) { m_LastInsertionPoint = m_pTextCtrl->GetInsertionPoint(); } if(!m_IsAttached || !m_pEditor || !m_pEditor->GetControl() ) { event.Skip(); return; } if(event.GetModifiers() == wxMOD_ALT && event.GetKeyCode() == WXK_DELETE) { DoClearText(); } else if(event.GetModifiers() == wxMOD_SHIFT && event.GetKeyCode() == WXK_RETURN) { if(m_pToolbar->GetToolEnabled(XRCID("idIncSearchPrev"))) DoSearchPrev(); } else if(event.GetModifiers() == wxMOD_NONE && event.GetKeyCode() == WXK_ESCAPE) { cbStyledTextCtrl* control = m_pEditor->GetControl(); // delete all stylings for found phrases control->SetIndicatorCurrent(m_IndicFound); control->IndicatorClearRange(0, control->GetLength()); // then for highlighted phrases control->SetIndicatorCurrent(m_IndicHighlight); control->IndicatorClearRange(0, control->GetLength()); control->GotoPos(m_NewPos); CodeBlocksEvent evt(cbEVT_CURSOR_POS_SAVE); Manager::Get()->GetPluginManager()->NotifyPlugins(evt); if(Manager::Get()->GetConfigManager(_T("editor"))->ReadBool(_T("/incremental_search/select_found_text_on_escape"),false)) { m_SelStart = m_NewPos; m_SelEnd = m_SelStart + m_LengthFound; m_OldPos = m_NewPos; control->SetSelectionVoid(m_SelStart, m_SelEnd); } control->SetFocus(); } else { event.Skip(); } }
void FileEditorWnd::OnCharHook(wxKeyEvent& event) { int modifiers = event.GetModifiers(); auto keycode = event.GetKeyCode(); if (modifiers == wxMOD_CONTROL && keycode == 'S') // Save { save(); } else if (modifiers == wxMOD_CONTROL && keycode == 'R') { /* m_textCtrl->DiscardEdits(); m_textCtrl->LoadFile(m_file->fullpath.widen()); */ } else if (modifiers == 0 && keycode == WXK_F9) { doBreakpoint(m_textCtrl->GetCurrentLine()); } else // Skip this event (nothing we have to do) { event.Skip(); } }
// On mac command-stop does the same thing as Esc, let the base class know // about it bool wxDialog::IsEscapeKey(const wxKeyEvent& event) { if ( event.GetKeyCode() == '.' && event.GetModifiers() == wxMOD_CMD ) return true; return wxDialogBase::IsEscapeKey(event); }
void KeyMonitorTextCtrl::OnKey(wxKeyEvent &event) { if(event.GetKeyCode() != 308){ //printf("key:%d %d\n", event.GetKeyCode(), event.GetModifiers()); } // backspace cannot be used as shortcut key... if (event.GetKeyCode() == WXK_BACK) { // this text ctrl contains something and the user pressed backspace... // we must delete the keypress... Clear(); return; } if (event.GetEventType() == wxEVT_KEY_DOWN || (event.GetEventType() == wxEVT_KEY_UP && !IsValidKeyComb())) { // the user pressed some key combination which must be displayed // in this text control.... or he has just stopped pressing a // modifier key like shift, ctrl or alt without adding any // other alphanumeric char, thus generating an invalid keystroke // which must be cleared out... KeyBinder::Key key; key.code = event.GetKeyCode(); key.flags = event.GetModifiers(); SetValue(KeyBinder::GetKeyBindingAsText(key)); SetInsertionPointEnd(); } }
void wxTextCtrl::OnKeyDown(wxKeyEvent& event) { if ( event.GetModifiers() == wxMOD_CONTROL ) { switch( event.GetKeyCode() ) { case 'A': SelectAll(); return; case 'C': if ( CanCopy() ) Copy() ; return; case 'V': if ( CanPaste() ) Paste() ; return; case 'X': if ( CanCut() ) Cut() ; return; default: break; } } // no, we didn't process it event.Skip(); }
void CKeyInputCtrl::OnKeyDown(wxKeyEvent &event) { int nKeyCode = event.GetKeyCode(); OnKeysModifierChange(event.GetModifiers()); SetValue(GetKeyCodeAsString(nKeyCode)); event.Skip(true); }
/* MapCanvas::onKeyUp * Called when a key is released within the canvas *******************************************************************/ void MapCanvas::onKeyUp(wxKeyEvent& e) { // Send to editor context_->input().updateKeyModifiersWx(e.GetModifiers()); context_->input().keyUp(KeyBind::keyName(e.GetKeyCode())); e.Skip(); }
void CQueueViewBase::OnKeyDown(wxKeyEvent& event) { const int code = event.GetKeyCode(); const int mods = event.GetModifiers(); if (code == 'A' && (mods == wxMOD_CMD || mods == (wxMOD_CONTROL | wxMOD_META))) { for (unsigned int i = 0; i < (unsigned int)GetItemCount(); i++) SetItemState(i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); } else event.Skip(); }
/* InputKeyCtrl::onKeyDown * Called when a key is pressed in the control *******************************************************************/ void InputKeyCtrl::onKeyDown(wxKeyEvent& e) { // Ignore if modifier key if (e.GetKeyCode() == WXK_SHIFT || e.GetKeyCode() == WXK_ALT || e.GetKeyCode() == WXK_CONTROL || e.GetKeyCode() == WXK_COMMAND) { e.Skip(); return; } key = KeyBind::asKeyPress(e.GetKeyCode(), e.GetModifiers()); SetValue(key.as_string()); }
void cWindowInputCtrl::OnKey(wxKeyEvent& e) { if (e.GetModifiers() == wxMOD_CONTROL) { if (e.GetKeyCode() == 0x4B) { // K key cColorDialog *Dialog = new cColorDialog(wxGetApp().GetTopWindow(),wxID_ANY,wxString("Pick a Color"),wxDefaultPosition,wxSize(300,300)); Dialog->m_WindowID = m_WindowID; Dialog->m_WindowType = m_WindowType; Dialog->Ask(); return; } } e.Skip(); }
void DialogStyling::OnKeyDown(wxKeyEvent &evt) { // Move the beginning of the selection back one character so that backspace // actually does something if (evt.GetKeyCode() == WXK_BACK && !evt.GetModifiers()) { long from, to; style_name->GetSelection(&from, &to); if (from > 0) style_name->SetSelection(from - 1, to); } else evt.Skip(); }
void CLocalListView::OnKeyDown(wxKeyEvent& event) { #ifdef __WXMAC__ #define CursorModifierKey wxMOD_CMD #else #define CursorModifierKey wxMOD_ALT #endif const int code = event.GetKeyCode(); if (code == WXK_DELETE || code == WXK_NUMPAD_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_RIGHT && event.GetModifiers() == CursorModifierKey) { wxListEvent evt; evt.m_itemIndex = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED); OnItemActivated(evt); } else if (code == WXK_DOWN && event.GetModifiers() == CursorModifierKey) { wxCommandEvent cmdEvent; OnMenuUpload(cmdEvent); } else event.Skip(); }
void ExtImportPrefs::OnRuleTableKeyDown(wxKeyEvent& event) { int mods = event.GetModifiers(); if (mods & wxMOD_CMD && (event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_DOWN)) { DoOnRuleTableKeyDown (event.GetKeyCode()); } else { event.Skip(); } }
void MyFrame::OnCharHook(wxKeyEvent& evt) { bool handled = false; // This never gets called on OSX (since we moved to wxWidgets-3.0.0), so we // rely on the menu accelerators on the MyFrame to provide the keyboard // responses. For Windows and Linux, we keep this here so the keystrokes // work when other windows like the Drift Tool window have focus. if (evt.GetKeyCode() == 'B') { if (!evt.GetEventObject()->IsKindOf(wxCLASSINFO(wxTextCtrl))) { int modifiers; #ifdef __WXOSX__ modifiers = 0; if (wxGetKeyState(WXK_ALT)) modifiers |= wxMOD_ALT; if (wxGetKeyState(WXK_CONTROL)) modifiers |= wxMOD_CONTROL; if (wxGetKeyState(WXK_SHIFT)) modifiers |= wxMOD_SHIFT; if (wxGetKeyState(WXK_RAW_CONTROL)) modifiers |= wxMOD_RAW_CONTROL; #else modifiers = evt.GetModifiers(); #endif if (!modifiers) { pGuider->ToggleShowBookmarks(); bookmarks_menu->Check(MENU_BOOKMARKS_SHOW, pGuider->GetBookmarksShown()); handled = true; } else if (modifiers == wxMOD_CONTROL) { pGuider->DeleteAllBookmarks(); handled = true; } else if (modifiers == wxMOD_SHIFT) { pGuider->BookmarkLockPosition(); handled = true; } } } if (!handled) { evt.Skip(); } }
//--------------------------------------------------------------------------------------- bool ToolBox::process_key(wxKeyEvent& event) { //returns true if event is accepted and processed bool fProcessed = true; int key = event.GetKeyCode(); int keyFlags = event.GetModifiers(); KeyTranslator* pTr = m_appScope.get_key_translator(); int cmd = pTr->translate(m_context, key, keyFlags); if (cmd == k_cmd_null) return false; //not processed //page selection commands switch (cmd) { case k_cmd_select_toolpage_clefs: SelectToolPage(k_page_clefs); break; case k_cmd_select_toolpage_notes: SelectToolPage(k_page_notes); break; case k_cmd_select_toolpage_barlines: SelectToolPage(k_page_barlines); break; case k_cmd_select_toolpage_symbols: SelectToolPage(k_page_symbols); break; //TO_ADD: code to select the new page to add default: fProcessed = false; } //if not processed, check if specific for current selected tool panel if (!fProcessed) { ToolPage* pCurPage = get_selected_page(); long context = pCurPage->get_key_translation_context(); int cmd = pTr->translate(context, key, keyFlags); fProcessed = pCurPage->process_command(cmd); } return fProcessed; }
void CLocalListView::OnKeyDown(wxKeyEvent& event) { const int code = event.GetKeyCode(); if (code == 'A' && event.GetModifiers() == wxMOD_CMD) { for (int i = m_hasParent ? 1 : 0; i < GetItemCount(); i++) { SetItemState(i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); } } else OnChar(event); //event.Skip(); }
void HotkeyConfigDialog::OnKeyDown(wxKeyEvent& event) { if (ClickedButton != nullptr) { // Save the key g_Pressed = event.GetKeyCode(); g_Modkey = event.GetModifiers(); // Don't allow modifier keys if (g_Pressed == WXK_CONTROL || g_Pressed == WXK_ALT || g_Pressed == WXK_SHIFT || g_Pressed == WXK_COMMAND) return; // Use the space key to set a blank key if (g_Pressed == WXK_SPACE) { SaveButtonMapping(ClickedButton->GetId(), -1, 0); SetButtonText(ClickedButton->GetId(), wxString()); } else { // Check if the hotkey combination was already applied to another button // and unapply it if necessary. for (wxButton* btn : m_Button_Hotkeys) { // We compare against this to see if we have a duplicate bind attempt. wxString existingHotkey = btn->GetLabel(); wxString tentativeModKey = WxUtils::WXKeymodToString(g_Modkey); wxString tentativePressedKey = WxUtils::WXKeyToString(g_Pressed); wxString tentativeHotkey(tentativeModKey + tentativePressedKey); // Found a button that already has this binding. Unbind it. if (tentativeHotkey == existingHotkey) { SaveButtonMapping(btn->GetId(), -1, 0); SetButtonText(btn->GetId(), wxString()); } } // Proceed to apply the binding to the selected button. SetButtonText(ClickedButton->GetId(), WxUtils::WXKeyToString(g_Pressed), WxUtils::WXKeymodToString(g_Modkey)); SaveButtonMapping(ClickedButton->GetId(), g_Pressed, g_Modkey); } EndGetButtons(); } }
/* FindReplacePanel::onKeyDown * Called when a key is pressed while the panel has focus *******************************************************************/ void FindReplacePanel::onKeyDown(wxKeyEvent& e) { // Check if keypress matches any keybinds wxArrayString binds = KeyBind::getBinds(KeyBind::asKeyPress(e.GetKeyCode(), e.GetModifiers())); // Go through matching binds bool handled = false; for (unsigned a = 0; a < binds.size(); a++) { string name = binds[a]; // Find next if (name == "ted_findnext") { text_editor->findNext(getFindText(), getFindFlags()); handled = true; } // Find previous else if (name == "ted_findprev") { text_editor->findPrev(getFindText(), getFindFlags()); handled = true; } // Replace next else if (name == "ted_replacenext") { text_editor->replaceCurrent(getFindText(), getReplaceText(), getFindFlags()); handled = true; } // Replace all else if (name == "ted_replaceall") { text_editor->replaceAll(getFindText(), getReplaceText(), getFindFlags()); handled = true; } } if (!handled) { // Esc = close panel if (e.GetKeyCode() == WXK_ESCAPE) text_editor->showFindReplacePanel(false); else e.Skip(); } }
void VideoSlider::OnKeyDown(wxKeyEvent &event) { if (c->videoController->IsPlaying()) return; if (hotkey::check("Video", c, event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers())) return; // Forward up/down to grid if (event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_DOWN) { c->subsGrid->GetEventHandler()->ProcessEvent(event); c->subsGrid->SetFocus(); return; } event.Skip(); }
bool Accelerators::HandleKeyEvent(wxKeyEvent& event) { int hash = event.GetModifiers(); #ifdef __WXMSW__ // GetModifiers does not report the windows keys if (::GetKeyState(VK_LWIN) < 0) hash |= 0x0008; // wxMOD_META (Left Windows key) if (::GetKeyState(VK_RWIN) < 0) hash |= 0x0008; // wxMOD_META (Right Windows key) #endif if(shouldIgnore(event.GetKeyCode())) return true; wxLogDebug(wxT("Hash: %d %d %d"), ((hash << 24) | event.GetKeyCode()), hash, event.GetKeyCode()); hash = (hash << 24) | event.GetKeyCode(); return MatchMenus(hash); }
void SearchTextCtrl::OnKeyDown(wxKeyEvent& event) { if (event.GetKeyCode() == WXK_DOWN && event.GetModifiers() == 0) { // Move to the next window. if (m_nextWindow != NULL) { m_nextWindow->SetFocus(); } } else { // Keep processing the event. event.Skip(true); } }
// This is hackage to correct a problem on Leopard where the // caret jumps up two lines when the up arrow is pressed and // the caret is at the beginning of the line. void NyqTextCtrl::OnKeyDown(wxKeyEvent & e) { e.Skip(); if (UMAGetSystemVersion() >= 0x1050) { if (e.GetKeyCode() == WXK_UP && e.GetModifiers() == 0) { long x; long y; PositionToXY(GetInsertionPoint(), &x, &y); if (x == 0 && y > 1) { y--; SetInsertionPoint(XYToPosition(x, y) - 1); e.Skip(false); } } } }
void OnChar(wxKeyEvent& event) { if (event.GetKeyCode() == WXK_TAB) return; #ifdef __WXMAC__ if (event.GetKeyCode() == 'v' && event.GetModifiers() == wxMOD_CMD) { Paste(); wxTextCtrl* text = ((wxTextCtrl*)m_text); text->SetStyle(0, text->GetLastPosition(), GetDefaultTextCtrlStyle(text)); return; } #endif event.Skip(); }
bool Interactor2DVolumeEdit::ProcessKeyDownEvent( wxKeyEvent& event, RenderView* renderview ) { UpdateCursor( event, renderview ); RenderView2D* view = ( RenderView2D* )renderview; if ( event.GetModifiers() == wxMOD_ALT && event.GetKeyCode() == 'H' ) { Contour2D* c2d = view->GetContour2D(); c2d->SetVisible( !c2d->IsVisible() ); view->NeedRedraw(); return false; } if ( !m_bEditing ) return Interactor2D::ProcessKeyDownEvent( event, renderview ); else return false; }
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); } }