protected virtual void UpdateItem(IListViewItem item, int order, float offset, ref bool doneSettling) { var targetPosition = m_StartPosition + offset * Vector3.back; var targetRotation = Quaternion.identity; UpdateItemTransform(item, order, targetPosition, targetRotation, false, ref doneSettling); }
protected virtual void UpdateItemTransform(IListViewItem item, int order, Vector3 targetPosition, Quaternion targetRotation, bool dontSettle, ref bool doneSettling) { if (m_Settling && !dontSettle && m_EnableSettling) { var localPosition = Vector3.Lerp(item.localPosition, targetPosition, m_SettleSpeed); item.localPosition = localPosition; if (localPosition != targetPosition) { doneSettling = false; } var localRotation = Quaternion.Lerp(item.localRotation, targetRotation, m_SettleSpeed); item.localRotation = localRotation; if (localRotation != targetRotation) { doneSettling = false; } } else { item.localPosition = targetPosition; item.localRotation = targetRotation; } item.SetSiblingIndex(order); }
private void UpdateItemSize(IListViewItem item) { using (var g = CreateGraphics()) { UpdateItemSize(item, g); } }
public void Setup(IListViewItemModel[] data) { ScrollRect.onValueChanged.AddListener(OnDragDetectionPositionChange); this.data = data; this.ItemHeight = ItemPool.ItemHeight; int length = data.Length; DragDetectionT.sizeDelta = new Vector2(DragDetectionT.sizeDelta.x, length * ItemHeight + (length - 1) * spacing); IListViewItem[][] components = new IListViewItem[TargetVisibleItemCount + BufferSize][]; for (int i = 0; i < TargetVisibleItemCount + BufferSize; i++) { GameObject itemGO = ItemPool.ItemBorrow(); itemGO.transform.SetParent(ContentT); itemGO.SetActive(true); itemGO.transform.localScale = Vector3.one; var items = itemGO.GetComponents <IListViewItem>(); var itemModel = data[dataTail]; int itemType = itemModel.GetItemType(); items[itemType].Setup(itemModel); components[i] = items; dataTail++; } for (int i = 0; i < length; i++) { int itemType = data[i].GetItemType(); modelToItem.Add(data[i], components[i % components.Length][itemType]); } }
private void UpdateItemSize(IListViewItem item, Graphics g) { var size = g.MeasureString(item.Text, Font); size.Width++; if (ShowIcons) { size.Width += _iconSize + 8; } item.Area = new Rectangle(item.Area.Left, item.Area.Top, (int)size.Width, item.Area.Height); }
protected virtual void UpdateVisibleItem(TData datum, int order, float offset, ref bool doneSettling) { TItem item; var index = datum.index; if (!m_ListItems.TryGetValue(index, out item)) { GetNewItem(datum, out item); } m_LastUpdatedItemItem = item; UpdateItem(item, order, offset, ref doneSettling); }
private void UpdateContentSize(IListViewItem item) { var itemWidth = item.Area.Right + 1; if (itemWidth == ContentSize.Width) { UpdateContentSize(); return; } if (itemWidth > ContentSize.Width) { ContentSize = new Size(itemWidth, ContentSize.Height); Invalidate(); } }
public ListViewItemEventArgs(IListViewItem item) => Item = item;
/// <summary> /// This callback updates a list item; we do this a bit tardy to allow the underlying session to /// update to its new status. /// </summary> /// <param name="state">List item to update</param> private void UpdateListItem(object state) { IListViewItem item = (IListViewItem)state; item.UpdateState(); }
private void UpdateItemPosition(IListViewItem item, int index) { item.Area = new Rectangle(2, (index * ItemHeight), item.Area.Width, ItemHeight); }
public int GetItemIndex(IListViewItem item) { return(Items.IndexOf(item)); }