using System.Collections.Generic; using System.Text; namespace Terminal.Gui; /// /// Represents a single row/column in a Terminal.Gui rendering surface /// (e.g. and ). /// public class Cell { Rune _rune; /// /// The character to display. If is , then is ignored. /// public Rune Rune { get => _rune; set { CombiningMarks.Clear (); _rune = value; } } /// /// The combining marks for that when combined makes this Cell a combining sequence. /// If empty, then is ignored. /// /// /// Only valid in the rare case where is a combining sequence that could not be normalized to a single Rune. /// internal List CombiningMarks { get; } = new List (); /// /// The attributes to use when drawing the Glyph. /// public Attribute? Attribute { get; set; } /// /// Gets or sets a value indicating whether this has /// been modified since the last time it was drawn. /// public bool IsDirty { get; set; } /// public override string ToString () => $"[{Rune}, {Attribute}]"; }