Exemple #1
0
        public void MoveSelectionUp()
        {
            if (IsEmpty)
            {
                return;
            }

            var rect = PrintedTokens
                       .Where(t => t.Token.Index + t.Token.Length <= End)
                       .Select(t => t.Rect)
                       .DefaultIfEmpty(RectangleF.Empty)
                       .Last();

            if (rect.IsEmpty)
            {
                return;
            }

            var tokenAbove = getTokenAbove(new PointF(rect.Right, rect.Top));

            Begin = End =
                tokenAbove?.Index ?? 0;

            onChanged();
        }
Exemple #2
0
        public void MoveSelectionDown()
        {
            if (IsEmpty)
            {
                return;
            }

            var rect = PrintedTokens
                       .Where(t => t.Token.Index <= End)
                       .Select(t => t.Rect)
                       .DefaultIfEmpty(RectangleF.Empty)
                       .Last();

            if (rect.IsEmpty)
            {
                return;
            }

            var tokenBelow = getTokenBelow(rect.Location);

            Begin = End =
                tokenBelow?.Right ?? Text.Length;

            onChanged();
        }
Exemple #3
0
        public void SetSelection(TextSelection copy)
        {
            Text  = copy.Text;
            Begin = copy.Begin;
            End   = copy.End;

            PrintedTokens.Clear();
            PrintedTokens.AddRange(copy.PrintedTokens);

            onChanged();
        }
Exemple #4
0
        public void MoveSelectionLeft()
        {
            if (IsEmpty)
            {
                return;
            }

            Begin = End =
                PrintedTokens
                .Select(t => t.Token.Index)
                .Where(F.IsLessThan(End))
                .DefaultIfEmpty(0)
                .Last();

            onChanged();
        }
Exemple #5
0
        public void MoveSelectionRight()
        {
            if (IsEmpty)
            {
                return;
            }

            Begin = End =
                PrintedTokens
                .Select(t => t.Token.Index + t.Token.Length)
                .Where(F.IsGreaterThan(End))
                .DefaultIfEmpty(Text.Length)
                .First();

            onChanged();
        }