コード例 #1
0
ファイル: editable.cs プロジェクト: lishali12345/UIWidgets
        public TextPosition getParagraphBackward(TextPosition position, TextAffinity?affinity = null)
        {
            var lineCount = this._textPainter.getLineCount();

            Paragraph.LineRange line = null;
            for (int i = lineCount - 1; i >= 0; --i)
            {
                line = this._textPainter.getLineRange(i);
                if (i != 0 && !this._textPainter.getLineRange(i - 1).hardBreak)
                {
                    continue;
                }

                if (line.start < position.offset)
                {
                    break;
                }
            }

            if (line == null)
            {
                return(new TextPosition(position.offset, affinity ?? position.affinity));
            }

            return(new TextPosition(line.start, affinity ?? position.affinity));
        }
コード例 #2
0
ファイル: editable.cs プロジェクト: lishali12345/UIWidgets
        public TextPosition getParagraphForward(TextPosition position, TextAffinity?affinity = null)
        {
            var lineCount = this._textPainter.getLineCount();

            Paragraph.LineRange line = null;
            for (int i = 0; i < lineCount; ++i)
            {
                line = this._textPainter.getLineRange(i);
                if (!line.hardBreak)
                {
                    continue;
                }

                if (line.end > position.offset)
                {
                    break;
                }
            }

            if (line == null)
            {
                return(new TextPosition(position.offset, affinity ?? position.affinity));
            }

            return(new TextPosition(line.end, affinity ?? position.affinity));
        }