Ejemplo n.º 1
0
        private static void SendEventToTarget(EventBase evt)
        {
            bool flag = evt.target != null;

            if (flag)
            {
                EventDispatchUtilities.PropagateEvent(evt);
            }
        }
        static bool SendEventToRegularTarget(EventBase evt, BaseVisualElementPanel panel)
        {
            if (!(evt.target is VisualElement ve))
                return false;

            if (ve.panel == panel)
                EventDispatchUtilities.PropagateEvent(evt);

            return IsDone(evt);
        }
        static bool SendEventToRegularTarget(EventBase evt, BaseVisualElementPanel panel)
        {
            if (evt.target == null)
            {
                return(false);
            }

            EventDispatchUtilities.PropagateEvent(evt);

            return(IsDone(evt));
        }
        private static bool SendEventToRegularTarget(EventBase evt, BaseVisualElementPanel panel)
        {
            bool flag = evt.target == null;
            bool result;

            if (flag)
            {
                result = false;
            }
            else
            {
                EventDispatchUtilities.PropagateEvent(evt);
                result = MouseEventDispatchingStrategy.IsDone(evt);
            }
            return(result);
        }
        static bool SendEventToRegularTarget(EventBase evt, BaseVisualElementPanel panel)
        {
            if (evt.target == null)
            {
                return(false);
            }

            EventDispatchUtilities.PropagateEvent(evt);
            if (evt.target is IMGUIContainer)
            {
                evt.propagateToIMGUI = true;
                evt.skipElements.Add(evt.target);
            }

            return(IsDone(evt));
        }
        public void DispatchEvent(EventBase evt, IPanel panel)
        {
            bool flag = panel != null;

            if (flag)
            {
                Focusable leafFocusedElement = panel.focusController.GetLeafFocusedElement();
                bool      flag2 = leafFocusedElement != null;
                if (flag2)
                {
                    bool isIMGUIContainer = leafFocusedElement.isIMGUIContainer;
                    if (isIMGUIContainer)
                    {
                        IMGUIContainer iMGUIContainer = (IMGUIContainer)leafFocusedElement;
                        bool           flag3          = !evt.Skip(iMGUIContainer) && iMGUIContainer.SendEventToIMGUI(evt, true, true);
                        if (flag3)
                        {
                            evt.StopPropagation();
                            evt.PreventDefault();
                        }
                        bool flag4 = !evt.isPropagationStopped && evt.propagateToIMGUI;
                        if (flag4)
                        {
                            evt.skipElements.Add(iMGUIContainer);
                            EventDispatchUtilities.PropagateToIMGUIContainer(panel.visualTree, evt);
                        }
                    }
                    else
                    {
                        evt.target = panel.focusController.GetLeafFocusedElement();
                        EventDispatchUtilities.PropagateEvent(evt);
                        bool flag5 = !evt.isPropagationStopped && evt.propagateToIMGUI;
                        if (flag5)
                        {
                            EventDispatchUtilities.PropagateToIMGUIContainer(panel.visualTree, evt);
                        }
                    }
                }
                else
                {
                    EventDispatchUtilities.PropagateToIMGUIContainer(panel.visualTree, evt);
                }
            }
            evt.propagateToIMGUI = false;
            evt.stopDispatch     = true;
        }
        public void DispatchEvent(EventBase evt, IPanel panel)
        {
            bool flag = evt.target != null;

            if (flag)
            {
                evt.propagateToIMGUI = (evt.target is IMGUIContainer);
                EventDispatchUtilities.PropagateEvent(evt);
            }
            else
            {
                bool flag2 = !evt.isPropagationStopped && panel != null;
                if (flag2)
                {
                    bool flag3 = evt.propagateToIMGUI || evt.eventTypeId == EventBase <MouseEnterWindowEvent> .TypeId() || evt.eventTypeId == EventBase <MouseLeaveWindowEvent> .TypeId();

                    if (flag3)
                    {
                        EventDispatchUtilities.PropagateToIMGUIContainer(panel.visualTree, evt);
                    }
                }
            }
            evt.stopDispatch = true;
        }
Ejemplo n.º 8
0
        public virtual void DispatchEvent(EventBase evt, IPanel panel)
        {
            IMouseEvent mouseEvent = evt as IMouseEvent;

            // FIXME: we should not change hover state when capture is true.
            // However, when doing drag and drop, drop target should be highlighted.

            // TODO when EditorWindow is docked MouseLeaveWindow is not always sent
            // this is a problem in itself but it could leave some elements as "hover"

            BaseVisualElementPanel basePanel = panel as BaseVisualElementPanel;

            if (basePanel != null && (evt.eventTypeId == MouseLeaveWindowEvent.TypeId() || evt.eventTypeId == DragExitedEvent.TypeId()))
            {
                basePanel.SetElementUnderMouse(null, evt);
            }
            else
            {
                // update element under mouse and fire necessary events
                if (basePanel != null)
                {
                    bool shouldRecomputeTopElementUnderMouse = true;
                    if ((IMouseEventInternal)mouseEvent != null)
                    {
                        shouldRecomputeTopElementUnderMouse =
                            ((IMouseEventInternal)mouseEvent).recomputeTopElementUnderMouse;
                    }

                    VisualElement elementUnderMouse = shouldRecomputeTopElementUnderMouse ?
                                                      basePanel.Pick(mouseEvent.mousePosition) :
                                                      basePanel.topElementUnderMouse;

                    if (evt.target == null)
                    {
                        evt.target = elementUnderMouse;
                    }

                    // Because events are queued, we can set the element under mouse
                    // right now, instead of waiting after the PropagateEvent() as we
                    // did before.
                    basePanel.SetElementUnderMouse(elementUnderMouse, evt);
                }

                if (evt.target != null)
                {
                    evt.propagateToIMGUI = false;
                    EventDispatchUtilities.PropagateEvent(evt);
                }
            }

            if (!evt.isPropagationStopped && panel != null)
            {
                if (evt.propagateToIMGUI ||
                    evt.eventTypeId == MouseEnterWindowEvent.TypeId() ||
                    evt.eventTypeId == MouseLeaveWindowEvent.TypeId()
                    )
                {
                    EventDispatchUtilities.PropagateToIMGUIContainer(panel.visualTree, evt);
                }
            }

            evt.stopDispatch = true;
        }