packages feed

simple-cairo-0.1.0.5: src/Graphics/Cairo/Drawing/Extents.hs

{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Graphics.Cairo.Drawing.Extents where

import Foreign.C.Types

data CairoExtents = CairoExtentsLeftTopRightBottom {
	cairoExtentsLeftX :: CDouble,
	cairoExtentsTopY :: CDouble,
	cairoExtentsRightX :: CDouble,
	cairoExtentsBottomY :: CDouble } deriving Show

pattern CairoExtentsLeftTopWidthHeight :: CDouble -> CDouble -> CDouble -> CDouble -> CairoExtents
pattern CairoExtentsLeftTopWidthHeight {
	cairoExtentsLeft, cairoExtentsTop,
	cairoExtentsWidth, cairoExtentsHeight } <-
	(cairoExtentsLeftTopWidthHeight -> (cairoExtentsLeft, cairoExtentsTop, cairoExtentsWidth, cairoExtentsHeight)) where 
	CairoExtentsLeftTopWidthHeight l t w h = CairoExtentsLeftTopRightBottom l t (l + w) (t + h)

cairoExtentsLeftTopWidthHeight :: CairoExtents -> (CDouble, CDouble, CDouble, CDouble)
cairoExtentsLeftTopWidthHeight (CairoExtentsLeftTopRightBottom l t r b) = (l, t, r - l, b - t)