public void UpdateActiveStyleSheet(BuilderSelection selection, StyleSheet styleSheet, IBuilderSelectionNotifier source)
        {
            if (m_ActiveStyleSheet == styleSheet)
            {
                return;
            }

            m_ActiveStyleSheet = styleSheet;
            selection.ForceReselection(source);
        }
예제 #2
0
        public void Paste()
        {
            var focused = m_PaneWindow.rootVisualElement.focusController.focusedElement as VisualElement;

            if (!BuilderEditorUtility.CopyBufferMatchesTarget(focused))
            {
                return;
            }

            var copyBuffer = BuilderEditorUtility.systemCopyBuffer;

            if (BuilderEditorUtility.IsUxml(copyBuffer))
            {
                PasteUXML(copyBuffer);
            }
            else if (BuilderEditorUtility.IsUss(copyBuffer))
            {
                PasteUSS(copyBuffer);
            }
            else // Unknown string.
            {
                return;
            }

            if (m_CutElements.Count > 0)
            {
                foreach (var elementToCut in m_CutElements)
                {
                    DeleteElement(elementToCut);
                }

                m_CutElements.Clear();
                BuilderEditorUtility.systemCopyBuffer = null;
            }

            m_PaneWindow.OnEnableAfterAllSerialization();

            // TODO: ListView bug. Does not refresh selection pseudo states after a
            // call to Refresh().
            m_PaneWindow.rootVisualElement.schedule.Execute(() =>
            {
                if (m_Selection.isEmpty)
                {
                    return;
                }
                m_Selection.ForceReselection();
            }).ExecuteLater(200);

            m_Selection.NotifyOfHierarchyChange();
        }
예제 #3
0
        public void Paste()
        {
            var copyBuffer = BuilderEditorUtility.SystemCopyBuffer;

            if (string.IsNullOrEmpty(copyBuffer))
            {
                return;
            }

            var trimmedBuffer = copyBuffer.Trim();

            if (trimmedBuffer.StartsWith("<") && trimmedBuffer.EndsWith(">"))
            {
                PasteUXML(copyBuffer);
            }
            else if (trimmedBuffer.EndsWith("}"))
            {
                PasteUSS(copyBuffer);
            }
            else // Unknown string.
            {
                return;
            }

            if (m_CutElements.Count > 0)
            {
                foreach (var elementToCut in m_CutElements)
                {
                    DeleteElement(elementToCut);
                }

                m_CutElements.Clear();
                BuilderEditorUtility.SystemCopyBuffer = null;
            }

            m_PaneWindow.OnEnableAfterAllSerialization();

            // TODO: ListView bug. Does not refresh selection pseudo states after a
            // call to Refresh().
            m_PaneWindow.rootVisualElement.schedule.Execute(() =>
            {
                if (m_Selection.isEmpty)
                {
                    return;
                }
                m_Selection.ForceReselection();
            }).ExecuteLater(200);

            m_Selection.NotifyOfHierarchyChange();
        }