コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: ListView.cs プロジェクト: Soju06/NUMC
 private void UpdateItemSize(IListViewItem item)
 {
     using (var g = CreateGraphics())
     {
         UpdateItemSize(item, g);
     }
 }
コード例 #4
0
    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]);
        }
    }
コード例 #5
0
ファイル: ListView.cs プロジェクト: Soju06/NUMC
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: ListView.cs プロジェクト: Soju06/NUMC
        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();
            }
        }
コード例 #8
0
 public ListViewItemEventArgs(IListViewItem item)
 => Item = item;
コード例 #9
0
        /// <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();
        }
コード例 #10
0
ファイル: ListView.cs プロジェクト: Soju06/NUMC
 private void UpdateItemPosition(IListViewItem item, int index)
 {
     item.Area = new Rectangle(2, (index * ItemHeight), item.Area.Width, ItemHeight);
 }
コード例 #11
0
ファイル: ListView.cs プロジェクト: Soju06/NUMC
 public int GetItemIndex(IListViewItem item)
 {
     return(Items.IndexOf(item));
 }