/// <summary>
        /// Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = ts.CurrentTB;

            prevText.Clear();

            ts.OnTextChanging(ref insertedText);

            tb.Selection.BeginUpdate();
            tb.BeginUpdate();
            for (int i = ranges.Count - 1; i >= 0; i--)
            {
                tb.Selection.Start = ranges[i].Start;
                tb.Selection.End   = ranges[i].End;
                prevText.Add(tb.Selection.Text);
                ClearSelected(ts);
                if (insertedText != "")
                {
                    InsertTextCommand.InsertText(insertedText, ts);
                }
            }
            if (ranges.Count > 0)
            {
                ts.OnTextChanged(ranges[0].Start.iLine, ranges[ranges.Count - 1].End.iLine);
            }

            tb.EndUpdate();
            tb.Selection.EndUpdate();
            ts.NeedRecalc(new TextSource.TextChangedEventArgs(0, 1));

            lastSel = new RangeInfo(tb.Selection);
        }
Пример #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="ts"></param>
 /// <param name="iLines"></param>
 public RemoveLinesCommand(TextSource ts, List <int> iLines)
     : base(ts)
 {
     iLines.Sort();
     //
     this.iLines = iLines;
     lastSel     = sel = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #3
0
 /// <summary>
 ///     Constructor
 /// </summary>
 /// <param name="tb">Underlaying textbox</param>
 /// <param name="ranges">List of ranges for replace</param>
 /// <param name="insertedText">Text for inserting</param>
 public RemoveLinesCommand(TextSource ts, List <int> iLines)
     : base(ts)
 {
     //sort iLines
     iLines.Sort();
     //
     _iLines = iLines;
     LastSel = Sel = new RangeInfo(ts.CurrentTb.Selection);
 }
        /// <summary>
        /// Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = ts.CurrentTB;

            ts.OnTextChanging();
            deletedText = tb.Selection.Text;
            ClearSelected(ts);
            lastSel = new RangeInfo(tb.Selection);
            ts.OnTextChanged(lastSel.Start.iLine, lastSel.Start.iLine);
        }
Пример #5
0
        /// <summary>
        /// Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = ts.CurrentTB;

            ts.OnTextChanging();
            deletedText = tb.Selection.Text;
            ClearSelected(ts);
            lastSel = new RangeInfo(tb.Selection);
            ts.OnTextChanged(lastSel.Start.iLine, lastSel.Start.iLine);
        }
Пример #6
0
        /// <summary>
        /// Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = ts.CurrentTB;

            string temp = null;
            ts.OnTextChanging(ref temp);
            if (temp == "")
                throw new ArgumentOutOfRangeException();

            deletedText = tb.Selection.Text;
            ClearSelected(ts);
            lastSel = new RangeInfo(tb.Selection);
            ts.OnTextChanged(lastSel.Start.iLine, lastSel.Start.iLine);
        }
Пример #7
0
        /// <summary>
        ///     Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = Ts.CurrentTb;

            string temp = null;
            Ts.OnTextChanging(ref temp);
            if (temp == "")
                throw new ArgumentOutOfRangeException();

            _deletedText = tb.Selection.Text;
            ClearSelected(Ts);
            LastSel = new RangeInfo(tb.Selection);
            Ts.OnTextChanged(LastSel.Start.ILine, LastSel.Start.ILine);
        }
Пример #8
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="ts">Underlaying textsource</param>
 /// <param name="ranges">List of ranges for replace</param>
 public ReplaceMultipleTextCommand(TextSource ts, List <ReplaceRange> ranges)
     : base(ts)
 {
     //sort ranges by place
     ranges.Sort((r1, r2) =>
     {
         if (r1.ReplacedRange.Start.iLine == r2.ReplacedRange.Start.iLine)
         {
             return(r1.ReplacedRange.Start.iChar.CompareTo(r2.ReplacedRange.Start.iChar));
         }
         return(r1.ReplacedRange.Start.iLine.CompareTo(r2.ReplacedRange.Start.iLine));
     });
     //
     this.ranges = ranges;
     lastSel     = sel = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #9
0
        /// <summary>
        /// Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = ts.CurrentTB;

            string temp = null;

            ts.OnTextChanging(ref temp);
            if (temp == "")
            {
                throw new ArgumentOutOfRangeException();
            }

            deletedText = tb.Selection.Text;
            ClearSelected(ts);
            lastSel = new RangeInfo(tb.Selection);
            ts.OnTextChanged(lastSel.Start.iLine, lastSel.Start.iLine);
        }
