Class GenericListAdaptor<T>
Reorderable list adaptor for generic list.
Namespace: Unity.VisualScripting.ReorderableList
Syntax
public class GenericListAdaptor<T> : IReorderableListAdaptor
Type Parameters
Name | Description |
---|---|
T | Type of list element. |
Remarks
This adaptor can be subclassed to add special logic to item height calculation. You may want to implement a custom adaptor class where specialised functionality is needed.
List elements which implement the ICloneable interface are cloned using that interface upon duplication; otherwise the item value or reference is simply copied.
Constructors
GenericListAdaptor(IList<T>, ReorderableListControl.ItemDrawer<T>, Single)
Initializes a new instance of GenericListAdaptor<T>.
Declaration
public GenericListAdaptor(IList<T> list, ReorderableListControl.ItemDrawer<T> itemDrawer, float itemHeight)
Parameters
Type | Name | Description |
---|---|---|
IList<T> | list | The list which can be reordered. |
ReorderableListControl.ItemDrawer<T> | itemDrawer | Callback to draw list item. |
Single | itemHeight | Height of list item in pixels. |
Fields
FixedItemHeight
Fixed height of each list item.
Declaration
public float FixedItemHeight
Field Value
Type | Description |
---|---|
Single |
Properties
Count
Gets count of elements in list.
Declaration
public int Count { get; }
Property Value
Type | Description |
---|---|
Int32 |
Implements
Item[Int32]
Gets element from list.
Declaration
public T this[int index] { get; }
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Zero-based index of element. |
Property Value
Type | Description |
---|---|
T | The element. |
List
Gets the underlying list data structure.
Declaration
public IList<T> List { get; }
Property Value
Type | Description |
---|---|
IList<T> |
Methods
Add()
Add new element at end of list.
Declaration
public virtual void Add()
Implements
BeginGUI()
Occurs before any list items are drawn.
Declaration
public virtual void BeginGUI()
Implements
Remarks
This method is only used to handle GUI repaint events.
CanDrag(Int32)
Determines whether an item can be reordered by dragging mouse.
Declaration
public virtual bool CanDrag(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Zero-based index for list element. |
Returns
Type | Description |
---|---|
Boolean | A value of |
Implements
Remarks
This should be a light-weight method since it will be used to determine whether grab handle should be included for each item in a reorderable list.
Please note that returning a value of false
does not prevent movement
on list item since other draggable items can be moved around it.
CanRemove(Int32)
Determines whether an item can be removed from list.
Declaration
public virtual bool CanRemove(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Zero-based index for list element. |
Returns
Type | Description |
---|---|
Boolean | A value of |
Implements
Remarks
This should be a light-weight method since it will be used to determine whether remove button should be included for each item in list.
This is redundant when HideRemoveButtons is specified.
Clear()
Clear all elements from list.
Declaration
public virtual void Clear()
Implements
DrawItem(Rect, Int32)
Draws main interface for a list item.
Declaration
public virtual void DrawItem(Rect position, int index)
Parameters
Type | Name | Description |
---|---|---|
Rect | position | Position in GUI. |
Int32 | index | Zero-based index of array element. |
Implements
Remarks
This method is used to handle all GUI events.
DrawItemBackground(Rect, Int32)
Draws background of a list item.
Declaration
public virtual void DrawItemBackground(Rect position, int index)
Parameters
Type | Name | Description |
---|---|---|
Rect | position | Total position of list element in GUI. |
Int32 | index | Zero-based index of array element. |
Implements
Remarks
This method is only used to handle GUI repaint events.
Background of list item spans a slightly larger area than the main interface that is drawn by DrawItem(Rect, Int32) since it is drawn behind the grab handle.
Duplicate(Int32)
Duplicate existing element.
Declaration
public virtual void Duplicate(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Zero-based index of list element. |
Implements
Remarks
Consider using the ICloneable interface to duplicate list elements where appropriate.
EndGUI()
Occurs after all list items have been drawn.
Declaration
public virtual void EndGUI()
Implements
Remarks
This method is only used to handle GUI repaint events.
GetItemHeight(Int32)
Gets height of list item in pixels.
Declaration
public virtual float GetItemHeight(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Zero-based index of array element. |
Returns
Type | Description |
---|---|
Single | Measurement in pixels. |
Implements
Insert(Int32)
Insert new element at specified index.
Declaration
public virtual void Insert(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Zero-based index for list element. |
Implements
Move(Int32, Int32)
Move element from source index to destination index.
Declaration
public virtual void Move(int sourceIndex, int destIndex)
Parameters
Type | Name | Description |
---|---|---|
Int32 | sourceIndex | Zero-based index of source element. |
Int32 | destIndex | Zero-based index of destination element. |
Implements
Remove(Int32)
Remove element at specified index.
Declaration
public virtual void Remove(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Zero-based index of list element. |