Exemplo n.º 1
0
        public static bool Draw <T>(T node, bool isSelected) where T : Object, InITreeNode <T>
        {
            if (noMargain == null)
            {
                noMargain        = new GUIStyle();
                noMargain.margin = new RectOffset(0, 0, 0, 0);
            }

            Rect area = EditorGUILayout.BeginHorizontal();

            if (isSelected)
            {
                GUI.DrawTexture(area, EditorResources.Background);
            }

            GUILayout.Space(EditorGUI.indentLevel * 16);

            bool folded = node.IsFoldedOut;

            Texture picture;

            if (folded || node.GetChildren.Count == 0)
            {
                picture = EditorResources.Minus;
            }
            else
            {
                picture = EditorResources.Plus;
            }

            GUILayout.Label(picture, noMargain, GUILayout.Height(EditorResources.Minus.height),
                            GUILayout.Width(EditorResources.Minus.width));
            Rect foldRect = GUILayoutUtility.GetLastRect();

            if (Event.current.ClickedWithin(foldRect))
            {
                folded = !folded;
                Event.current.Use();
            }
            Texture icon = TreeNodeDrawerHelper.LookUpIcon(node);


            TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), icon, noMargain);
            EditorGUILayout.LabelField("");


            EditorGUILayout.EndHorizontal();
            Rect labelArea  = GUILayoutUtility.GetLastRect();
            Rect buttonArea = labelArea;

            if (!node.IsRoot)
            {
                buttonArea.x      = buttonArea.x + 56 + EditorGUI.indentLevel * 16;
                buttonArea.width  = 20;
                buttonArea.height = 14;
                GUI.Label(buttonArea, EditorResources.Up, noMargain);
                if (Event.current.ClickedWithin(buttonArea))
                {
                    NodeWorker.MoveNodeOneUp(node);
                    Event.current.Use();
                }
                buttonArea.y += 15;
                GUI.Label(buttonArea, EditorResources.Down, noMargain);
                if (Event.current.ClickedWithin(buttonArea))
                {
                    NodeWorker.MoveNodeOneDown(node);
                    Event.current.Use();
                }
                labelArea.x += 20;
            }
            labelArea.y += 6;
            labelArea.x += 65;
            EditorGUI.LabelField(labelArea, node.GetName);

            return(folded);
        }
Exemplo n.º 2
0
        public static bool EventFoldout(InAudioEventNode node, bool isSelected)
        {
            if (noMargain == null)
            {
                noMargain        = new GUIStyle();
                noMargain.margin = new RectOffset(0, 0, 0, 0);
            }

            Rect area = EditorGUILayout.BeginHorizontal();

            if (isSelected)
            {
                GUI.DrawTexture(area, EditorResources.Background);
            }

            if (node.Type != EventNodeType.Event)
            {
                GUILayout.Space(EditorGUI.indentLevel * 16);
            }
            else
            {
                GUILayout.Space(EditorGUI.indentLevel * 24);
            }
            bool folded = node.IsFoldedOut;

            if (node.Type != EventNodeType.Event)
            {
                Texture picture;
                if (folded || node.Children.Count == 0)
                {
                    picture = EditorResources.Minus;
                }
                else
                {
                    picture = EditorResources.Plus;
                }

                GUILayout.Label(picture, noMargain, GUILayout.Height(EditorResources.Minus.height), GUILayout.Width(EditorResources.Minus.width));

                Rect foldRect = GUILayoutUtility.GetLastRect();
                if (Event.current.ClickedWithin(foldRect))
                {
                    folded = !folded;
                    Event.current.Use();
                }

                TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), EditorResources.Folder, noMargain);
            }


            GUILayout.Space(30);
            EditorGUILayout.LabelField("");
            EditorGUILayout.EndHorizontal();

            Rect labelArea  = GUILayoutUtility.GetLastRect();
            Rect buttonArea = GUILayoutUtility.GetLastRect();

            if (!node.IsRoot)
            {
                buttonArea.x      = buttonArea.x + 56 + EditorGUI.indentLevel * 16;
                buttonArea.width  = 20;
                buttonArea.height = 14;
                if (node.Type != EventNodeType.Event)
                {
                    GUI.Label(buttonArea, EditorResources.Up, noMargain);
                    if (Event.current.ClickedWithin(buttonArea))
                    {
                        NodeWorker.MoveNodeOneUp(node);
                        Event.current.Use();
                    }
                    buttonArea.y += 15;
                    GUI.Label(buttonArea, EditorResources.Down, noMargain);
                    if (Event.current.ClickedWithin(buttonArea))
                    {
                        NodeWorker.MoveNodeOneDown(node);
                        Event.current.Use();
                    }
                }
                else
                {
                    buttonArea.x -= 10;
                    GUI.Label(buttonArea, EditorResources.Up, noMargain);
                    if (Event.current.ClickedWithin(buttonArea))
                    {
                        NodeWorker.MoveNodeOneUp(node);
                        Event.current.Use();
                    }
                    buttonArea.x += 15;
                    GUI.Label(buttonArea, EditorResources.Down, noMargain);
                    if (Event.current.ClickedWithin(buttonArea))
                    {
                        NodeWorker.MoveNodeOneDown(node);
                        Event.current.Use();
                    }
                }
                labelArea.x += 25;
            }
            if (node.Type != EventNodeType.Event)//As Events are smaller
            {
                labelArea.y += 6;
            }
            labelArea.x += 65;
            EditorGUI.LabelField(labelArea, node.Name);

            return(folded);
        }
