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 :: Point -> Int -> (PixmapId -> f b ho) -> f b ho
createPixmap Point
size Int
depth =
    let cmd :: XRequest
cmd = Point -> Int -> XRequest
CreatePixmap Point
size Int
depth
        expected :: XResponse -> Maybe PixmapId
expected (PixmapCreated PixmapId
pixmap) = PixmapId -> Maybe PixmapId
forall a. a -> Maybe a
Just PixmapId
pixmap
        expected XResponse
_ = Maybe PixmapId
forall a. Maybe a
Nothing
    in  XRequest
-> (XResponse -> Maybe PixmapId) -> (PixmapId -> f b ho) -> f b ho
forall (f :: * -> * -> *) ans b ho.
FudgetIO f =>
XRequest -> (XResponse -> Maybe ans) -> (ans -> f b ho) -> f b ho
xrequest XRequest
cmd XResponse -> Maybe PixmapId
expected

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

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