// RichTextKit
// Copyright © 2019-2020 Topten Software. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may
// not use this product except in compliance with the License. You may obtain
// a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
using SkiaSharp;
namespace Topten.RichTextKit
{
///
/// Stores state information about a caret position
///
///
/// The caret position is defined primarily by it's code point
/// index however there are other attributes that can affect
/// where it's displayed and how it moves. This structure
/// encapsulates all the information about the caret required
/// to position and move it correctly.
///
public struct CaretPosition
{
///
/// Initializes a CaretPosition
///
/// The code point index of the caret
/// Whether the caret should be displayed in its alternative position
public CaretPosition(int codePointIndex, bool altPosition = false)
{
CodePointIndex = codePointIndex;
AltPosition = altPosition;
}
///
/// The code point index of the caret insertion point
///
public int CodePointIndex;
///
/// True to display the caret at the end of the previous line
/// rather than the start of the following line when the code
/// point index is exactly on a line break.
///
public bool AltPosition;
}
}