protected override bool StartDrag(VisualElement target, Vector2 mousePosition, VisualElement pill)
        {
            m_ElementsToReparent.Clear();

            // Create list of elements to reparent.
            foreach (var selectedElement in selection.selection)
            {
                if (!ExplorerCanStartDrag(selectedElement))
                {
                    continue;
                }

                var elementToReparent = new ElementToReparent()
                {
                    element   = selectedElement,
                    oldParent = selectedElement.parent,
                    oldIndex  = selectedElement.parent.IndexOf(selectedElement)
                };

                m_ElementsToReparent.Add(elementToReparent);
            }

            // We still need a primary element that is "being dragged" for visualization purporses.
            m_TargetElementToReparent = ExplorerGetDragPreviewFromTarget(target, mousePosition);
            if (m_TargetElementToReparent == null || !ExplorerCanStartDrag(m_TargetElementToReparent))
            {
                return(false);
            }

            return(true);
        }
Example #2
0
        protected override bool StartDrag(VisualElement target, Vector2 mousePosition, VisualElement pill)
        {
            m_ElementsToReparent.Clear();

            // Create list of elements to reparent.
            foreach (var selectedElement in selection.selection)
            {
                var elementToReparent = new ElementToReparent()
                {
                    element   = selectedElement,
                    oldParent = selectedElement.parent,
                    oldIndex  = selectedElement.parent.IndexOf(selectedElement)
                };

                m_ElementsToReparent.Add(elementToReparent);
            }

            // We still need a primary element that is "being dragged" for visualization purporses.
            m_TargetElementToReparent = target.GetProperty(BuilderConstants.ExplorerItemElementLinkVEPropertyName) as VisualElement;
            if (!m_TargetElementToReparent.IsSelector() && !m_TargetElementToReparent.IsStyleSheet())
            {
                return(false);
            }

            // We use the primary target element for our pill info.
            var pillLabel = pill.Q <Label>();

            pillLabel.text = m_TargetElementToReparent.IsSelector()
                ? StyleSheetToUss.ToUssSelector(m_TargetElementToReparent.GetStyleComplexSelector())
                : m_TargetElementToReparent.GetStyleSheet().name + BuilderConstants.UssExtension;

            pillLabel.RemoveFromClassList(BuilderConstants.ElementClassNameClassName);

            return(true);
        }
        protected override bool StartDrag(VisualElement target, Vector2 mousePosition, VisualElement pill)
        {
            m_ElementsToReparent.Clear();

            // Create list of elements to reparent.
            foreach (var selectedElement in selection.selection)
            {
                if (!selectedElement.IsPartOfCurrentDocument())
                {
                    continue;
                }

                var elementToReparent = new ElementToReparent()
                {
                    element   = selectedElement,
                    oldParent = selectedElement.parent,
                    oldIndex  = selectedElement.parent.IndexOf(selectedElement)
                };

                m_ElementsToReparent.Add(elementToReparent);
            }

            // We still need a primary element that is "being dragged" for visualization purporses.
            m_TargetElementToReparent = target.GetProperty(BuilderConstants.ExplorerItemElementLinkVEPropertyName) as VisualElement;
            if (!ExplorerCanStartDrag(m_TargetElementToReparent))
            {
                return(false);
            }

            // We use the primary target element for our pill info.
            var pillLabel = pill.Q <Label>();

            pillLabel.text = ExplorerGetDraggedPillText(m_TargetElementToReparent);

            // Remove the yellow text color from pill if dragger element does not represent a VisualElementAsset.
            if (m_TargetElementToReparent.GetVisualElementAsset() != null)
            {
                pillLabel.RemoveFromClassList(BuilderConstants.ElementClassNameClassName);
            }

            return(true);
        }
        protected override bool StartDrag(VisualElement target, Vector2 mousePosition, VisualElement pill)
        {
            m_ElementsToReparent.Clear();

            // Create list of elements to reparent.
            foreach (var selectedElement in selection.selection)
            {
                if (!ExplorerCanStartDrag(selectedElement))
                {
                    continue;
                }

                var elementToReparent = new ElementToReparent()
                {
                    element   = selectedElement,
                    oldParent = selectedElement.parent,
                    oldIndex  = selectedElement.parent.IndexOf(selectedElement)
                };

                m_ElementsToReparent.Add(elementToReparent);
            }

            // We still need a primary element that is "being dragged" for visualization purporses.
            m_TargetElementToReparent = ExplorerGetDragPreviewFromTarget(target, mousePosition);
            if (m_TargetElementToReparent == null || !ExplorerCanStartDrag(m_TargetElementToReparent))
            {
                return(false);
            }

            // We use the primary target element for our pill info.
            var pillLabel = pill.Q <Label>();

            pillLabel.text = ExplorerGetDraggedPillText(m_TargetElementToReparent);
            pillLabel.RemoveFromClassList(BuilderConstants.ElementClassNameClassName);

            return(true);
        }