Пример #10
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="ts">Underlaying textbox</param>
 /// <param name="ranges">List of ranges for replace</param>
 /// <param name="insertedText">Text for inserting</param>
 public ReplaceTextCommand(TextSource ts, List <Range> ranges, string insertedText)
     : base(ts)
 {
     //sort ranges by place
     ranges.Sort((r1, r2) =>
     {
         if (r1.Start.iLine == r2.Start.iLine)
         {
             return(r1.Start.iChar.CompareTo(r2.Start.iChar));
         }
         return(r1.Start.iLine.CompareTo(r2.Start.iLine));
     });
     //
     this.ranges       = ranges;
     this.insertedText = insertedText;
     lastSel           = sel = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #11
0
        /// <summary>
        ///     Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = Ts.CurrentTb;

            string temp = null;

            Ts.OnTextChanging(ref temp);
            if (temp == "")
            {
                throw new ArgumentOutOfRangeException();
            }

            _deletedText = tb.Selection.Text;
            ClearSelected(Ts);
            LastSel = new RangeInfo(tb.Selection);
            Ts.OnTextChanged(LastSel.Start.ILine, LastSel.Start.ILine);
        }
Пример #12
0
        /// <summary>
        ///     Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = Ts.CurrentTb;

            _prevText.Clear();

            Ts.OnTextChanging();

            tb.Selection.BeginUpdate();
            for (var i = _ranges.Count - 1; i >= 0; i--)
            {
                tb.Selection.Start = _ranges[i].ReplacedRange.Start;
                tb.Selection.End   = _ranges[i].ReplacedRange.End;
                _prevText.Add(tb.Selection.Text);
                ClearSelectedCommand.ClearSelected(Ts);
                InsertTextCommand.InsertText(_ranges[i].ReplaceText, Ts);
                Ts.OnTextChanged(_ranges[i].ReplacedRange.Start.ILine, _ranges[i].ReplacedRange.End.ILine);
            }
            tb.Selection.EndUpdate();
            Ts.NeedRecalc(new TextSource.TextChangedEventArgs(0, 1));

            LastSel = new RangeInfo(tb.Selection);
        }
Пример #13
0
        /// <summary>
        /// Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = ts.CurrentTB;

            prevText.Clear();

            ts.OnTextChanging();

            tb.Selection.BeginUpdate();
            for (int i = iLines.Count - 1; i >= 0; i--)
            {
                var iLine = iLines[i];

                prevText.Add(ts[iLine].Text);//backward
                ts.RemoveLine(iLine);
                //ts.OnTextChanged(ranges[i].Start.iLine, ranges[i].End.iLine);
            }
            tb.Selection.Start = new Place(0, 0);
            tb.Selection.EndUpdate();
            ts.NeedRecalc(new TextSource.TextChangedEventArgs(0, 1));

            lastSel = new RangeInfo(tb.Selection);
        }
 public UndoableCommand(TextSource ts)
 {
     Ts  = ts;
     Sel = new RangeInfo(ts.CurrentTb.Selection);
 }
Пример #15
0
 public UndoableCommand(TextSource ts, bool fastUndo)
 {
     FastUndo = fastUndo;
     this.ts = ts;
     sel = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #16
0
        /// <summary>
        ///     Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = Ts.CurrentTb;
            _prevText.Clear();

            Ts.OnTextChanging(ref _insertedText);

            tb.Selection.BeginUpdate();
            tb.BeginUpdate();
            for (var i = _ranges.Count - 1; i >= 0; i--)
            {
                tb.Selection.Start = _ranges[i].Start;
                tb.Selection.End = _ranges[i].End;
                _prevText.Add(tb.Selection.Text);
                ClearSelected(Ts);
                if (_insertedText != "")
                    InsertTextCommand.InsertText(_insertedText, Ts);
            }
            if (_ranges.Count > 0)
                Ts.OnTextChanged(_ranges[0].Start.ILine, _ranges[_ranges.Count - 1].End.ILine);
            tb.EndUpdate();
            tb.Selection.EndUpdate();
            Ts.NeedRecalc(new TextSource.TextChangedEventArgs(0, 1));

            LastSel = new RangeInfo(tb.Selection);
        }
Пример #17
0
 public override void Execute()
 {
     lastSel = new RangeInfo(ts.CurrentTB.Selection);
     OnTextChanged(false);
 }
