Ejemplo n.º 1
0
        public void BindToTextLayer(EditableTextFlowLayer textLayer)
        {
            this.textLayer = textLayer;
            //check is on the sameline,
            //or multiple lines
            //
            if (IsOnTheSameLine)
            {
                EditableTextLine line = textLayer.GetTextLine(selectionRangeSnapshot.startLineNum);
                //at this line
                //find start and end point
                int startColNum = selectionRangeSnapshot.startColumnNum;
                int endColNum   = selectionRangeSnapshot.endColumnNum;
                int lineHeight  = line.ActualLineHeight;

                _startLocation = new MarkerLocation()
                {
                    lineNum = line.LineNumber, x_offset = line.GetXOffsetAtCharIndex(startColNum), line = line
                };
                _stopLocation = new MarkerLocation()
                {
                    lineNum = line.LineNumber, x_offset = line.GetXOffsetAtCharIndex(endColNum), line = line
                };
            }
            else
            {
                EditableTextLine startLine = textLayer.GetTextLine(selectionRangeSnapshot.startLineNum);
                _startLocation = new MarkerLocation()
                {
                    lineNum  = startLine.LineNumber,
                    x_offset = startLine.GetXOffsetAtCharIndex(selectionRangeSnapshot.startColumnNum),
                    line     = startLine
                };
                //
                EditableTextLine endLine = textLayer.GetTextLine(selectionRangeSnapshot.endLineNum);
                _stopLocation = new MarkerLocation()
                {
                    lineNum  = endLine.LineNumber,
                    x_offset = endLine.GetXOffsetAtCharIndex(selectionRangeSnapshot.endColumnNum),
                    line     = endLine
                };
                //
            }
        }