// 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.
//
// Ported from: https://github.com/foliojs/linebreak
using System.Diagnostics;
namespace Topten.RichTextKit
{
///
/// Information about a potential line break position
///
[DebuggerDisplay("{PositionMeasure}/{PositionWrap} @ {Required}")]
internal struct LineBreak
{
///
/// Constructor
///
/// The code point index to measure to
/// The code point index to actually break the line at
/// True if this is a required line break; otherwise false
public LineBreak(int positionMeasure, int positionWrap, bool required = false)
{
this.PositionMeasure = positionMeasure;
this.PositionWrap = positionWrap;
this.Required = required;
}
///
/// The break position, before any trailing whitespace
///
///
/// This doesn't include trailing whitespace
///
public int PositionMeasure;
///
/// The break position, after any trailing whitespace
///
///
/// This includes trailing whitespace
///
public int PositionWrap;
///
/// True if there should be a forced line break here
///
public bool Required;
}
}