Exemple #1
0
        private void RightClickMenuEvent(MouseUpEvent evt)
        {
            if (evt.button != (int)MouseButton.RightMouse)
            {
                return;
            }

            var label = evt.target as Label;

            if (label == null)
            {
                return;
            }

            var property = label.userData as SerializedProperty;

            if (property == null)
            {
                return;
            }

            var menu         = EditorGUI.FillPropertyContextMenu(property);
            var menuPosition = new Vector2(label.layout.xMin, label.layout.height);

            menuPosition = label.LocalToWorld(menuPosition);
            var menuRect = new Rect(menuPosition, Vector2.zero);

            menu.DropDown(menuRect);

            evt.PreventDefault();
            evt.StopPropagation();
        }
        void OnMouseUp(MouseUpEvent evt)
        {
            if (evt.button != (int)MouseButton.LeftMouse)
            {
                evt.StopPropagation();
                evt.PreventDefault();

                return;
            }

            var target = evt.currentTarget as VisualElement;

            if (!CanStopManipulation(evt))
            {
                return;
            }

            target.ReleaseMouse();

            if (!m_Active)
            {
                return;
            }

            if (m_Active)
            {
                var currentMouse = evt.mousePosition;
                if (m_LastHoverElement != null)
                {
                    var localCanvasMouse    = m_Canvas.WorldToLocal(currentMouse);
                    var localHierarchyMouse = builderHierarchyRoot.WorldToLocal(currentMouse);

                    if (m_Canvas.ContainsPoint(localCanvasMouse))
                    {
                        PerformAction(m_LastHoverElement, DestinationPane.Viewport);
                    }
                    else if (builderHierarchyRoot.ContainsPoint(localHierarchyMouse))
                    {
                        VisualElement newParent;
                        int           index;
                        GetPickedElementFromHoverElement(out newParent, out index);

                        PerformAction(newParent, DestinationPane.Hierarchy, index);
                    }
                }

                evt.StopPropagation();
                m_Active = false;
            }
            else
            {
                FailAction(target);
            }

            EndDragInner();
        }
 private void OnMouseUpEvent(MouseUpEvent evt)
 {
     if (base.CanStartManipulation(evt))
     {
         if (base.target.elementPanel != null && base.target.elementPanel.contextualMenuManager != null)
         {
             base.target.elementPanel.contextualMenuManager.DisplayMenu(evt, base.target);
             evt.StopPropagation();
             evt.PreventDefault();
         }
     }
 }
Exemple #4
0
        internal static void RightClickFieldMenuEvent(MouseUpEvent evt)
        {
            if (evt.button != (int)MouseButton.RightMouse)
            {
                return;
            }

            var element = evt.target as VisualElement;

            if (element == null)
            {
                return;
            }

            var property = element.userData as SerializedProperty;

            if (property == null)
            {
                return;
            }

            var wasEnabled = GUI.enabled;

            if (!element.enabledInHierarchy)
            {
                GUI.enabled = false;
            }

            var menu = EditorGUI.FillPropertyContextMenu(property);

            GUI.enabled = wasEnabled;

            var menuPosition = new Vector2(element.layout.xMin, element.layout.height);

            menuPosition = element.LocalToWorld(menuPosition);
            var menuRect = new Rect(menuPosition, Vector2.zero);

            menu.DropDown(menuRect);

            evt.PreventDefault();
            evt.StopPropagation();
        }
Exemple #5
0
        void OnMouseUp(MouseUpEvent evt)
        {
            var target = evt.currentTarget as VisualElement;

            if (!target.HasMouseCapture() || !m_WeStartedTheDrag)
            {
                return;
            }

            if (!CanStopManipulation(evt))
            {
                return;
            }

            if (target.elementPanel != null && target.elementPanel.contextualMenuManager != null)
            {
                target.elementPanel.contextualMenuManager.DisplayMenu(evt, target);
                evt.PreventDefault();
            }

            target.ReleaseMouse();
            m_WeStartedTheDrag = false;
            evt.StopPropagation();
        }
        void OnMouseUp(MouseUpEvent evt)
        {
            if (evt.button != (int)MouseButton.LeftMouse)
            {
                evt.StopPropagation();
                evt.PreventDefault();

                return;
            }

            var target = evt.currentTarget as VisualElement;

            if (!CanStopManipulation(evt))
            {
                return;
            }

            target.ReleaseMouse();
            s_CurrentlyActiveBuilderDragger = null;
            m_WeStartedTheDrag = false;

            if (!m_Active)
            {
                SelectItemOnSingleClick(evt);
                return;
            }

            if (m_Active)
            {
                var currentMouse = evt.mousePosition;
                if (m_LastHoverElement != null)
                {
                    var localCanvasMouse = viewport != null?m_Canvas.WorldToLocal(currentMouse) : Vector2.zero;

                    var localHierarchyMouse = builderHierarchyRoot != null?builderHierarchyRoot.WorldToLocal(currentMouse) : Vector2.zero;

                    if (viewport != null && m_Canvas.ContainsPoint(localCanvasMouse))
                    {
                        PerformAction(m_LastHoverElement, DestinationPane.Viewport, localCanvasMouse, m_LastHoverElementChildIndex);
                    }
                    else if (builderHierarchyRoot != null && builderHierarchyRoot.ContainsPoint(localHierarchyMouse))
                    {
                        VisualElement newParent;
                        int           index;
                        GetPickedElementFromHoverElement(out newParent, out index);

                        PerformAction(newParent, DestinationPane.Hierarchy, localHierarchyMouse, index);
                    }
                }

                m_Active = false;
            }
            else
            {
                FailAction(target);
            }

            evt.StopPropagation();

            EndDragInner();
        }