public override void GetFirstAndLastRowVisible(List<TreeViewItem> rows, float topPixel, float heightInPixels, out int firstRowVisible, out int lastRowVisible)
{
if (rows.Count != this.m_RowRects.Count)
{
Debug.LogError("Mismatch in state: rows vs cached rects");
}
int num = -1;
int num2 = -1;
for (int i = 0; i < this.m_RowRects.Count; i++)
{
Rect rect = this.m_RowRects[i];
if (rect.y > topPixel)
{
Rect rect2 = this.m_RowRects[i];
if (rect2.y < (topPixel + heightInPixels))
{
goto Label_009D;
}
}
Rect rect3 = this.m_RowRects[i];
System.Boolean ReflectorVariable0 = true;
goto Label_009E;
Label_009D:
ReflectorVariable0 = false;
Label_009E:
if (ReflectorVariable0 ? ((rect3.yMax > topPixel) && (this.m_RowRects[i].yMax < (topPixel + heightInPixels))) : true)
{
if (num == -1)
{
num = i;
}
num2 = i;
}
}
if ((num != -1) && (num2 != -1))
{
firstRowVisible = num;
lastRowVisible = num2;
}
else
{
firstRowVisible = 0;
lastRowVisible = rows.Count - 1;
}
}