void ApplySerializewindowLayouts(PostLayoutEvent evt)
        {
            UnregisterCallback <PostLayoutEvent>(ApplySerializewindowLayouts);

            m_FloatingWindowsLayoutKey = "UnityEditor.ShaderGraph.FloatingWindowsLayout";
            string serializedWindowLayout = EditorUserSettings.GetConfigValue(m_FloatingWindowsLayoutKey);

            if (!String.IsNullOrEmpty(serializedWindowLayout))
            {
                m_FloatingWindowsLayout = JsonUtility.FromJson <FloatingWindowsLayout>(serializedWindowLayout);

                m_FloatingWindowsLayout.defaultPreviewLayout.CalculateDockingCornerAndOffset(m_MasterPreviewView.layout, layout);
                m_FloatingWindowsLayout.defaultBlackboardLayout.CalculateDockingCornerAndOffset(m_BlackboardProvider.blackboard.layout, layout);

                m_MasterPreviewView.layout             = m_FloatingWindowsLayout.previewLayout.GetLayout(layout);
                m_BlackboardProvider.blackboard.layout = m_FloatingWindowsLayout.blackboardLayout.GetLayout(layout);

                m_MasterPreviewView.UpdateRenderTextureOnNextLayoutChange();
            }
            else
            {
                m_FloatingWindowsLayout = new FloatingWindowsLayout();
                m_FloatingWindowsLayout.defaultPreviewLayout.CalculateDockingCornerAndOffset(m_MasterPreviewView.layout, layout);
                m_FloatingWindowsLayout.defaultBlackboardLayout.CalculateDockingCornerAndOffset(m_BlackboardProvider.blackboard.layout, layout);
            }
        }
 void OnSubElementPostLayout(PostLayoutEvent e)
 {
     if (this.IsSelected(GetFirstAncestorOfType <GraphView>()) == false)
     {
         UpdateGeometryFromContent();
     }
 }
Beispiel #3
0
        static void RepositionNode(PostLayoutEvent evt)
        {
            var port = evt.target as ShaderPort;

            if (port == null)
            {
                return;
            }
            port.UnregisterCallback <PostLayoutEvent>(RepositionNode);
            var nodeView = port.node as MaterialNodeView;

            if (nodeView == null)
            {
                return;
            }
            var offset   = nodeView.mainContainer.WorldToLocal(port.GetGlobalCenter() + new Vector3(3f, 3f, 0f));
            var position = nodeView.GetPosition();

            position.position -= offset;
            nodeView.SetPosition(position);
            var drawState = nodeView.node.drawState;

            drawState.position      = position;
            nodeView.node.drawState = drawState;
            nodeView.Dirty(ChangeType.Repaint);
            port.Dirty(ChangeType.Repaint);
        }
Beispiel #4
0
 private void OnSubElementPostLayout(PostLayoutEvent e)
 {
     if (!this.IsSelected(base.GetFirstAncestorOfType <GraphView>()))
     {
         this.UpdateGeometryFromContent();
     }
 }
Beispiel #5
0
 private void OnTargetLayout(PostLayoutEvent evt)
 {
     if (UpdateTargetBounds() || UpdateElementSize())
     {
         AlignOnTarget();
     }
 }
Beispiel #6
0
        protected internal override void ExecuteDefaultAction(EventBase evt)
        {
            if (evt.GetEventTypeId() == PostLayoutEvent.TypeId())
            {
                if (m_Attacher != null)
                {
                    PerformTipLayout();
                }
            }
            else if (evt.GetEventTypeId() == DetachFromPanelEvent.TypeId())
            {
                if (m_Attacher != null)
                {
                    m_Attacher.Detach();
                    m_Attacher = null;
                }
            }
            else if (evt.GetEventTypeId() == MouseEnterEvent.TypeId())
            {
                ShowText();
            }
            else if (evt.GetEventTypeId() == MouseLeaveEvent.TypeId())
            {
                HideText();
            }


            base.ExecuteDefaultAction(evt);
        }
Beispiel #7
0
        void InitialLayoutSetup(PostLayoutEvent postLayoutEvent)
        {
            m_PreviousParentRect = target.parent.layout;
            target.UnregisterCallback <PostLayoutEvent>(InitialLayoutSetup);
            target.RegisterCallback <PostLayoutEvent>(OnPostLayout);

            RefreshDocking();
        }
        void InitialLayoutSetup(PostLayoutEvent postLayoutEvent)
        {
            m_PreviousParentRect = target.parent.layout;
            target.UnregisterCallback <PostLayoutEvent>(InitialLayoutSetup);
            target.RegisterCallback <PostLayoutEvent>(OnPostLayout);

            m_WindowDockingLayout.CalculateDockingCornerAndOffset(target.layout, target.parent.layout);
        }
Beispiel #9
0
 private void OnHeaderSizeChanged(PostLayoutEvent e)
 {
     if (!this.m_HeaderSizeIsValid && GroupNode.IsValidRect(this.m_HeaderItem.layout))
     {
         this.UpdateGeometryFromContent();
         this.m_HeaderSizeIsValid = true;
         this.m_HeaderItem.UnregisterCallback <PostLayoutEvent>(new EventCallback <PostLayoutEvent>(this.OnHeaderSizeChanged), Capture.NoCapture);
     }
 }
        private void OnHeaderSizeChanged(PostLayoutEvent e)
        {
            if (!m_HeaderSizeIsValid && (IsValidRect(m_HeaderItem.layout)))
            {
                UpdateGeometryFromContent();

                m_HeaderSizeIsValid = true;

                m_HeaderItem.UnregisterCallback <PostLayoutEvent>(OnHeaderSizeChanged);
            }
        }
