// August 2008
// - Improvement: redesigned and overloaded TBaseVirtualTree.ScrollIntoView in order to use vertical scrolling
// separately
// - Improvement: optimized TBaseVirtualTree.ScrollIntoView for horizontal scrolling
// - Improvement: in TBaseVirtualTree.WMKeyDown column navigation for VK_PRIOR and VK_NEXT is now handled in same way
// as row navigation
// - Improvement: new TVTHeaderOption hoDisableAnimatedResize to disable animated resize for all columns
// - Improvement: new TVTColumnOption coDisableAnimatedResize to disable animated resize for a specific column
// - Improvement: in TBaseVirtualTree.UpdateHorizontalScrollBar and TBaseVirtualTree.UpdateVerticalScrollBar scrollbar
// updates now avoided for tsUpdating in FStates
// July 2008
// - Improvement: in TBaseVirtualTree.WMHScroll the horizontal page scrolling now considers fixed columns
// - Improvement: in TBaseVirtualTree.ScrollIntoView the case of FFocusedColumn being invalid is considered
// - Improvement: in TBaseVirtualTree.HandleMouseDown DoFocusNode is not called if node focus did not change
// - Improvement: in TBaseVirtualTree.SetFocusedColumn the focused node will only be invalidate if it was actually
// scrolled into view
// - Improvement: new TVTColumnOption coAllowFocus to affect column focus behaviour
// - Improvement: new function TVTHeader.AllowFocus to check wether a column can be focused
// - Improvement: in TBaseVirtualTree.SetFocusedColumn the old colunm and the new column are both invalidated
// - Improvement: merged latest changes from Jim into current code base.
// June 2008
// - Improvement: new property TVirtualTreeColumns.Count
// - Bug fix: in TVirtualTreeColumns.AnimatedResize the column is validated (to avoid "List index out of bounds")
// - Improvement: the content retangle of the cell can be modified via the OnBeforeCellPaint event, the cell paint
// mode indicates wether OnBeforeCellPaint is called for painting the cell or just for getting the
// cell content margin
// - Improvement: new functions added: TBaseVirtualTree.DoGetCellContentMargins,
// TCustomVirtualDrawTree.DoGetCellContentMargin
// - Improvement: new property: TCustomVirtualDrawTree.OnGetCellContentMargin
// - Improvement: in TBaseVirtualTree.GetMaxColumnWidth the cell content margin is considered
// - Improvement: in TBaseVirtualTree.CMHintShow the cell content margin is considered for singleline tooltips
// - Improvement: new function added: TVTHeader.DoGetPopupMenu (to
query the application via TreeView.FOnGetPopupMenu
// for a column specific header popup menu)
// - Improvement: new property added: TBaseVirtualTree.OnCanSplitterResizeColumn,
// new function added: TVirtualTreeColumns.GetScrollWidth
// - Improvement: horizontal page scrolling now uses the average column width (of all visible, non-fixed columns) as
// scroll amount
// - Improvement: procedure TBaseVirtualTree.CMMouseWheel redesigned
// - Bug fix: TVTHeader.DetermineSplitterIndex works correctly even when using fixed columns
// - Bug fix: on right-to-left BiDiMode TVirtualTreeColumns.PaintHeader respects (left) scroll bar correctly
// - Bug fix: for multiline tooltips also the column width is checked to determine the tooltip is needed or
// unnecessary
// - Improvement: the result value of GetUseSmartColumnWidth is initialized correctly
// - Improvement: added hoFullRepaintOnResize to TVTHeaderOption to enable full header repainting (instead of
// repainting all subsequent columns only) on resizing a column
// - Bug fix: horizontal page scrolling via mouse wheel now works correctly, i.e. in TBaseVirtualTree.CMMouseWheel
// ScrollCount includes GetVisibleFixedWidth and FIndent
// - Improvement: new TVTColumnOption coSmartResize to avoid contradicting the virtual paradigm
// - Improvement: horizontal scrolling via mouse wheel can be forced by holding the shift key
// - Improvement: new parameter for function TBaseVirtualTree.GetMaxColumnWidth added: UseSmartColumnWidth (to
// avoid contradicting the virtual paradigm, i.e. leave nodes out of consideration which are not in
// view)
// - Improvement: new parameters for TVTHeader.AutoFitColumns added: SmartAutoFitType, RangeStartCol and
// RangeEndCol
// - Improvement: new parameters for events FOnAfterAutoFitColumns, FOnBeforeAutoFitColumns, FOnAfterGetMaxColumnWidth
// and FOnBeforeGetMaxColumnWidth added
// - Version is now 4.6.0
// May 2008
// - Improvement: new properties: FOnAfterAutoFitColumns, FOnBeforeAutoFitColumns, FOnAfterGetMaxColumnWidth and
// FOnBeforeGetMaxColumnWidth
// - Bug fix: FDropTargetNode is considered in TBaseVirtualTree.DoFreeNode