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()); } } }