namespace AIStudio.Tools.PowerPoint; /// /// Something a slide of a template carries besides the placeholders of its layout, e.g., a picture /// or a text box its author placed by hand. /// /// /// The model knows a template slide by the slots of its layout, which it fills. Everything else on /// the slide stays unless the model removes it, so the model learns what there is and where: /// a sample picture, a hint to name the source of a picture, or a chart in the way of a slot. /// /// The number of the element on its slide, starting at 1, from back to front; the model refers to it as "element 1". /// The ID of the shape on the slide, which finds the element again when the presentation is written. /// What kind of element it is. /// Where it sits on the slide; null when the file does not say. /// Its text, one paragraph per line; empty when it has none. internal sealed record TemplateSlideElement(int Number, uint ShapeId, TemplateSlideElementKind Kind, SlotBounds? Bounds, string Text) { /// /// How the model refers to the element. /// public string Name => $"element {this.Number}"; }