177 lines
5.2 KiB
C#
177 lines
5.2 KiB
C#
// <file>
|
|
// <copyright see="prj:///doc/copyright.txt"/>
|
|
// <license see="prj:///doc/license.txt"/>
|
|
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
|
|
// <version>$Revision$</version>
|
|
// </file>
|
|
|
|
using System;
|
|
using System.Drawing;
|
|
using ICSharpCode.TextEditor.Document;
|
|
|
|
namespace ICSharpCode.TextEditor.Actions
|
|
{
|
|
public class ShiftCaretRight : CaretRight
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftCaretLeft : CaretLeft
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftCaretUp : CaretUp
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftCaretDown : CaretDown
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftWordRight : WordRight
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftWordLeft : WordLeft
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftHome : Home
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftEnd : End
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftMoveToStart : MoveToStart
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftMoveToEnd : MoveToEnd
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftMovePageUp : MovePageUp
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class ShiftMovePageDown : MovePageDown
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
TextLocation oldCaretPos = textArea.Caret.Position;
|
|
base.Execute(textArea);
|
|
textArea.AutoClearSelection = false;
|
|
textArea.SelectionManager.ExtendSelection(oldCaretPos, textArea.Caret.Position);
|
|
}
|
|
}
|
|
|
|
public class SelectWholeDocument : AbstractEditAction
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
textArea.AutoClearSelection = false;
|
|
TextLocation startPoint = new TextLocation(0, 0);
|
|
TextLocation endPoint = textArea.Document.OffsetToPosition(textArea.Document.TextLength);
|
|
if (textArea.SelectionManager.HasSomethingSelected) {
|
|
if (textArea.SelectionManager.SelectionCollection[0].StartPosition == startPoint &&
|
|
textArea.SelectionManager.SelectionCollection[0].EndPosition == endPoint) {
|
|
return;
|
|
}
|
|
}
|
|
textArea.Caret.Position = textArea.SelectionManager.NextValidPosition(endPoint.Y);
|
|
textArea.SelectionManager.ExtendSelection(startPoint, endPoint);
|
|
// after a SelectWholeDocument selection, the caret is placed correctly,
|
|
// but it is not positioned internally. The effect is when the cursor
|
|
// is moved up or down a line, the caret will take on the column that
|
|
// it was in before the SelectWholeDocument
|
|
textArea.SetDesiredColumn();
|
|
}
|
|
}
|
|
|
|
public class ClearAllSelections : AbstractEditAction
|
|
{
|
|
public override void Execute(TextArea textArea)
|
|
{
|
|
textArea.SelectionManager.ClearSelection();
|
|
}
|
|
}
|
|
}
|