Esempio n. 1
0
 void _dispatch(PointerEvent evt, PointerRoute route, Matrix4 transform)
 {
     try {
         evt = evt.transformed(transform);
         route(evt);
     }
     catch (Exception ex) {
         D.logError("Error while routing a pointer event: ", ex);
     }
 }
Esempio n. 2
0
        public void dispatchEvent(PointerEvent evt, HitTestResult hitTestResult)
        {
            if (hitTestResult == null)
            {
                D.assert(evt is PointerHoverEvent ||
                         evt is PointerAddedEvent ||
                         evt is PointerRemovedEvent ||
                         evt is PointerDragFromEditorHoverEvent ||
                         evt is PointerDragFromEditorReleaseEvent
                         );
                try {
                    pointerRouter.route(evt);
                }
                catch (Exception ex) {
                    IEnumerable <DiagnosticsNode> infoCollector()
                    {
                        yield return(new DiagnosticsProperty <PointerEvent>("Event", evt, style: DiagnosticsTreeStyle.errorProperty));
                    }

                    UIWidgetsError.reportError(new UIWidgetsErrorDetails(
                                                   exception: ex,
                                                   library: "gesture library",
                                                   context: new ErrorDescription("while dispatching a non-hit-tested pointer event"),
                                                   informationCollector: infoCollector
                                                   )
                                               );
                }

                return;
            }

            foreach (HitTestEntry entry in hitTestResult.path)
            {
                try {
                    entry.target.handleEvent(evt.transformed(entry.transform), entry);
                }
                catch (Exception ex) {
                    D.logError("Error while dispatching a pointer event: ", ex);
                }
            }
        }
Esempio n. 3
0
        public void dispatchEvent(PointerEvent evt, HitTestResult hitTestResult)
        {
            if (hitTestResult == null)
            {
                D.assert(evt is PointerHoverEvent ||
                         evt is PointerAddedEvent ||
                         evt is PointerRemovedEvent ||
                         evt is PointerDragFromEditorHoverEvent ||
                         evt is PointerDragFromEditorReleaseEvent
                         );
                try {
                    this.pointerRouter.route(evt);
                }
                catch (Exception ex) {
                    UIWidgetsError.reportError(new UIWidgetsErrorDetails(
                                                   exception: ex,
                                                   library: "gesture library",
                                                   context: "while dispatching a non-hit-tested pointer event",
                                                   informationCollector: information => {
                        information.AppendLine("Event: ");
                        information.AppendFormat(" {0}", evt);
                    }
                                                   )
                                               );
                }

                return;
            }

            foreach (HitTestEntry entry in hitTestResult.path)
            {
                try {
                    entry.target.handleEvent(evt.transformed(entry.transform), entry);
                }
                catch (Exception ex) {
                    D.logError("Error while dispatching a pointer event: ", ex);
                }
            }
        }