void DetermineTrim(ScrollButtonDirection scrollDir) { if (scrollDir != ScrollButtonDirection.None || displayPool.Count <= MaxViews) { return; } for (int i = displayPool.Count - 1; i >= 0; i--) { if (i < MaxViews) { continue; } ReturnViewToPool(displayPool[i]); } }
void DetermineScrollRate() { scrollTime += Time.deltaTime; var scrollValue = scrollBar.value; if (scrollValue > 0.45f && scrollValue < 0.55f) { scrollTime = 0f; return; } var speedMulti = 0.1f; ScrollButtonDirection direction = ScrollButtonDirection.None; if (scrollValue < 0.45f) { direction = ScrollButtonDirection.Down; speedMulti = Mathf.Lerp(0.1f, 1f, scrollValue / 0.45f); } else { direction = ScrollButtonDirection.Up; speedMulti = Mathf.Lerp(0.1f, 1f, (1f - scrollValue) / 0.45f); } if (scrollTime >= scrollSpeed * speedMulti) { scrollTime = 0f; if (direction == ScrollButtonDirection.Up) { OnScrollUp(); } if (direction == ScrollButtonDirection.Down) { OnScrollDown(); } } }
void TryShowView(ChatEntryData data, bool forBottom, int proposedIndex, ScrollButtonDirection scrollDir = ScrollButtonDirection.None) { var entry = GetViewFromPool(); if (forBottom) { entry.transform.SetAsLastSibling(); displayPool.Insert(0, entry); } else { entry.transform.SetAsFirstSibling(); displayPool.Add(entry); } if (!gameObject.activeInHierarchy) { return; } entry.SetChatEntryView(data, this, proposedIndex, contentWidth); DetermineTrim(scrollDir); }
public ScrollBarButton(ScrollButtonDirection direction) { this.Direction = direction; }
private ArrowDirection GetArrowDirection(ScrollButtonDirection buttonDirection) { return((ArrowDirection)buttonDirection); }
/// <summary> /// Initializes a new instance of the RadRepeatButtonElement class using scroll /// button direction. /// </summary> public RadRepeatScrollButtonElement(ScrollButtonDirection direction) { this.Direction = direction; }