void OnHotSpotClick(wxScintillaEvent &event) { AutoCompCancel(); CallTipCancel(); wxPoint clientPos = PointFromPosition(event.GetPosition()); wxPoint screenPos = ClientToScreen(clientPos); int lineHeight = TextHeight(LineFromPosition(event.GetPosition())); CloseWatch(); m_watch = new OneVariableWatchView( this, event.GetText(), wxPoint(screenPos.x - 50, screenPos.y + lineHeight), wxSize(100, 400)); m_watch->Show(); }
void OutputPane::OnMouseDClick(wxScintillaEvent &event) { long pos = event.GetPosition(); int fifWinIndex = CaptionToIndex(OutputPane::FIND_IN_FILES_WIN); int buildWinIndex = CaptionToIndex(OutputPane::BUILD_WIN); wxScintilla *win = dynamic_cast<wxScintilla*>(m_book->GetPage(m_book->GetSelection())); if( !win ){ return; } int line = win->LineFromPosition(pos); wxString lineText = win->GetLine(line); //remove selection win->SetSelectionStart(pos); win->SetSelectionEnd(pos); if( fifWinIndex == m_book->GetSelection() ) { //Find in files OnFindInFilesDClick(lineText); } else if(buildWinIndex == m_book->GetSelection()) { //build window lineText.Replace(wxT("\\"), wxT("/")); OnBuildWindowDClick(lineText, line); } }
void CCTestFrame::OnMarginClick(wxScintillaEvent& event) { if (event.GetMargin()==C_FOLDING_MARGIN) { int lineYpix = event.GetPosition(); int line = m_Control->LineFromPosition(lineYpix); m_Control->ToggleFold(line); } }
void CodeEditor::OnMarginClick(wxScintillaEvent &event) { if (event.GetMargin() == 1) { int lineClick = LineFromPosition(event.GetPosition()); int levelClick = GetFoldLevel(lineClick); if ((levelClick & wxSCI_FOLDLEVELHEADERFLAG) > 0) { ToggleFold (lineClick); } } }
void Highlighter::Call(cbEditor* ctrl, wxScintillaEvent &event) const { // return if this event is not fired from the active editor (is it possible that an editor which is not active fires an event?) if ( Manager::Get()->GetEditorManager()->GetActiveEditor() != ctrl ) return; // check the event type if it is an update event if ( event.GetEventType() == wxEVT_SCI_UPDATEUI || event.GetEventType() == wxEVT_SCI_PAINTED ) { HighlightOccurrencesOfSelection(ctrl); OnEditorUpdateUI(ctrl); } else if ( event.GetEventType() == wxEVT_SCI_MODIFIED) { if(event.GetModificationType() & wxSCI_MOD_INSERTTEXT) { OnEditorChangeTextRange(ctrl, event.GetPosition(), event.GetPosition() + event.GetLength()); } else if (event.GetModificationType() & wxSCI_MOD_DELETETEXT) { OnEditorChangeTextRange(ctrl, event.GetPosition(), event.GetPosition()); } else if (event.GetModificationType() & wxSCI_MOD_CHANGESTYLE) { OnEditorChangeTextRange(ctrl, event.GetPosition(), event.GetPosition() + event.GetLength()); } } }
void VObjEvtHandler::OnMarginClick ( wxScintillaEvent& event ) { wxScintilla* scintilla = wxDynamicCast( m_window, wxScintilla ); if ( scintilla != NULL ) { if ( event.GetMargin() == 1 ) { int lineClick = scintilla->LineFromPosition( event.GetPosition() ); int levelClick = scintilla->GetFoldLevel( lineClick ); if ( ( levelClick & wxSCI_FOLDLEVELHEADERFLAG ) > 0 ) { scintilla->ToggleFold( lineClick ); } } } event.Skip(); }
void CCManager::OnEditorHook(cbEditor* ed, wxScintillaEvent& event) { wxEventType evtType = event.GetEventType(); if (evtType == wxEVT_SCI_CHARADDED) { const wxChar ch = event.GetKey(); CCPluginCharMap::const_iterator ctChars = m_CallTipChars.find(GetProviderFor(ed)); if (ctChars == m_CallTipChars.end()) ctChars = m_CallTipChars.find(nullptr); // default if (ctChars->second.find(ch) != ctChars->second.end()) { CodeBlocksEvent evt(cbEVT_SHOW_CALL_TIP); Manager::Get()->ProcessEvent(evt); } else { cbStyledTextCtrl* stc = ed->GetControl(); const int pos = stc->GetCurrentPos(); const int wordStartPos = stc->WordStartPosition(pos, true); CCPluginCharMap::const_iterator alChars = m_AutoLaunchChars.find(GetProviderFor(ed)); if (alChars == m_AutoLaunchChars.end()) alChars = m_AutoLaunchChars.find(nullptr); // default // TODO: read settings if ( (pos - wordStartPos >= 3 && !stc->AutoCompActive()) || pos - wordStartPos == 3 + 4 ) { CodeBlocksEvent evt(cbEVT_COMPLETE_CODE); Manager::Get()->ProcessEvent(evt); } else if (alChars->second.find(ch) != alChars->second.end()) { m_AutoLaunchTimer.Start(10, wxTIMER_ONE_SHOT); m_AutocompPosition = pos; } } } else if (evtType == wxEVT_SCI_UPDATEUI) { if (event.GetUpdated() & (wxSCI_UPDATE_V_SCROLL|wxSCI_UPDATE_H_SCROLL)) { cbStyledTextCtrl* stc = ed->GetControl(); if (stc->CallTipActive()) { static_cast<wxScintilla*>(stc)->CallTipCancel(); if (m_CallTipActive != wxSCI_INVALID_POSITION && CCManagerHelper::IsPosVisible(m_CallTipActive, stc)) m_CallTipTimer.Start(SCROLL_REFRESH_DELAY, wxTIMER_ONE_SHOT); } else if (m_CallTipTimer.IsRunning()) { if (CCManagerHelper::IsPosVisible(stc->GetCurrentPos(), stc)) m_CallTipTimer.Start(SCROLL_REFRESH_DELAY, wxTIMER_ONE_SHOT); else { m_CallTipTimer.Stop(); m_CallTipActive = wxSCI_INVALID_POSITION; } } if (m_AutoLaunchTimer.IsRunning()) { if (CCManagerHelper::IsPosVisible(stc->GetCurrentPos(), stc)) m_AutoLaunchTimer.Start(SCROLL_REFRESH_DELAY, wxTIMER_ONE_SHOT); else m_AutoLaunchTimer.Stop(); } else if (stc->AutoCompActive()) { stc->AutoCompCancel(); m_AutocompPosition = stc->GetCurrentPos(); if (CCManagerHelper::IsPosVisible(m_AutocompPosition, stc)) m_AutoLaunchTimer.Start(SCROLL_REFRESH_DELAY, wxTIMER_ONE_SHOT); } } } else if (evtType == wxEVT_SCI_KEY) { cbStyledTextCtrl* stc = ed->GetControl(); switch (event.GetKey()) { case wxSCI_KEY_LEFT: case wxSCI_KEY_RIGHT: if (!stc->CallTipActive() && !stc->AutoCompActive()) m_CallTipActive = wxSCI_INVALID_POSITION; // fall through case wxSCI_KEY_UP: case wxSCI_KEY_DOWN: if (m_CallTipActive != wxSCI_INVALID_POSITION && !stc->AutoCompActive()) m_CallTipTimer.Start(CALLTIP_REFRESH_DELAY, wxTIMER_ONE_SHOT); break; default: break; } } else if (evtType == wxEVT_SCI_MODIFIED) { if (event.GetModificationType() & wxSCI_PERFORMED_UNDO) { cbStyledTextCtrl* stc = ed->GetControl(); if (m_CallTipActive != wxSCI_INVALID_POSITION && stc->GetCurrentPos() >= m_CallTipActive) m_CallTipTimer.Start(CALLTIP_REFRESH_DELAY, wxTIMER_ONE_SHOT); else static_cast<wxScintilla*>(stc)->CallTipCancel(); } } else if (evtType == wxEVT_SCI_AUTOCOMP_SELECTION) { DoHidePopup(); cbCodeCompletionPlugin* ccPlugin = GetProviderFor(ed); if (ccPlugin && m_OwnsAutocomp) { if ( m_LastAutocompIndex != wxNOT_FOUND && m_LastAutocompIndex < (int)m_AutocompTokens.size() ) { ccPlugin->DoAutocomplete(m_AutocompTokens[m_LastAutocompIndex], ed); } else { ccPlugin->DoAutocomplete(event.GetText(), ed); } } } else if (evtType == wxEVT_SCI_AUTOCOMP_CANCELLED) DoHidePopup(); else if (evtType == wxEVT_SCI_CALLTIP_CLICK) { switch (event.GetPosition()) { case 1: // up --m_CurCallTip; DoUpdateCallTip(ed); break; case 2: // down ++m_CurCallTip; DoUpdateCallTip(ed); break; case 0: // elsewhere default: break; } } event.Skip(); }
void OutputTabWindow::OnMarginClick(wxScintillaEvent& e) { if (m_sci && e.GetMargin() == 4) { m_sci->ToggleFold(m_sci->LineFromPosition(e.GetPosition())); } }