예제 #1
0
        void UpdateContentContainer(BaseVerticalCollectionView collectionView)
        {
            var headerTotalWidth = m_MultiColumnHeader.columnContainer.layout.width;
            var targetWidth      = Mathf.Max(headerTotalWidth, collectionView.scrollView.contentViewport.resolvedStyle.width);

            collectionView.scrollView.contentContainer.style.width = targetWidth;
        }
예제 #2
0
 public DynamicHeightVirtualizationController(BaseVerticalCollectionView collectionView)
     : base(collectionView)
 {
     m_FillCallback              = Fill;
     m_GeometryChangedCallback   = OnRecycledItemGeometryChanged;
     m_IndexOutOfBoundsPredicate = IsIndexOutOfBounds;
 }
예제 #3
0
 public DynamicHeightVirtualizationController(BaseVerticalCollectionView collectionView)
     : base(collectionView)
 {
     m_FillCallback              = Fill;
     m_GeometryChangedCallback   = OnRecycledItemGeometryChanged;
     m_IndexOutOfBoundsPredicate = IsIndexOutOfBounds;
     m_ScrollView.contentViewport.RegisterCallback <GeometryChangedEvent>(OnViewportGeometryChanged);
 }
예제 #4
0
        protected VerticalVirtualizationController(BaseVerticalCollectionView collectionView)
            : base(collectionView.scrollView)
        {
            m_CollectionView = collectionView;
            m_ActiveItems    = new List <T>();
            m_VisibleItemPredicateDelegate = VisibleItemPredicate;

            k_EmptyRows = new VisualElement();
            k_EmptyRows.AddToClassList(BaseVerticalCollectionView.backgroundFillUssClassName);
        }
예제 #5
0
        /// <summary>
        /// Initialization step once the view is set.
        /// It will insert the multi column header in the hierarchy and register to important callbacks.
        /// </summary>
        /// <param name="collectionView">The view to register to.</param>
        public void PrepareView(BaseVerticalCollectionView collectionView)
        {
            if (m_View != null)
            {
                Debug.LogWarning("Trying to initialize multi column view more than once. This shouldn't happen.");
                return;
            }

            m_View = collectionView;

            // Insert header to the view.
            collectionView.Insert(0, m_MultiColumnHeader);

            // Handle horizontal scrolling
            m_View.scrollView.horizontalScroller.valueChanged += OnHorizontalScrollerValueChanged;
            m_View.scrollView.contentViewport.RegisterCallback <GeometryChangedEvent>(OnViewportGeometryChanged);
            m_MultiColumnHeader.columnContainer.RegisterCallback <GeometryChangedEvent>(OnColumnContainerGeometryChanged);
        }
예제 #6
0
        /// <summary>
        /// Unregisters events and removes the header from the hierarchy.
        /// </summary>
        public void Dispose()
        {
            if (m_View != null)
            {
                m_View.scrollView.horizontalScroller.valueChanged -= OnHorizontalScrollerValueChanged;
                m_View.scrollView.contentViewport.UnregisterCallback <GeometryChangedEvent>(OnViewportGeometryChanged);
                m_View = null;
            }

            m_MultiColumnHeader.columnContainer.UnregisterCallback <GeometryChangedEvent>(OnColumnContainerGeometryChanged);
            m_MultiColumnHeader.columnSortingChanged     -= OnColumnSortingChanged;
            m_MultiColumnHeader.contextMenuPopulateEvent -= OnContextMenuPopulateEvent;
            m_MultiColumnHeader.columnResized            -= OnColumnResized;
            m_MultiColumnHeader.columns.columnAdded      -= OnColumnAdded;
            m_MultiColumnHeader.columns.columnRemoved    -= OnColumnRemoved;
            m_MultiColumnHeader.columns.columnReordered  -= OnColumnReordered;
            m_MultiColumnHeader.columns.columnChanged    -= OnColumnsChanged;
            m_MultiColumnHeader.columns.changed          -= OnColumnChanged;
            m_MultiColumnHeader.RemoveFromHierarchy();
            m_MultiColumnHeader.Dispose();
            m_MultiColumnHeader = null;
        }
예제 #7
0
 public FixedHeightVirtualizationController(BaseVerticalCollectionView collectionView)
     : base(collectionView)
 {
 }
예제 #8
0
 public ListViewDragger(BaseVerticalCollectionView listView)
     : base(listView)
 {
 }
 public BaseReorderableDragAndDropController(BaseVerticalCollectionView view)
 {
     m_View           = view;
     enableReordering = true;
 }