Пример #1
0
        public StagingAreaInputItem PushInput(InputEventArgs input, StagingAreaInputItem promote)
        {
            StagingAreaInputItem item = new StagingAreaInputItem(input, promote);

            InputManager.CurrentInputManager._currentStagingStack.Push(item);
            return(item);
        }
Пример #2
0
 internal StagingAreaInputItem(InputEventArgs input, StagingAreaInputItem promote)
 {
     this.Input = input;
     if ((promote != null) && (promote._table != null))
     {
         this._table = (Hashtable)promote._table.Clone();
     }
 }
Пример #3
0
        internal StagingAreaInputItem(InputEventArgs input, StagingAreaInputItem promote)
        {
            this.Input = input;

            if (promote != null && promote._table != null)
            {
                // REFACTOR -- need a hashtable!

                this._table = (Hashtable)promote._table.Clone();
            }
        }
Пример #4
0
 internal NotifyInputEventArgs(StagingAreaInputItem input)
 {
     this.StagingItem = input;
 }
Пример #5
0
        private object ProcessStagingArea(object frame)
        {
            bool flag1 = false;

            try
            {
label_21:
                if (this._stagingArea.Count > 0)
                {
                    this._currentStagingStack = this._stagingArea.Dequeue() as Stack;
                    do
                    {
                        StagingAreaInputItem stagingAreaInputItem = (StagingAreaInputItem)this._currentStagingStack.Pop();
                        bool flag2      = false;
                        int  deviceType = (int)stagingAreaInputItem.Input._inputDevice.DeviceType;
                        if (this.InputDeviceEvents[deviceType]._preProcessInput != null)
                        {
                            PreProcessInputEventArgs processInputEventArgs;
                            this.InputDeviceEvents[deviceType]._preProcessInput((object)this, processInputEventArgs = new PreProcessInputEventArgs(stagingAreaInputItem));
                            flag2 = processInputEventArgs._canceled;
                        }
                        if (!flag2)
                        {
                            NotifyInputEventHandler preNotifyInput = this.InputDeviceEvents[deviceType]._preNotifyInput;
                            if (preNotifyInput != null)
                            {
                                preNotifyInput((object)this, new NotifyInputEventArgs(stagingAreaInputItem));
                            }
                            InputEventArgs input1    = stagingAreaInputItem.Input;
                            UIElement      uiElement = input1._source as UIElement;
                            if (uiElement == null && input1._inputDevice != null)
                            {
                                uiElement = input1._inputDevice.Target;
                            }
                            uiElement?.RaiseEvent((RoutedEventArgs)input1);
                            NotifyInputEventHandler postNotifyInput = this.InputDeviceEvents[deviceType]._postNotifyInput;
                            if (postNotifyInput != null)
                            {
                                postNotifyInput((object)this, new NotifyInputEventArgs(stagingAreaInputItem));
                            }
                            ProcessInputEventHandler postProcessInput = this.InputDeviceEvents[deviceType]._postProcessInput;
                            if (postProcessInput != null)
                            {
                                postProcessInput((object)this, new ProcessInputEventArgs(stagingAreaInputItem));
                            }
                            if (stagingAreaInputItem.Input._routedEvent == InputManager.PreviewInputReportEvent && !stagingAreaInputItem.Input.Handled)
                            {
                                InputReportEventArgs input2 = (InputReportEventArgs)stagingAreaInputItem.Input;
                                InputReportEventArgs inputReportEventArgs = new InputReportEventArgs(input2.Device, input2.Report);
                                inputReportEventArgs.RoutedEvent = InputManager.InputReportEvent;
                                this._currentStagingStack.Push((object)new StagingAreaInputItem((InputEventArgs)inputReportEventArgs, stagingAreaInputItem));
                            }
                            if (input1.Handled)
                            {
                                flag1 = true;
                            }
                        }
                    }while (this._currentStagingStack.Count > 0);
                    goto label_21;
                }
            }
            finally
            {
                if (this._stagingArea.Count > 0)
                {
                    this.Dispatcher.BeginInvoke(this._continueProcessingStagingAreaCallback, (object)this.Dispatcher.CurrentFrame);
                }
                this._frameStagingArea.Remove(frame);
            }
            return((object)flag1);
        }
Пример #6
0
 internal ProcessInputEventArgs(StagingAreaInputItem input) : base(input)
 {
 }
Пример #7
0
 public StagingAreaInputItem PushInput(StagingAreaInputItem input)
 {
     InputManager.CurrentInputManager._currentStagingStack.Push(input);
     return(input);
 }
Пример #8
0
 internal PreProcessInputEventArgs(StagingAreaInputItem input) : base(input)
 {
     this._canceled = false;
 }