// 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; } }