module Pixmap(bitmapFromData, readBitmapFile, createPixmap) where
import Command
import Event
--import Font(FontStruct)
--import Fudget
--import Geometry(Line, Point, Rect, Size(..))
--import LayoutRequest(LayoutRequest)
--import Message(Message(..))
--import Path(Path(..))
import Xrequest
--import Xtypes

createPixmap :: Size -> Depth -> (PixmapId -> f hi ho) -> f hi ho
createPixmap Size
size Depth
depth =
    let cmd :: XRequest
cmd = Size -> Depth -> XRequest
CreatePixmap Size
size Depth
depth
        expected :: XResponse -> Maybe PixmapId
expected (PixmapCreated PixmapId
pixmap) = forall a. a -> Maybe a
Just PixmapId
pixmap
        expected XResponse
_ = forall a. Maybe a
Nothing
    in  forall {f :: * -> * -> *} {ans} {hi} {ho}.
FudgetIO f =>
XRequest -> (XResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
xrequest XRequest
cmd XResponse -> Maybe PixmapId
expected

readBitmapFile :: FilePath -> (BitmapReturn -> f hi ho) -> f hi ho
readBitmapFile FilePath
name =
    let cmd :: XRequest
cmd = FilePath -> XRequest
ReadBitmapFile FilePath
name
        expected :: XResponse -> Maybe BitmapReturn
expected (BitmapRead BitmapReturn
b) = forall a. a -> Maybe a
Just BitmapReturn
b
        expected XResponse
_ = forall a. Maybe a
Nothing
    in  forall {f :: * -> * -> *} {ans} {hi} {ho}.
FudgetIO f =>
XRequest -> (XResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
xrequest XRequest
cmd XResponse -> Maybe BitmapReturn
expected

bitmapFromData :: BitmapData -> (BitmapReturn -> f hi ho) -> f hi ho
bitmapFromData BitmapData
bd =
    let cmd :: XRequest
cmd = BitmapData -> XRequest
CreateBitmapFromData BitmapData
bd
        expected :: XResponse -> Maybe BitmapReturn
expected (BitmapRead BitmapReturn
b) = forall a. a -> Maybe a
Just BitmapReturn
b
        expected XResponse
_ = forall a. Maybe a
Nothing
    in  forall {f :: * -> * -> *} {ans} {hi} {ho}.
FudgetIO f =>
XRequest -> (XResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho
xrequest XRequest
cmd XResponse -> Maybe BitmapReturn
expected