Slides and a whole bunch more …
Aug 17, 2015
Slides
and a whole bunch more …
Sample Slide
Sample Slide
1
2
3
4
5
Sample Slide
1
2
3
4
5
spTree
nvGrpSpPr grpSpPr
sp sp
sp sp
sp
Sample Slide
1
2
3
4
5
spTree
nvGrpSpPr grpSpPr
sp sp
pic pic
sp
Sample Slide
1
2
3
4
5
spTree
nvGrpSpPr grpSpPr
sp sp
pic pic
sp
nvSpPr spPr
style txBody
nvSpPr spPr
style txBody
nvPicPr blipFill
spPr style
nvPicPr blipFill
spPr style
nvSpPr spPr
style txBody
xfrm geo
fillPr linePr
effectPr scene3D
sp3D bwMode
xfrm geo
fillPr linePr
effectPr scene3D
sp3D bwMode
xfrm geo
fillPr linePr
effectPr scene3D
sp#3D bwMode
xfrm geo
fillPr linePr
effectPr scene3D
sp3D bwMode
xfrm geo
fillPr linePr
effectPr scene3D
sp3D bwMode
Presentation
Handout Master Slide Master Notes Master
Slide Layout
Slide Notes Slide
Different “flavors” of slides
Comparisons of Slide “Flavors”Common
DataTransitio
nTiming Headers
& Footers
Matching Name
Layout Type
Preserve Layout List
Text Style
Slide X X X XSlide Layout X X X X X X XSlide Master X X X X X X XHandout Master X XNotes Master X XNotes Slide X X
Common Slide Data
• Background• Shape Tree
• Tag List• Controls• Name
Masters
Masters
• Stored as separate parts ( one part per master ) in the package
• Serve to create consistency and expedite editing
Visual Walkthrough ofMaster “Flavors”
Slide Master
Handout Master
Notes Master
Slide Master
Notes MasterHandout Master
Master Text Styles
• Title• Body• Notes• Other
Masters and Layouts
• Masters contain layouts– Each master is “primed” with a set of default
layouts– Layouts “contained” by relationship IDs
Layouts
Layouts ( pre-12 )
• Originally hard-coded mappings of placeholders on a slide surface– Determine location and types
of placeholders per slide– Approx 3 dozen in shipped
PPT versions
• Title• Text• Two Column Text• Table• Text and Chart• Chart and Text• Diagram• Chart• Text and ClipArt• ClipArt and Text• Title Only• Blank• Text and Object• Object and Text• Object Only• Object
• Text and Media• Media and Text• Object over Text• Text over Object• Text and Two Objects• Two Objects and Text• Two Objects over Text• Four Objects• Vertical Text• ClipArt and Vertical Text• Vertical Title and Text• Vertical Title and Text over Chart• Two Objects• Object and Two Objects• Two Objects and Object
Layout Types
Layouts and Masters
• Title Placeholder information inherited from Slide Master
• Other “content” placeholders projected into Body Placeholder
True Layouts ( 12 )
• Now they are full-blown slides– Authors can create completely custom layouts– Smaller set is hard-coded for defaulting but
everything is editable– Stored as separate parts ( one part per
layout ) in the package• Title Masters now are Title Layouts
Layout Inheritance
• Continue to sit between slide master and slide• Each placeholder is a shape and can be edited
as such• Each placeholder now inherits from the slide
master by default– Title Placeholders inherit from Master Title
Placeholder– “Content” Placeholder inherit from Master Body
Placeholder ( excluding transforms )
Placeholders
Placeholders
• Serve four purposes– Prime slide surface– Encourage consistent formatting and
positioning– Act as entry points to functionality– Facilitate layout changes and template
applications• Primary means to opt-into cross-surface
inheritance
Placeholders
• Specialized instances of shapes done in client data– They are actual shapes on the slide surface– Placeholders cannot be grouped
Placeholder Types
Title Body Center Title
Sub-Title
Date / Time
Slide Num.
Footer Header Object Chart Table ClipArt Dgm Media Slide Image
Picture
Slide
X X X X X X X X X X X X X X
Slide Layout
X X X X X X X X X X X X X X
Slide Master
X X X X X
Notes Slide
X X X X X X
Notes Master
X X X X X X
Hand’t Master
X X X X
Placeholder Size
• Some Placeholders are projected into Body Placeholder of the previous surface
• Size is a function of Body Placeholder size:– Full– Half– Quarter
Full Half Quarter
Placeholders
• Placeholders generally contain properties not content ( except for text )– Text not rendered on slides but is rendered on
masters and layouts• Instantiation of Placeholders “replaces”
with a new shape ( except for pictures )
Inheritance
• In general– The absence of data
implies inheritance– The absence of a
piece of data all the way through the model uses internal defaults ( where possible )
Slide Master
Slide Layout
Slide
Inheritance Example #1
Consider the Body Placeholder defined at the Slide Master level
Slide Master Slide Layout SlideN
EW
STA
TE
OLD
STA
TE
Inheritance Example #1
Now let’s move and resize the Body Placeholder on the Slide
Layout …
Slide Master Slide Layout SlideN
EW
STA
TE
OLD
STA
TE
Inheritance Example #1
And now we will change the shape type of the Body Placeholder on the
Slide to an octagon
Slide Master Slide Layout SlideN
EW
STA
TE
OLD
STA
TE
Inheritance Example #2
Consider the Body Placeholder defined at the Slide Master level
Slide Master Slide Layout SlideN
EW
STA
TE
OLD
STA
TE
Inheritance Example #2
Let’s make the Body Placeholder on the Slide Layout have a red
line color
Slide Master Slide Layout SlideN
EW
STA
TE
OLD
STA
TE
Inheritance Example #2
Now we can delete the Body Placeholder on the Slide Layout
Slide Master Slide Layout SlideN
EW
STA
TE
OLD
STA
TE
Inheritance Example #2
Let’s add a new Body Placeholder to the Slide Layout
Slide Master Slide Layout Slide
Note. The shape ( and ID ) won’t be the same as it was before deletion … I just hit a
bug in the build …
NE
W S
TAT
EO
LD S
TAT
E
“Headers and Footers”
• Special set of placeholders– Header– Footer– Date / Time– Slide Number
• All implemented using placeholders as containing shape– Static variants resolve and flatten immediately– Dynamic variants use field codes to resolve
Fields
• Types specified by client• Referenced via GUID ( one GUID / field code )• No caching of last value• No intra-field editing
Field Types
• slidenum• datetime• datetime1• datetime2• datetime3• datetime4• datetime5• datetime6
• datetime7• datetime8• datetime9• datetime10• datetime11• datetime12• datetime13
Two Importance User Scenarios
Apply Layout
• Scenario: Switching layouts within a master
• Problem: Need to “match” placeholders
Apply Layout Algorithm
• Match on Placeholder function– For example, Title Title and Date/Time Date/Time– “Headers and Footers” will float if no match exists
here• Match on exact Placeholder type
– For example, Media Media and Body Body• Match on ability to consume
– For example, Text Object and SubTitle Text• Else, float ( idx = -1 )
Apply Design
• Scenario: Applying a new “design”• Problems
– Which layouts to bring in from new “design”– Which existing slides should be updated to
use the new layouts
Apply Design Algorithm
• Layout “equivalence” defined as– Layouts have the same number of
Placeholders ( not including “HF” Placeholders ), and
– Placeholders in both layouts are of the same type, and
– Layouts have the same name
Disclaimer
This presentation is for informational purposes only, and should not be relied upon as a substitute or replacement for Microsoft formal file format documentation, which is available at the following website: https://msdn.microsoft.com/en-us/library/cc313118(v=office.12).aspx. Any views or opinions presented in this material are solely those of the author and do not necessarily represent those of Microsoft. Microsoft disclaims all liability for mistakes or inaccuracies in this presentation.