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 OnlineSpellChecker::EnableOnlineChecks(bool check) { m_doChecks = check; alreadychecked = false; EditorManager *edm = Manager::Get()->GetEditorManager(); for ( int i = 0 ; i < edm->GetEditorsCount() ; ++i) { cbEditor *ed = edm->GetBuiltinEditor( i ); if ( !ed ) continue; if ( check == false ) // clear all indications set in a previous run ClearAllIndications(ed->GetControl()); else OnEditorUpdateUI(ed); } }