Beispiel #11
0
        void ApplySerializewindowLayouts(PostLayoutEvent evt)
        {
            UnregisterCallback <PostLayoutEvent>(ApplySerializewindowLayouts);

            if (m_FloatingWindowsLayout != null)
            {
                m_MasterPreviewView.layout             = m_FloatingWindowsLayout.previewLayout.GetLayout(layout);
                m_BlackboardProvider.blackboard.layout = m_FloatingWindowsLayout.blackboardLayout.GetLayout(layout);

                previewManager.ResizeMasterPreview(m_FloatingWindowsLayout.masterPreviewSize);
            }
            else
            {
                m_FloatingWindowsLayout = new FloatingWindowsLayout();
            }
        }
Beispiel #12
0
        void OnPostLayout(PostLayoutEvent evt)
        {
            const float minimumVisibility = 60f;

            Rect inspectorViewRect = m_GraphInspectorView.layout;

            float minimumXPosition = minimumVisibility - inspectorViewRect.width;
            float maximumXPosition = m_GraphView.layout.width - minimumVisibility;

            float minimumYPosition = minimumVisibility - inspectorViewRect.height;
            float maximumYPosition = m_GraphView.layout.height - minimumVisibility;

            inspectorViewRect.x = Mathf.Clamp(inspectorViewRect.x, minimumXPosition, maximumXPosition);
            inspectorViewRect.y = Mathf.Clamp(inspectorViewRect.y, minimumYPosition, maximumYPosition);

            inspectorViewRect.width  = Mathf.Min(inspectorViewRect.width, layout.width);
            inspectorViewRect.height = Mathf.Min(inspectorViewRect.height, layout.height);

            m_GraphInspectorView.layout = inspectorViewRect;
        }
Beispiel #13
0
 void AdaptRenderTextureOnLayoutChange(PostLayoutEvent evt)
 {
     UnregisterCallback <PostLayoutEvent>(AdaptRenderTextureOnLayoutChange);
     RefreshRenderTextureSize();
 }
 void OnPostLayout(PostLayoutEvent evt)
 {
     graphEditorView.UnregisterCallback <PostLayoutEvent>(OnPostLayout);
     graphEditorView.graphView.FrameAll();
 }
 void InitialLayoutSetup(PostLayoutEvent evt)
 {
     m_ResizeTarget.UnregisterCallback <PostLayoutEvent>(InitialLayoutSetup);
     m_InitialAspectRatio = m_ResizeTarget.layout.width / m_ResizeTarget.layout.height;
 }
Beispiel #16
0
        void OnPostLayout(PostLayoutEvent postLayoutEvent)
        {
            Rect windowRect = target.layout;

            Vector2 scaling = target.parent.layout.size / m_PreviousParentRect.size;

            Vector2 minSize = new Vector2(60f, 60f);

            if (!Mathf.Approximately(target.style.minWidth, 0f))
            {
                minSize.x = target.style.minWidth;
            }

            if (!Mathf.Approximately(target.style.minHeight, 0f))
            {
                minSize.y = target.style.minHeight;
            }

            Vector2 distanceFromParentEdge = Vector2.zero;

            distanceFromParentEdge.x = m_DockLeft ? target.layout.x : (m_PreviousParentRect.width - target.layout.x - target.layout.width);
            distanceFromParentEdge.y = m_DockTop ? target.layout.y: (m_PreviousParentRect.height - target.layout.y - target.layout.height);

            Vector2 normalizedDistanceFromEdge = distanceFromParentEdge / m_PreviousParentRect.size;

            if (m_ResizeWithParentWindow)
            {
                if (scaling.x > 1f)
                {
                    scaling.x = target.parent.layout.width * .33f < minSize.x ? 1f : scaling.x;
                }

                if (scaling.y > 1f)
                {
                    scaling.y = target.parent.layout.height * .33f < minSize.y ? 1f : scaling.y;
                }

                windowRect.size *= scaling;
            }
            else
            {
                normalizedDistanceFromEdge = distanceFromParentEdge / target.parent.layout.size;
            }

            if (m_DockLeft)
            {
                windowRect.x = normalizedDistanceFromEdge.x * target.parent.layout.width;
            }
            else
            {
                windowRect.x = (1f - normalizedDistanceFromEdge.x) * target.parent.layout.width - windowRect.width;
            }

            if (m_DockTop)
            {
                windowRect.y = normalizedDistanceFromEdge.y * target.parent.layout.height;
            }
            else
            {
                windowRect.y = (1f - normalizedDistanceFromEdge.y) * target.parent.layout.height - windowRect.height;
            }

            windowRect.width  = Mathf.Max(Mathf.Min(windowRect.width, target.parent.layout.width), minSize.x);
            windowRect.height = Mathf.Max(Mathf.Min(windowRect.height, target.parent.layout.height), minSize.y);

            float maximumXPosition = Mathf.Max(target.parent.layout.width - windowRect.width, 0f);
            float maximumYPosition = Mathf.Max(target.parent.layout.height - windowRect.height, 0f);

            windowRect.x = Mathf.Clamp(windowRect.x, 0f, maximumXPosition);
            windowRect.y = Mathf.Clamp(windowRect.y, 0f, maximumYPosition);

            m_PreviousParentRect = target.parent.layout;

            target.layout = windowRect;
        }