Exemplo n.º 1
0
        public static void SelectionGroup(string title, List <VPaintObject> objects, ref Vector2 scroll)
        {
            VPaintGUIUtility.DrawColumnRow(24,
                                           () => {
                GUILayout.Label(title);
                if (VPaintGUIUtility.FoldoutMenu())
                {
                    AddMenu(objects);
                }
            });

            bool doVAlign = vAlignRows;

            vAlignRows = false;

            var s = scroll;

            VPaintGUIUtility.DrawColumnRow(200,
                                           () => {
                s = EditorGUILayout.BeginScrollView(s);
                for (int i = 0; i < objects.Count; i++)
                {
                    var obj = objects[i];
                    var r   = EditorGUILayout.BeginHorizontal();
                    GUILayout.Label(obj.name);
                    GUILayout.FlexibleSpace();
                    if (GUILayout.Button("X"))
                    {
                        objects.RemoveAt(i--);
                    }
                    EditorGUILayout.EndHorizontal();
                    if (r.Contains(Event.current.mousePosition) && Event.current.type == EventType.MouseDown && Event.current.button == 0)
                    {
                        EditorGUIUtility.PingObject(obj);
                    }
                }
                EditorGUILayout.EndScrollView();
            });
            scroll = s;

            vAlignRows = doVAlign;

            VPaintGUIUtility.DrawColumnRow(1, () => {});
        }
Exemplo n.º 2
0
        public static void DualSelectionGroup(
            string leftTitle, List <VPaintObject> leftObjects, ref Vector2 leftScroll,
            string rightTitle, List <VPaintObject> rightObjects, ref Vector2 rightScroll)
        {
            VPaintGUIUtility.DrawColumnRow(24,
                                           () => {
                GUILayout.Label(leftTitle);
                GUILayout.FlexibleSpace();
                if (VPaintGUIUtility.FoldoutMenu())
                {
                    AddMenu(leftObjects);
                }
            },
                                           () => {
                if (VPaintGUIUtility.FoldoutMenu())
                {
                    AddMenu(rightObjects);
                }
                GUILayout.FlexibleSpace();
                GUILayout.Label(rightTitle);
            });

            var ls = leftScroll;
            var rs = rightScroll;

            bool doVAlign = vAlignRows;

            vAlignRows = false;

            VPaintGUIUtility.DrawColumnRow(200,
                                           () => {
                ls = EditorGUILayout.BeginScrollView(ls);
                for (int i = 0; i < leftObjects.Count; i++)
                {
                    var obj = leftObjects[i];
                    var r   = EditorGUILayout.BeginHorizontal();
                    GUILayout.Label(obj.name);
                    GUILayout.FlexibleSpace();
                    if (GUILayout.Button("X"))
                    {
                        leftObjects.RemoveAt(i--);
                    }
                    EditorGUILayout.EndHorizontal();
                    if (r.Contains(Event.current.mousePosition) && Event.current.type == EventType.MouseDown && Event.current.button == 0)
                    {
                        EditorGUIUtility.PingObject(obj);
                    }
                }
                EditorGUILayout.EndScrollView();
            },
                                           () => {
                rs = EditorGUILayout.BeginScrollView(rs);
                for (int i = 0; i < rightObjects.Count; i++)
                {
                    var obj = rightObjects[i];
                    var r   = EditorGUILayout.BeginHorizontal();
                    GUILayout.Label(obj.name);
                    GUILayout.FlexibleSpace();
                    if (GUILayout.Button("X"))
                    {
                        rightObjects.RemoveAt(i--);
                    }
                    EditorGUILayout.EndHorizontal();

                    if (r.Contains(Event.current.mousePosition) && Event.current.type == EventType.MouseDown && Event.current.button == 0)
                    {
                        EditorGUIUtility.PingObject(obj);
                    }
                }
                EditorGUILayout.EndScrollView();
            });

            vAlignRows = doVAlign;

            leftScroll  = ls;
            rightScroll = rs;

            VPaintGUIUtility.DrawColumnRow(1, () => {}, () => {});
        }