Ejemplo n.º 1
0
        public PrettyListViewer(
            SerializedObject serializedObject,
            SerializedProperty elements,
            HeaderCallbackDelegate onDrawHeader,
            ElementCallbackDelegate onDrawElement,
            ElementHeightCallbackDelegate elementHeightGetter,
            ReorderCallbackDelegate onReorder = null,
            AddCallbackDelegate onAdd         = null,
            RemoveCallbackDelegate onRemove   = null
            ) : base(serializedObject, elements)
        {
            drawHeaderCallback    = onDrawHeader;
            drawElementCallback   = onDrawElement;
            elementHeightCallback = elementHeightGetter;

            if (onReorder != null)
            {
                draggable         = true;
                onReorderCallback = onReorder;
            }
            else
            {
                draggable = false;
            }

            if (onAdd != null)
            {
                displayAdd    = true;
                onAddCallback = onAdd;
            }
            else
            {
                displayAdd = false;
            }

            if (onRemove != null)
            {
                displayRemove    = true;
                onRemoveCallback = onRemove;
            }
            else
            {
                displayRemove = false;
            }
        }
Ejemplo n.º 2
0
    public ReorderableList CreateRecordList(SerializedObject serializedObject, string varName, string title,
                                            ReorderCallbackDelegate onreorder, SelectCallbackDelegate onselect, AddCallbackDelegate onadd, RemoveCallbackDelegate onremove)
    {
        var reordList = new ReorderableList(serializedObject, serializedObject.FindProperty(varName), true, true, true, true);

        reordList.displayAdd         = reordList.displayRemove = true;
        reordList.drawHeaderCallback = (Rect rect) =>
        {
            EditorGUI.LabelField(rect, title, EditorStyles.boldLabel);
            Texture2D btnTexture = reordList.elementHeight == 0f ? EditorGUIUtility.FindTexture("winbtn_win_max_h") : EditorGUIUtility.FindTexture("winbtn_win_min_h");
            if (GUI.Button(new Rect(rect.width + 4, rect.y + 2, rect.height, rect.height), btnTexture, EditorStyles.label))
            {
                reordList.elementHeight = reordList.elementHeight == 0f ? 21f : 0f;
                reordList.draggable     = reordList.elementHeight > 0f;
            }
        };
        reordList.onReorderCallback = onreorder;
        reordList.onSelectCallback  = onselect;
        reordList.onAddCallback     = onadd;
        reordList.onRemoveCallback  = onremove;
        return(reordList);
    }