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, () => {}); }
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, () => {}, () => {}); }