Add StyleStack.Indent and .With

This commit is contained in:
Christian Muehlhaeuser
2019-12-04 04:54:57 +01:00
parent 324339551c
commit 7184df4a14
+18 -1
View File
@@ -70,12 +70,29 @@ func (s *StyleStack) Pop() {
*s = stack *s = stack
} }
func (s StyleStack) Indent() uint {
var i uint
for _, v := range s {
if v == nil {
continue
}
i += v.Indent
}
return i
}
func (s StyleStack) Current() *ElementStyle { func (s StyleStack) Current() *ElementStyle {
if len(s) == 0 { if len(s) == 0 {
return nil return nil
} }
return s[len(s)-1] return cascadeStyles(s[0:len(s)-1], s[len(s)-1])
}
func (s StyleStack) With(child *ElementStyle) *ElementStyle {
return cascadeStyles(s, child)
} }
func cascadeStyle(parent *ElementStyle, child *ElementStyle) *ElementStyle { func cascadeStyle(parent *ElementStyle, child *ElementStyle) *ElementStyle {