bool OnReplaceText(CCIMEKeybardEventArgs eventArgs) { var handler = ReplaceText; if (handler != null) { return(ProcessCancelableEvent(handler, eventArgs)); } return(false); }
private bool ProcessCancelableEvent(EventHandler <CCIMEKeybardEventArgs> handler, CCIMEKeybardEventArgs eventArgs) { var canceled = false; Delegate inFocusDelegate = null; var sender = TextFieldInFocus; foreach (var instantHandler in handler.GetInvocationList()) { if (eventArgs.Cancel) { break; } // Make sure we process all event handlers except for our focused text field // We need to process it at the end to give the other event handlers a chance // to cancel the event from propogating to our focused text field. if (instantHandler.Target == sender) { inFocusDelegate = instantHandler; } else { instantHandler.DynamicInvoke(sender, eventArgs); } } canceled = eventArgs.Cancel; if (inFocusDelegate != null && !canceled) { inFocusDelegate.DynamicInvoke(sender, eventArgs); } return(canceled); }
private void TextFieldIMEImplementation_DeleteBackward(object sender, CCIMEKeybardEventArgs e) { DeleteBackwards(); }
private void TextFieldIMEImplementation_InsertText(object sender, CCIMEKeybardEventArgs e) { InsertText(e.Text, e.Length); }