Chart-1.0: A library for generating 2D Charts and Plots

Safe HaskellNone



This module contains the definition of the Renderable type, which is a composable drawing element, along with assorted functions to them.



data Renderable a Source

A Renderable is a record of functions required to layout a graphic element.




minsize :: ChartBackend RectSize

A Cairo action to calculate a minimum size.

render :: RectSize -> ChartBackend (PickFn a)

A Cairo action for drawing it within a rectangle. The rectangle is from the origin to the given point.

The resulting pick function maps a point in the image to a value.

class ToRenderable a whereSource

A type class abtracting the conversion of a value to a Renderable.


toRenderable :: a -> Renderable ()Source

type PickFn a = Point -> Maybe aSource

A function that maps a point in device coordinates to some value.

Perhaps it might be generalised from Maybe a to (MonadPlus m ) => m a in the future.

fillBackground :: FillStyle -> Renderable a -> Renderable aSource

Overlay a renderable over a solid background fill.



:: (Double, Double, Double, Double)

The spacing to be added.

-> Renderable a

The source renderable.

-> Renderable a 

Add some spacing at the edges of a renderable.

embedRenderable :: ChartBackend (Renderable a) -> Renderable aSource

Helper function for using a renderable, when we generate it in the CRender monad.

label :: FontStyle -> HTextAnchor -> VTextAnchor -> String -> Renderable StringSource

Construct a renderable from a text string, aligned with the axes.

rlabel :: FontStyle -> HTextAnchor -> VTextAnchor -> Double -> String -> Renderable StringSource

Construct a renderable from a text string, rotated wrt to axes. The angle of rotation is in degrees.

spacer :: RectSize -> Renderable aSource

Create a blank renderable with a specified minimum size.

spacer1 :: Renderable a -> Renderable bSource

Create a blank renderable with a minimum size the same as some other renderable.

setPickFn :: PickFn b -> Renderable a -> Renderable bSource

Replace the pick function of a renderable with another.

mapMaybePickFn :: (a -> Maybe b) -> Renderable a -> Renderable bSource

Map a function over the result of a renderable's pickfunction, keeping only Just results.

mapPickFn :: (a -> b) -> Renderable a -> Renderable bSource

Map a function over result of a renderable's pickfunction.

rect_cornerStyle :: Lens' Rectangle RectCornerStyleSource