Beispiel #1
0
 internal static void ClearSelected(QText tb)
 {
     Place start = tb.Selection.Start;
     Place end = tb.Selection.End;
     int fromLine = Math.Min(end.iLine, start.iLine);
     int toLine = Math.Max(end.iLine, start.iLine);
     int fromChar = tb.Selection.FromX;
     int toChar = tb.Selection.ToX;
     if (fromLine < 0) return;
     //
     if (fromLine == toLine)
         tb[fromLine].RemoveRange(fromChar, toChar - fromChar);
     else
     {
         tb[fromLine].RemoveRange(fromChar, tb[fromLine].Count - fromChar);
         tb[toLine].RemoveRange(0, toChar);
         tb.RemoveLine(fromLine + 1, toLine - fromLine - 1);
         InsertCharCommand.MergeLines(fromLine, tb);
     }
     //
     tb.Selection.Start = new Place(fromChar, fromLine);
     //
     tb.needRecalc = true;
 }
Beispiel #2
0
        internal static void MergeLines(int i, QText tb)
        {
            if (i + 1 >= tb.LinesCount) return;

            tb.ExpandBlock(i);
            tb.ExpandBlock(i + 1);
            int pos = tb[i].Count;
            //
            if (tb[i].Count == 0)
                tb.RemoveLine(i);
            else
                if (tb[i + 1].Count == 0)
                    tb.RemoveLine(i + 1);
                else
                {
                    tb[i].AddRange(tb[i + 1]);
                    tb.RemoveLine(i + 1);
                }
            tb.Selection.Start = new Place(pos, i);
            tb.needRecalc = true;
        }