Пример #1
0
        bool OnReplaceText(CCIMEKeybardEventArgs eventArgs)
        {
            var handler = ReplaceText;

            if (handler != null)
            {
                return(ProcessCancelableEvent(handler, eventArgs));
            }

            return(false);
        }
Пример #2
0
        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);
        }
Пример #3
0
 private void TextFieldIMEImplementation_DeleteBackward(object sender, CCIMEKeybardEventArgs e)
 {
     DeleteBackwards();
 }
Пример #4
0
 private void TextFieldIMEImplementation_InsertText(object sender, CCIMEKeybardEventArgs e)
 {
     InsertText(e.Text, e.Length);
 }