Пример #1
0
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;
    }
}
Пример #2
0
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);
		}
	}
}
Пример #4
0
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;
    }
}
Пример #5
0
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);
    }
}
Пример #6
0
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();
    }
}
Пример #7
0
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();
	}
}
Пример #8
0
// 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);
}
Пример #9
0
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();

    }

}
Пример #10
0
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();
}
Пример #11
0
void CKeyInputCtrl::OnKeyDown(wxKeyEvent &event)
{
	int nKeyCode = event.GetKeyCode();
	OnKeysModifierChange(event.GetModifiers());
	SetValue(GetKeyCodeAsString(nKeyCode));
	event.Skip(true);
}
Пример #12
0
/* 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();
}
Пример #13
0
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();
}
Пример #14
0
/* 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());
}
Пример #15
0
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();
}
Пример #16
0
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();
}
Пример #17
0
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();
}
Пример #18
0
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();
   }
}
Пример #19
0
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();
    }
}
Пример #20
0
//---------------------------------------------------------------------------------------
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;
}
Пример #21
0
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();
}
Пример #22
0
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();
	}
}
Пример #23
0
/* 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();
	}
}
Пример #24
0
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();
}
Пример #25
0
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);
}
Пример #26
0
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);
    }
}
Пример #27
0
// 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);
         }
      }
   }
}
Пример #28
0
	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();
	}
Пример #29
0
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;
}
Пример #30
0
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);
	}
}