private void DivisionMark(Graphics g, int iPosition, int iProportion)
{
// This function is affected by the RulerAlignment setting
int iMarkStart = 0, iMarkEnd = 0;
if (this.Orientation == enumOrientation.orHorizontal)
{
switch(_RulerAlignment)
{
case enumRulerAlignment.raBottomOrRight:
{
iMarkStart = Height - (Height - _iHeaderOffset)/iProportion;
iMarkEnd = Height;
break;
}
case enumRulerAlignment.raMiddle:
{
iMarkStart = ((Height - ((Height - _iHeaderOffset)/iProportion) + _iHeaderOffset)/2) - 1;
iMarkEnd = (iMarkStart + (Height - _iHeaderOffset)/iProportion);
break;
}
case enumRulerAlignment.raTopOrLeft:
{
iMarkStart = _iHeaderOffset;
iMarkEnd = iMarkStart + (Height + _iHeaderOffset)/iProportion;
break;
}
}
Line(g, iPosition, iMarkStart, iPosition, iMarkEnd);
}
else
{
switch(_RulerAlignment)
{
case enumRulerAlignment.raBottomOrRight:
{
iMarkStart = Width - (Width - _iHeaderOffset)/iProportion;
iMarkEnd = Width;
break;
}
case enumRulerAlignment.raMiddle:
{
iMarkStart = ((Width - ((Width - _iHeaderOffset)/iProportion) + _iHeaderOffset)/2) - 1;
iMarkEnd = (iMarkStart + (Width - _iHeaderOffset)/iProportion);
break;
}
case enumRulerAlignment.raTopOrLeft:
{
iMarkStart = _iHeaderOffset;
iMarkEnd = iMarkStart + (Width + _iHeaderOffset)/iProportion;
break;
}
}
Line(g, iMarkStart, iPosition, iMarkEnd, iPosition);
}
}