示例#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;
            }
        }
示例#2
0
 public GenericReorderableList(SerializedObject serializedObject, SerializedProperty elements, bool draggable, bool displayHeader, bool displayAddButton, bool displayRemoveButton) : base(serializedObject, elements, draggable, displayHeader, displayAddButton, displayRemoveButton)
 {
     drawElementCallback   = new ElementCallbackDelegate(DrawElement);
     drawHeaderCallback    = new HeaderCallbackDelegate(DrawHeader);
     elementHeightCallback = new ElementHeightCallbackDelegate(ElementHeight);
 }
示例#3
0
 public GenericReorderableList(IList elements, Type elementType, bool draggable, bool displayHeader, bool displayAddButton, bool displayRemoveButton) : base(elements, elementType, draggable, displayHeader, displayAddButton, displayRemoveButton)
 {
     drawElementCallback   = new ElementCallbackDelegate(DrawElement);
     drawHeaderCallback    = new HeaderCallbackDelegate(DrawHeader);
     elementHeightCallback = new ElementHeightCallbackDelegate(ElementHeight);
 }
示例#4
0
 public GenericReorderableList(SerializedObject serializedObject, SerializedProperty elements) : base(serializedObject, elements)
 {
     drawElementCallback   = new ElementCallbackDelegate(DrawElement);
     drawHeaderCallback    = new HeaderCallbackDelegate(DrawHeader);
     elementHeightCallback = new ElementHeightCallbackDelegate(ElementHeight);
 }
示例#5
0
 public GenericReorderableList(IList elements, Type elementType) : base(elements, elementType)
 {
     drawElementCallback   = new ElementCallbackDelegate(DrawElement);
     drawHeaderCallback    = new HeaderCallbackDelegate(DrawHeader);
     elementHeightCallback = new ElementHeightCallbackDelegate(ElementHeight);
 }
示例#6
0
 public FoldableReordableList(List <T> list, bool draggable, bool displayHeader, bool displayAddButton, bool displayRemovebutton, string listTitle, float elementHeightFactor, ElementCallbackDelegate elementCallbackDelegate, ElementHeightCallbackDelegate elementHeightCallBack = null)
     : base(list, typeof(T), draggable, displayHeader, displayAddButton, displayRemovebutton)
 {
     this.drawHeaderCallback = (Rect rect) =>
     {
         rect.x   += 15;
         displayed = EditorGUI.Foldout(rect, displayed, listTitle, true, EditorStyles.foldout);
         if (displayed)
         {
             this.draggable     = true;
             this.displayAdd    = true;
             this.displayRemove = true;
         }
         else
         {
             this.draggable     = false;
             this.displayAdd    = false;
             this.displayRemove = false;
         }
     };
     this.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) =>
     {
         if (displayed)
         {
             rect.y      += 2;
             rect.height -= 5;
             elementCallbackDelegate(rect, index, isActive, isFocused);
         }
     };
     this.elementHeightCallback = elementHeightCallBack;
     if (elementHeightCallback == null)
     {
         this.elementHeightCallback = (int index) =>
         {
             if (displayed)
             {
                 return(elementHeight * elementHeightFactor);
             }
             else
             {
                 return(0);
             }
         };
     }
 }