Skip to content

API reference / Common / Engine types / TextListStyle

Interface: TextListStyle ​

A per-level set of paragraph defaults (CT_TextListStyle) — nine [TextParagraphProperties], one per outline level, over a default layer that sits beneath them all.

One type, four appearances in the file format, all the same content model:

ElementWhereWhat it styles
a:lstStyleinside any a:txBody / p:txBodythat one body's paragraphs
p:titleStyle / p:bodyStyle / p:otherStylep:sldMaster › p:txStylesevery placeholder of that class on the master's slides
p:defaultTextStylepresentation.xmltext in shapes that are not placeholders
a:lvl1pPr … (a:lstStyle on a table style, a chart)assortedtheir own text

Because each level is a [TextParagraphProperties] — itself sparse, and itself carrying the DefaultCharacterProperties (a:defRPr) layer — one list style contributes to both the paragraph and the character cascade. That is why the placeholder inheritance chain needs no second, character-shaped type: a:defRPr rides inside the level it was declared on.

Absent is empty. A missing element and a present-but-empty one are the same thing to inheritance — neither specifies anything. A text body, which usually has none, holds its own as Option<Box<TextListStyle>> and None for both, never an empty one, so the common body pays a pointer rather than ten empty levels. Everywhere else the type stands bare: is_empty is the test, and the field it sits in skips serialization when it holds nothing.

Properties ​

PropertyDescription
default?
TextParagraphProperties
a:defPPr — the layer beneath every level, applied where the level itself specifies nothing. Rarely populated in authored files (PowerPoint writes the nine levels out in full), but the format defines it as the base and the compose-side fold (ResolvedTextStyles) honors it as one.
levels?
TextParagraphProperties[]
a:lvl1pPr … a:lvl9pPr, indexed by Level — index 0 is a:lvl1pPr. The off-by-one is the format's: the attribute counts from zero, the elements name themselves from one.