/* * private const string[] pointerStates = * { * "Exit", * "PreEnter", * "Enter", * "Fixation", * "Dwel", * "DwellRepeat" * }; */ private void RaiseGazePointerEvent(GazeTargetItem target, PointerState state, TimeSpan elapsedTime) { var control = target?.TargetElement; // assert(target != _rootElement); var gpea = new StateChangedEventArgs(control, state, elapsedTime); /* * if (control is Button buttonObj && buttonObj.Content != null) * { * var buttonText = buttonObj.Content as string; * Debug.WriteLine("GPE: {0} . {1}, {2}", buttonText, PointerStates[(int)state], elapsedTime); * } * else * { * Debug.WriteLine("GPE: 0x%08x . %s, %d", target != null ? target.GetHashCode() : 0, PointerStates[(int)state], elapsedTime); * } */ var gazeElement = target != null?GazeInput.GetGazeElement(control) : null; if (gazeElement != null) { gazeElement.RaiseStateChanged(control, gpea); } if (state == PointerState.Dwell) { var handled = false; if (gazeElement != null) { var args = new DwellInvokedRoutedEventArgs(); gazeElement.RaiseInvoked(control, args); handled = args.Handled; } if (!handled) { target.Invoke(); } } }
internal void RaiseInvoked(object sender, DwellInvokedRoutedEventArgs args) { Invoked?.Invoke(sender, args); }