Пример #1
0
 public ListViewBestFitQueue.ListViewBestFitRequest Dequeue(
     ListViewDetailColumn column)
 {
     if (column == null)
     {
         throw new ArgumentNullException(nameof(column));
     }
     if (column.Owner.ViewElement != this.detailListView)
     {
         throw new ArgumentException("Column " + (object)column + " is not owned by the current GridViewTemplate.");
     }
     ListViewBestFitQueue.ListViewBestFitRequest viewBestFitRequest = new ListViewBestFitQueue.ListViewBestFitRequest(ListViewBestFitQueue.BestFitOperation.BestFitColumn, column);
     if (this.bestFitRequests.Contains(ListViewBestFitQueue.BestFitAllColumns))
     {
         this.bestFitRequests.Clear();
         foreach (ListViewDetailColumn column1 in (Collection <ListViewDetailColumn>) this.detailListView.Owner.Columns)
         {
             if (column1 != column)
             {
                 this.bestFitRequests.AddLast(new ListViewBestFitQueue.ListViewBestFitRequest(ListViewBestFitQueue.BestFitOperation.BestFitColumn, column1));
             }
         }
     }
     else
     {
         this.bestFitRequests.Remove(viewBestFitRequest);
     }
     return(viewBestFitRequest);
 }
Пример #2
0
 public ListViewBestFitQueue.ListViewBestFitRequest Dequeue()
 {
     if (this.bestFitRequests.First == null)
     {
         return((ListViewBestFitQueue.ListViewBestFitRequest)null);
     }
     ListViewBestFitQueue.ListViewBestFitRequest viewBestFitRequest = this.bestFitRequests.First.Value;
     this.bestFitRequests.RemoveFirst();
     return(viewBestFitRequest);
 }
Пример #3
0
 public void ProcessRequests()
 {
     if (this.processing > 0 || this.DetailListView == null || this.DetailListView.ViewElement == null)
     {
         return;
     }
     ++this.processing;
     if (this.BestFitQueue.Count == 0 || !this.DetailListView.CanBestFit())
     {
         --this.processing;
     }
     else
     {
         this.DetailListView.UpdateLayout();
         if (this.DetailListView.Children.Count == 0 || this.DetailListView.Owner.Columns.Count == 0)
         {
             --this.processing;
         }
         else if (this.DetailListView.DesiredSize == SizeF.Empty)
         {
             this.DetailListView.UpdateLayout();
             --this.processing;
         }
         else
         {
             this.updateItemsHeight = false;
             while (this.BestFitQueue.Count > 0)
             {
                 ListViewBestFitQueue.ListViewBestFitRequest viewBestFitRequest = this.BestFitQueue.Dequeue();
                 ListViewBestFitColumnMode?autoSizeMode = viewBestFitRequest.AutoSizeMode;
                 if (viewBestFitRequest.Operation == ListViewBestFitQueue.BestFitOperation.BestFitAllColumns)
                 {
                     this.BestFitColumnsCore(autoSizeMode);
                 }
                 else
                 {
                     ListViewBestFitColumnMode mode = autoSizeMode.HasValue ? autoSizeMode.Value : viewBestFitRequest.Column.AutoSizeMode;
                     this.BestFitColumnCore(viewBestFitRequest.Column, mode);
                 }
             }
             this.UpdateLayout();
             --this.processing;
         }
     }
 }
Пример #4
0
        private void ClearBestFitColumnRequests(ListViewBestFitColumnMode?mode)
        {
            LinkedListNode <ListViewBestFitQueue.ListViewBestFitRequest> previous;

            for (LinkedListNode <ListViewBestFitQueue.ListViewBestFitRequest> node = this.bestFitRequests.Last; node != null; node = previous)
            {
                ListViewBestFitQueue.ListViewBestFitRequest viewBestFitRequest = node.Value;
                previous = node.Previous;
                if (viewBestFitRequest.Operation != ListViewBestFitQueue.BestFitOperation.BestFitColumn)
                {
                    ListViewBestFitColumnMode?autoSizeMode = viewBestFitRequest.AutoSizeMode;
                    ListViewBestFitColumnMode?nullable     = mode;
                    if ((autoSizeMode.GetValueOrDefault() != nullable.GetValueOrDefault() ? 0 : (autoSizeMode.HasValue == nullable.HasValue ? 1 : 0)) == 0)
                    {
                        continue;
                    }
                }
                this.bestFitRequests.Remove(node);
            }
        }
Пример #5
0
 public void EnqueueBestFitColumn(ListViewDetailColumn column)
 {
     if (column == null)
     {
         throw new ArgumentNullException(nameof(column));
     }
     if (column.Owner.ViewElement != this.detailListView)
     {
         throw new ArgumentException("Column " + (object)column + " is from different ListViewElement");
     }
     if (!column.Visible)
     {
         return;
     }
     ListViewBestFitQueue.ListViewBestFitRequest viewBestFitRequest = new ListViewBestFitQueue.ListViewBestFitRequest(ListViewBestFitQueue.BestFitOperation.BestFitColumn, column);
     if (this.bestFitRequests.Contains(ListViewBestFitQueue.BestFitAllColumns) || this.bestFitRequests.Contains(viewBestFitRequest))
     {
         return;
     }
     this.bestFitRequests.AddLast(viewBestFitRequest);
 }