api tweaks.

This commit is contained in:
Will Charczuk 2016-07-14 18:29:06 -07:00
parent 4c1cf35733
commit 7bce09c859
2 changed files with 30 additions and 15 deletions

View file

@ -122,7 +122,7 @@ func (c Chart) Render(rp RendererProvider, w io.Writer) error {
c.drawTitle(r) c.drawTitle(r)
for _, a := range c.Elements { for _, a := range c.Elements {
a(r, canvasBox) a(r, canvasBox, c.styleDefaultsElements())
} }
return r.Save(w) return r.Save(w)
@ -273,7 +273,7 @@ func (c Chart) getAxisAdjustedCanvasBox(r Renderer, canvasBox Box, xr, yr, yra R
axesOuterBox = axesOuterBox.Grow(axesBounds) axesOuterBox = axesOuterBox.Grow(axesBounds)
} }
return canvasBox.OuterConstrain(c.asBox(), axesOuterBox) return canvasBox.OuterConstrain(c.Box(), axesOuterBox)
} }
func (c Chart) setRangeDomains(canvasBox Box, xr, yr, yra Range) (xr2, yr2, yra2 Range) { func (c Chart) setRangeDomains(canvasBox Box, xr, yr, yra Range) (xr2, yr2, yra2 Range) {
@ -324,23 +324,15 @@ func (c Chart) getAnnotationAdjustedCanvasBox(r Renderer, canvasBox Box, xr, yr,
} }
} }
return canvasBox.OuterConstrain(c.asBox(), annotationSeriesBox) return canvasBox.OuterConstrain(c.Box(), annotationSeriesBox)
} }
func (c Chart) drawBackground(r Renderer) { func (c Chart) drawBackground(r Renderer) {
DrawBox(r, c.asBox(), c.Canvas.WithDefaultsFrom(Style{ DrawBox(r, c.Box(), c.Canvas.WithDefaultsFrom(c.styleDefaultsBackground()))
FillColor: DefaultBackgroundColor,
StrokeColor: DefaultBackgroundStrokeColor,
StrokeWidth: DefaultStrokeWidth,
}))
} }
func (c Chart) drawCanvas(r Renderer, canvasBox Box) { func (c Chart) drawCanvas(r Renderer, canvasBox Box) {
DrawBox(r, canvasBox, c.Canvas.WithDefaultsFrom(Style{ DrawBox(r, canvasBox, c.Canvas.WithDefaultsFrom(c.styleDefaultsCanvas()))
FillColor: DefaultCanvasColor,
StrokeColor: DefaultCanvasStrokeColor,
StrokeWidth: DefaultStrokeWidth,
}))
} }
func (c Chart) drawAxes(r Renderer, canvasBox Box, xrange, yrange, yrangeAlt Range, xticks, yticks, yticksAlt []Tick) { func (c Chart) drawAxes(r Renderer, canvasBox Box, xrange, yrange, yrangeAlt Range, xticks, yticks, yticksAlt []Tick) {
@ -384,6 +376,22 @@ func (c Chart) drawTitle(r Renderer) {
} }
} }
func (c Chart) styleDefaultsBackground() Style {
return Style{
FillColor: DefaultBackgroundColor,
StrokeColor: DefaultBackgroundStrokeColor,
StrokeWidth: DefaultStrokeWidth,
}
}
func (c Chart) styleDefaultsCanvas() Style {
return Style{
FillColor: DefaultCanvasColor,
StrokeColor: DefaultCanvasStrokeColor,
StrokeWidth: DefaultStrokeWidth,
}
}
func (c Chart) styleDefaultsSeries(seriesIndex int) Style { func (c Chart) styleDefaultsSeries(seriesIndex int) Style {
strokeColor := GetDefaultSeriesStrokeColor(seriesIndex) strokeColor := GetDefaultSeriesStrokeColor(seriesIndex)
return Style{ return Style{
@ -403,6 +411,13 @@ func (c Chart) styleDefaultsAxis() Style {
} }
} }
func (c Chart) asBox() Box { func (c Chart) styleDefaultsElements() Style {
return Style{
Font: c.GetFont(),
}
}
// Box returns the chart bounds as a box.
func (c Chart) Box() Box {
return Box{Right: c.GetWidth(), Bottom: c.GetHeight()} return Box{Right: c.GetWidth(), Bottom: c.GetHeight()}
} }

View file

@ -1,4 +1,4 @@
package chart package chart
// Renderable is a function that can be called to render custom elements on the chart. // Renderable is a function that can be called to render custom elements on the chart.
type Renderable func(r Renderer, canvasBox Box) type Renderable func(r Renderer, canvasBox Box, defaults Style)