Пример #18
0
 public override void Execute()
 {
     //remember selection
     lastSel = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #19
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="ts">Underlaying textbox</param>
 /// <param name="iLines">List of line numbers for replace</param>
 public RemoveLinesCommand(TextSource ts, List<int> iLines)
     : base(ts)
 {
     //sort iLines
     iLines.Sort();
     //
     this.iLines = iLines;
     lastSel = sel = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #20
0
 public UndoableCommand(TextSource ts)
 {
     this.ts = ts;
     sel = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #21
0
 public UndoableCommand(TextSource ts)
 {
     this.ts = ts;
     sel     = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #22
0
 public override void Execute()
 {
     lastSel = new RangeInfo(ts.CurrentTB.Selection);
     OnTextChanged(false);
 }
        /// <summary>
        /// Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = ts.CurrentTB;
            prevText.Clear();

            ts.OnTextChanging();

            tb.Selection.BeginUpdate();
            for (int i = ranges.Count - 1; i >= 0; i--)
            {
                tb.Selection.Start = ranges[i].ReplacedRange.Start;
                tb.Selection.End = ranges[i].ReplacedRange.End;
                prevText.Add(tb.Selection.Text);
                ClearSelectedCommand.ClearSelected(ts);
                InsertTextCommand.InsertText(ranges[i].ReplaceText, ts);
                ts.OnTextChanged(ranges[i].ReplacedRange.Start.iLine, ranges[i].ReplacedRange.End.iLine);
            }
            tb.Selection.EndUpdate();
            ts.NeedRecalc(new TextSource.TextChangedEventArgs(0, 1));

            lastSel = new RangeInfo(tb.Selection);
        }
 public UndoableCommand(TextSource ts)
 {
     Ts = ts;
     Sel = new RangeInfo(ts.CurrentTb.Selection);
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="ts">Underlaying textsource</param>
 /// <param name="ranges">List of ranges for replace</param>
 public ReplaceMultipleTextCommand(TextSource ts, List<ReplaceRange> ranges)
     : base(ts)
 {
     //sort ranges by place
     ranges.Sort((r1, r2) =>
     {
         if (r1.ReplacedRange.Start.iLine == r2.ReplacedRange.Start.iLine)
             return r1.ReplacedRange.Start.iChar.CompareTo(r2.ReplacedRange.Start.iChar);
         return r1.ReplacedRange.Start.iLine.CompareTo(r2.ReplacedRange.Start.iLine);
     });
     //
     this.ranges = ranges;
     lastSel = sel = new RangeInfo(ts.CurrentTB.Selection);
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="tb">Underlaying textbox</param>
 /// <param name="ranges">List of ranges for replace</param>
 /// <param name="insertedText">Text for inserting</param>
 public ReplaceTextCommand(TextSource ts, List<Range> ranges, string insertedText)
     : base(ts)
 {
     //sort ranges by place
     ranges.Sort((r1, r2)=>
         {
             if (r1.Start.iLine == r2.Start.iLine)
                 return r1.Start.iChar.CompareTo(r2.Start.iChar);
             return r1.Start.iLine.CompareTo(r2.Start.iLine);
         });
     //
     this.ranges = ranges;
     this.insertedText = insertedText;
     lastSel = sel = new RangeInfo(ts.CurrentTB.Selection);
 }
Пример #27
0
        /// <summary>
        /// Execute operation
        /// </summary>
        public override void Execute()
        {
            var tb = ts.CurrentTB;
            prevText.Clear();

            ts.OnTextChanging();

            tb.Selection.BeginUpdate();
            for(int i = iLines.Count - 1; i >= 0; i--)
            {
                var iLine = iLines[i];

                prevText.Add(ts[iLine].Text);//backward
                ts.RemoveLine(iLine);
                //ts.OnTextChanged(ranges[i].Start.iLine, ranges[i].End.iLine);
            }
            tb.Selection.Start = new Place(0, 0);
            tb.Selection.EndUpdate();
            ts.NeedRecalc(new TextSource.TextChangedEventArgs(0, 1));

            lastSel = new RangeInfo(tb.Selection);
        }
Пример #28
0
        internal bool FastUndo = false;         // By WendyH

        public UndoableCommand(TextSource ts, bool fastUndo)
        {
            FastUndo = fastUndo;
            this.ts  = ts;
            sel      = new RangeInfo(ts.CurrentTB.Selection);
        }
Пример #29
0
 public override void Execute()
 {
     //remember selection
     lastSel = new RangeInfo(ts.CurrentTB.Selection);
 }