public RectangleF CalcCursorRectangle() { Paragraph para = CurrentParagraph; int x = CursorPosition; ParagraphPosition pos = para.PositionAtIndex(x); float top = para.LineOffset * LineHeight; float y = top + (pos.LineIndex * LineHeight); return(new RectangleF(pos.ColumnStart, y, pos.ColumnWidth, LineHeight)); }
public void SetCursorPosition(float x, float y) { int line = 0; CurrentParagraphIndex = FindParagraphIndexOnScreen(y); Paragraph para = CurrentParagraph; if (para.LineCount > 0) { line = (int)((y - para.Top - 1) / LineHeight); } ParagraphPosition pos = para.PositionAtLineWidth(x, line); CursorPosition = pos.Position; ResetCursorColoumns(); }
public void MoveParagraphHome() { ParagraphPosition pt = CurrentParagraph.PositionAtIndex(CursorPosition); int line = pt.LineIndex; int col = pt.Column; if (col <= 0) { CursorPosition = 0; } else { CursorPosition = CurrentParagraph.PositionAtLineIndex(0, line); } ResetCursorColoumns(); CurrentColumnBOL = true; }