module XDraw(module DrawTypes,module XDraw) where
import Command(XCommand(Draw,DrawMany,ClearArea,ClearWindow))
import FRequest
import Geometry(Rect(..),Point(..))
import DrawTypes

draw :: Drawable -> GCId -> DrawCommand -> FRequest
draw Drawable
d GCId
gc DrawCommand
dcmd = XCommand -> FRequest
XCmd (Drawable -> GCId -> DrawCommand -> XCommand
Draw Drawable
d GCId
gc DrawCommand
dcmd)
drawMany :: Drawable -> [(GCId, [DrawCommand])] -> FRequest
drawMany Drawable
d [(GCId, [DrawCommand])]
dcmds = XCommand -> FRequest
XCmd (Drawable -> [(GCId, [DrawCommand])] -> XCommand
DrawMany Drawable
d [(GCId, [DrawCommand])]
dcmds)

wDraw :: GCId -> DrawCommand -> FRequest
wDraw = Drawable -> GCId -> DrawCommand -> FRequest
draw Drawable
MyWindow
wDrawMany :: [(GCId, [DrawCommand])] -> FRequest
wDrawMany = Drawable -> [(GCId, [DrawCommand])] -> FRequest
drawMany Drawable
MyWindow

pmDraw :: PixmapId -> GCId -> DrawCommand -> FRequest
pmDraw = Drawable -> GCId -> DrawCommand -> FRequest
draw (Drawable -> GCId -> DrawCommand -> FRequest)
-> (PixmapId -> Drawable)
-> PixmapId
-> GCId
-> DrawCommand
-> FRequest
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PixmapId -> Drawable
Pixmap 
pmDrawMany :: PixmapId -> [(GCId, [DrawCommand])] -> FRequest
pmDrawMany = Drawable -> [(GCId, [DrawCommand])] -> FRequest
drawMany (Drawable -> [(GCId, [DrawCommand])] -> FRequest)
-> (PixmapId -> Drawable)
-> PixmapId
-> [(GCId, [DrawCommand])]
-> FRequest
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PixmapId -> Drawable
Pixmap

clearArea :: Rect -> Bool -> FRequest
clearArea Rect
r Bool
b = XCommand -> FRequest
XCmd (Rect -> Bool -> XCommand
ClearArea Rect
r Bool
b)
clearWindow :: FRequest
clearWindow = XCommand -> FRequest
XCmd XCommand
ClearWindow

fillCircle :: Point -> Int -> DrawCommand
fillCircle Point
p Int
r = Rect -> Int -> Int -> DrawCommand
FillArc (Point -> Point -> Rect
Rect Point
p (Int -> Int -> Point
Point Int
r Int
r)) Int
0 (Int
64 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
360)
drawCircle :: Point -> Int -> DrawCommand
drawCircle Point
p Int
r = Rect -> Int -> Int -> DrawCommand
DrawArc (Point -> Point -> Rect
Rect Point
p (Int -> Int -> Point
Point Int
r Int
r)) Int
0 (Int
64 Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
360)