module Drawcmd(move, moveDrawCommands, moveDrawCommand) where import DrawTypes import Geometry(Move(..)) --import Xtypes instance Move DrawCommand where move = flip moveDrawCommand moveDrawCommand cmd v = case cmd of DrawLine l -> DrawLine (move v l) DrawLines cm ps -> DrawLines cm (movePoints cm ps v) DrawImageString p s -> DrawImageString (move v p) s DrawString p s -> DrawString (move v p) s DrawRectangle r -> DrawRectangle (move v r) FillRectangle r -> FillRectangle (move v r) FillPolygon shape coordMode ps -> FillPolygon shape coordMode (movePoints coordMode ps v) DrawArc r a1 a2 -> DrawArc (move v r) a1 a2 FillArc r a1 a2 -> FillArc (move v r) a1 a2 CopyArea d r p -> CopyArea d r (move v p) CopyPlane d r p n -> CopyPlane d r (move v p) n DrawPoint p -> DrawPoint (move v p) CreatePutImage r fmt pxls -> CreatePutImage (move v r) fmt pxls DrawImageStringPS p s -> DrawImageStringPS (move v p) s DrawStringPS p s -> DrawStringPS (move v p) s DrawImageString16 p s -> DrawImageString16 (move v p) s DrawString16 p s -> DrawString16 (move v p) s movePoints cm ps v = case cm of CoordModeOrigin -> move v ps CoordModePrevious -> case ps of p:ps' -> move v p:ps' [] -> [] moveDrawCommands cmds p = map (`moveDrawCommand` p) cmds