diff -r 3145aadca3d2 -r 0c551e8818e0 External/Aga.Controls/Tree/FixedRowHeightLayout.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/External/Aga.Controls/Tree/FixedRowHeightLayout.cs Sun May 27 15:16:19 2012 +0000 @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; + +namespace Aga.Controls.Tree +{ + internal class FixedRowHeightLayout : IRowLayout + { + private TreeViewAdv _treeView; + + public FixedRowHeightLayout(TreeViewAdv treeView, int rowHeight) + { + _treeView = treeView; + PreferredRowHeight = rowHeight; + } + + private int _rowHeight; + public int PreferredRowHeight + { + get { return _rowHeight; } + set { _rowHeight = value; } + } + + public Rectangle GetRowBounds(int rowNo) + { + return new Rectangle(0, rowNo * _rowHeight, 0, _rowHeight); + } + + public int PageRowCount + { + get + { + return Math.Max((_treeView.DisplayRectangle.Height - _treeView.ColumnHeaderHeight) / _rowHeight, 0); + } + } + + public int CurrentPageSize + { + get + { + return PageRowCount; + } + } + + public int GetRowAt(Point point) + { + point = new Point(point.X, point.Y + (_treeView.FirstVisibleRow * _rowHeight) - _treeView.ColumnHeaderHeight); + return point.Y / _rowHeight; + } + + public int GetFirstRow(int lastPageRow) + { + return Math.Max(0, lastPageRow - PageRowCount + 1); + } + + public void ClearCache() + { + } + } +}