Exemplo n.º 3
0
        public static bool EventFoldout(InAudioEventNode node, bool isSelected, out bool clicked)
        {
            clicked = false;
            if (noMargain == null)
            {
                noMargain        = new GUIStyle();
                noMargain.margin = new RectOffset(0, 0, 0, 0);
            }

            Rect fullArea = EditorGUILayout.BeginHorizontal();
            Rect area     = EditorGUILayout.BeginHorizontal();

            if (isSelected)
            {
                GUI.DrawTexture(area, EditorResources.Instance.GetBackground());
            }

            if (node._type != EventNodeType.Event)
            {
                GUILayout.Space(EditorGUI.indentLevel * 16);
            }
            else
            {
                GUILayout.Space(EditorGUI.indentLevel * 24);
            }

            if (node._type != EventNodeType.Event)
            {
                Texture picture;
                if (node.EditorSettings.IsFoldedOut || node._children.Count == 0)
                {
                    picture = EditorResources.Instance.Minus;
                }
                else
                {
                    picture = EditorResources.Instance.Plus;
                }

                if (GUILayout.Button(picture, GUIStyle.none, GUILayout.Height(EditorResources.Instance.Minus.height), GUILayout.Width(EditorResources.Instance.Minus.width)))
                {
                    node.EditorSettings.IsFoldedOut = !node.EditorSettings.IsFoldedOut;
                    Event.current.UseEvent();
                }

                TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), EditorResources.Instance.Folder, noMargain);
            }


            GUILayout.Space(30);
            EditorGUILayout.LabelField("");
            EditorGUILayout.EndHorizontal();

            Rect labelArea = GUILayoutUtility.GetLastRect();


            if (node._type != EventNodeType.Event)//As Events are smaller
            {
                labelArea.y += 6;
            }

            if (node._type != EventNodeType.Event)
            {
                labelArea.x += 60;
            }
            else
            {
                labelArea.x += 30;
            }
            EditorGUI.LabelField(labelArea, node.Name);

            EditorGUILayout.EndHorizontal();
            if (Event.current.ClickedWithin(fullArea))
            {
                clicked = true;
            }


            return(node.EditorSettings.IsFoldedOut);
        }
        public static bool Draw(InMusicNode node, bool isSelected, out bool clicked)
        {
            var group = node as InMusicGroup;

            clicked = false;

            Rect fullArea = EditorGUILayout.BeginHorizontal();

            Rect area = EditorGUILayout.BeginHorizontal();

            if (isSelected)
            {
                GUI.DrawTexture(area, EditorResources.Instance.GetBackground());
            }

            GUILayout.Space(EditorGUI.indentLevel * 16);


            DrawVolume(fullArea, node);


            bool folded = node.IsFoldedOut;

            Texture picture;

            if (folded || node._getChildren.Count == 0)
            {
                picture = EditorResources.Instance.Minus;
            }
            else
            {
                picture = EditorResources.Instance.Plus;
            }

            if (GUILayout.Button(picture, GUIStyle.none, GUILayout.Height(EditorResources.Instance.Minus.height), GUILayout.Width(EditorResources.Instance.Minus.width)))
            {
                node.IsFoldedOut = !node.IsFoldedOut;
                Event.current.UseEvent();
            }

            Texture icon = LookUpIcon(node);

            TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), icon, GUIStyle.none);
            EditorGUILayout.LabelField("");

            EditorGUILayout.EndHorizontal();
            Rect labelArea = GUILayoutUtility.GetLastRect();

            labelArea.y += 8;
            labelArea.x += 60;
            EditorGUI.LabelField(labelArea, node.GetName);

            if (group != null)
            {
                if (!Application.isPlaying)
                {
                    GUI.enabled = false;
                }
                DrawPlayStop(fullArea, group);
                GUI.enabled = true;
            }
            DrawMuteSolo(fullArea, node);


            EditorGUILayout.EndHorizontal();
            if (Event.current.ClickedWithin(fullArea))
            {
                clicked = true;
            }

            return(node.IsFoldedOut);
        }
        public static bool Draw <T>(T node, bool isSelected, out bool clicked) where T : Object, InITreeNode <T>
        {
            clicked = false;

            Rect fullArea = EditorGUILayout.BeginHorizontal();
            Rect area     = EditorGUILayout.BeginHorizontal();

            if (isSelected)
            {
                GUI.DrawTexture(area, EditorResources.Instance.GetBackground());
            }


            GUILayout.Space(EditorGUI.indentLevel * 16);

            bool folded = node.IsFoldedOut;

            Texture picture;

            if (EditorResources.Instance != null)
            {
                if (folded || node._getChildren.Count == 0)
                {
                    picture = EditorResources.Instance.Minus;
                }
                else
                {
                    picture = EditorResources.Instance.Plus;
                }
            }
            else
            {
                picture = null;
            }

            if (GUILayout.Button(picture, GUIStyle.none, GUILayout.Height(EditorResources.Instance.Minus.height),
                                 GUILayout.Width(EditorResources.Instance.Minus.width)))
            {
                node.IsFoldedOut = !node.IsFoldedOut;
                Event.current.UseEvent();
            }
            Texture icon = TreeNodeDrawerHelper.LookUpIcon(node);


            TreeNodeDrawerHelper.DrawIcon(GUILayoutUtility.GetLastRect(), icon, GUIStyle.none);
            EditorGUILayout.LabelField("");


            EditorGUILayout.EndHorizontal();
            Rect labelArea = GUILayoutUtility.GetLastRect();

            var audioNode = node as InAudioNode;

            if (audioNode != null)
            {
                TreeNodeDrawerHelper.DrawVolume(fullArea, audioNode._nodeData as InFolderData);
            }

            labelArea.y += 6;
            labelArea.x += 60;
            EditorGUI.LabelField(labelArea, node.GetName);

            EditorGUILayout.EndHorizontal();

            if (Event.current.ClickedWithin(fullArea))
            {
                clicked = true;
            }

            return(node.IsFoldedOut);
        }