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}]";
}