Safe Haskell | None |
---|
- blankCanvas :: Int -> (Context -> IO ()) -> IO ()
- data Context
- send :: Context -> Canvas a -> IO a
- events :: Context -> IO EventQueue
- data Canvas
- arc :: (Float, Float, Float, Float, Float, Bool) -> Canvas ()
- beginPath :: () -> Canvas ()
- bezierCurveTo :: (Float, Float, Float, Float, Float, Float) -> Canvas ()
- clearRect :: (Float, Float, Float, Float) -> Canvas ()
- closePath :: () -> Canvas ()
- fill :: () -> Canvas ()
- fillRect :: (Float, Float, Float, Float) -> Canvas ()
- fillStyle :: String -> Canvas ()
- fillText :: (String, Float, Float) -> Canvas ()
- font :: String -> Canvas ()
- globalAlpha :: Float -> Canvas ()
- lineCap :: String -> Canvas ()
- lineJoin :: String -> Canvas ()
- lineTo :: (Float, Float) -> Canvas ()
- lineWidth :: Float -> Canvas ()
- miterLimit :: Float -> Canvas ()
- moveTo :: (Float, Float) -> Canvas ()
- restore :: () -> Canvas ()
- rotate :: Float -> Canvas ()
- scale :: (Float, Float) -> Canvas ()
- save :: () -> Canvas ()
- stroke :: () -> Canvas ()
- strokeRect :: (Float, Float, Float, Float) -> Canvas ()
- strokeText :: (String, Float, Float) -> Canvas ()
- strokeStyle :: String -> Canvas ()
- textAlign :: String -> Canvas ()
- textBaseline :: String -> Canvas ()
- transform :: (Float, Float, Float, Float, Float, Float) -> Canvas ()
- translate :: (Float, Float) -> Canvas ()
- readEvent :: EventName -> Canvas Event
- readEvents :: [EventName] -> Canvas NamedEvent
- tryReadEvent :: EventName -> Canvas (Maybe Event)
- tryReadEvents :: [EventName] -> Canvas (Maybe NamedEvent)
- size :: Canvas (Float, Float)
- data Event = Event {}
- data EventName
- data NamedEvent = NamedEvent EventName Event
- type EventQueue = TChan NamedEvent
- readEventQueue :: EventQueue -> IO NamedEvent
- tryReadEventQueue :: EventQueue -> IO (Maybe NamedEvent)
Starting blank-canvas
blankCanvas :: Int -> (Context -> IO ()) -> IO ()Source
blankCanvas is the main entry point into blank-canvas. A typical invocation would be
module Main where import Graphics.Blank main = blankCanvas 3000 $ \ context -> do send context $ do moveTo(50,50) lineTo(200,100) lineWidth 10 strokeStyle "red" stroke()
Graphics Context
send :: Context -> Canvas a -> IO aSource
Sends a set of Canvas commands to the canvas. Attempts to common up as many commands as possible.
events :: Context -> IO EventQueueSource
Drawing pictures using the Canvas DSL
globalAlpha :: Float -> Canvas ()Source
miterLimit :: Float -> Canvas ()Source
strokeStyle :: String -> Canvas ()Source
textBaseline :: String -> Canvas ()Source
readEvent :: EventName -> Canvas EventSource
read a specific event; wait for it if the event is not in queue. **Thows away all other events while waiting.**
readEvents :: [EventName] -> Canvas NamedEventSource
read a specific set of events; wait for it if the event/events is not in queue. **Throws away all other non-named events while waiting.**
tryReadEvent :: EventName -> Canvas (Maybe Event)Source
read a specific event. **Throws away all events not named**
tryReadEvents :: [EventName] -> Canvas (Maybe NamedEvent)Source
read a specific set of events. **Throws away all non-named events while waiting.**
Events
Basic Event from Browser, the code is event-type specific.
EventName
mirrors event names from jquery, where 'map toLower (show name)' gives
the jquery event name.
data NamedEvent Source
When an event is sent to the application, it always has a name.
type EventQueue = TChan NamedEventSource
EventQueue is a STM channel (TChan
) of Event
s.
Intentionally, EventQueue
is not abstract.