unioffice/presentation/textbox.go

41 lines
1.2 KiB
Go

// Copyright 2017 Baliance. All rights reserved.
//
// Use of this source code is governed by the terms of the Affero GNU General
// Public License version 3.0 as published by the Free Software Foundation and
// appearing in the file LICENSE included in the packaging of this file. A
// commercial license can be purchased by contacting sales@baliance.com.
package presentation
import (
"baliance.com/gooxml/drawing"
"baliance.com/gooxml/schema/soo/dml"
"baliance.com/gooxml/schema/soo/pml"
)
// TextBox is a text box within a slide.
type TextBox struct {
x *pml.CT_Shape
}
// AddParagraph adds a paragraph to the text box
func (t TextBox) AddParagraph() drawing.Paragraph {
p := dml.NewCT_TextParagraph()
t.x.TxBody.P = append(t.x.TxBody.P, p)
return drawing.MakeParagraph(p)
}
// Properties returns the properties of the TextBox.
func (t TextBox) Properties() drawing.ShapeProperties {
if t.x.SpPr == nil {
t.x.SpPr = dml.NewCT_ShapeProperties()
}
return drawing.MakeShapeProperties(t.x.SpPr)
}
// SetTextAnchor controls the text anchoring
func (t TextBox) SetTextAnchor(a dml.ST_TextAnchoringType) {
t.x.TxBody.BodyPr = dml.NewCT_TextBodyProperties()
t.x.TxBody.BodyPr.AnchorAttr = a
}