Safe Haskell | None |
---|---|
Language | Haskell2010 |
Eventloop.Module.Websocket.Canvas
- defaultCanvasModuleConfiguration :: EventloopModuleConfiguration
- defaultCanvasModuleIOState :: IOState
- canvasModuleIdentifier :: EventloopModuleIdentifier
- canvasInitializer :: Initializer
- canvasEventRetriever :: EventRetriever
- canvasEventSender :: EventSender
- canvasTeardown :: Teardown
- sendRoutedMessageOut :: Connection -> RoutedMessageOut -> IO ()
- router :: ReceiveBuffer -> CanvasUserReceiveBuffer -> CanvasSystemReceiveBuffer -> IO ()
- measureText :: IOState -> CanvasId -> CanvasText -> IO ScreenDimensions
- type CanvasUserReceiveBuffer = MVar [CanvasIn]
- type CanvasSystemReceiveBuffer = MVar SystemCanvasIn
- type Opcode = Int
- type ScreenMetric = Int
- type ScreenX = ScreenMetric
- type ScreenY = ScreenMetric
- type ScreenWidth = ScreenMetric
- type ScreenHeight = ScreenMetric
- type ScreenRadius = ScreenMetric
- type ScreenAngle = ScreenMetric
- type ScreenPoint = (ScreenX, ScreenY)
- type ScreenDimensions = (ScreenWidth, ScreenHeight)
- type ScreenStartingPoint = ScreenPoint
- type ScreenControlPoint = ScreenPoint
- type ScreenEndPoint = ScreenPoint
- type ScreenStartingAngle = ScreenAngle
- type ScreenEndAngle = ScreenAngle
- type CanvasId = NumericId
- type ZIndex = Int
- type ScreenColorMetric = Int
- type ScreenRed = ScreenColorMetric
- type ScreenGreen = ScreenColorMetric
- type ScreenBlue = ScreenColorMetric
- type ScreenAlpha = Float
- type ScreenColor = (ScreenRed, ScreenGreen, ScreenBlue, ScreenAlpha)
- type ScreenPixel = ScreenColor
- type ColorStopOffset = Float
- type ScreenCircle = (ScreenPoint, ScreenRadius)
- type ScaleUnit = Float
- type ScaleX = ScaleUnit
- type ScaleY = ScaleUnit
- type ScreenLineThickness = ScreenMetric
- type FontFamily = [Char]
- type FontSize = Int
- data RoutedMessageIn
- data RoutedMessageOut
- data SystemCanvasIn = SystemMeasuredText CanvasId CanvasText ScreenDimensions
- data SystemCanvasOut = SystemMeasureText CanvasId CanvasText
- data CanvasIn = MeasuredText CanvasId CanvasText ScreenDimensions
- data CanvasOut
- data CanvasOperation
- data ScreenPathPart
- = MoveTo ScreenPoint
- | LineTo ScreenPoint
- | BezierCurveTo ScreenControlPoint ScreenControlPoint ScreenEndPoint
- | QuadraticCurveTo ScreenControlPoint ScreenEndPoint
- | ArcTo ScreenControlPoint ScreenControlPoint ScreenRadius
- | Arc ScreenCircle ScreenStartingAngle ScreenEndAngle
- | Rectangle ScreenPoint ScreenDimensions
- type PathRenderStrokeStyle = RenderStyle
- data PathStroke
- type PathRenderFillStyle = RenderStyle
- data PathFill
- type CanvasColorStop = (ColorStopOffset, ScreenColor)
- data RenderStyle
- data CanvasImage
- data PatternRepetition
- data CanvasGradientType
- data CanvasText = CanvasText [Char] Font Alignment
- data Font = Font FontFamily FontSize
- type TextStrokeRenderStyle = RenderStyle
- type TextFillRenderStyle = RenderStyle
- data TextStroke
- data TextFill
- data Alignment
- type TransformUnit = Float
- type TransformationMatrix = (TransformUnit, TransformUnit, TransformUnit, TransformUnit, TransformUnit, TransformUnit)
- data CanvasTransform
- type CSSLeftOffset = CSSUnit
- type CSSTopOffset = CSSUnit
- type CSSMeasurements = (CSSLeftOffset, CSSTopOffset)
- data CSSPosition = CSSPosition CSSBindPoint CSSMeasurements
- data CSSBindPoint
- data CSSUnit
- data ClearPart
Documentation
sendRoutedMessageOut :: Connection -> RoutedMessageOut -> IO () Source
router :: ReceiveBuffer -> CanvasUserReceiveBuffer -> CanvasSystemReceiveBuffer -> IO () Source
measureText :: IOState -> CanvasId -> CanvasText -> IO ScreenDimensions Source
type CanvasUserReceiveBuffer = MVar [CanvasIn] Source
type ScreenMetric = Int Source
type ScreenX = ScreenMetric Source
type ScreenY = ScreenMetric Source
type ScreenWidth = ScreenMetric Source
type ScreenHeight = ScreenMetric Source
type ScreenRadius = ScreenMetric Source
type ScreenAngle Source
Arguments
= ScreenMetric | In degrees |
type ScreenPoint = (ScreenX, ScreenY) Source
type ScreenDimensions = (ScreenWidth, ScreenHeight) Source
type ScreenStartingPoint = ScreenPoint Source
type ScreenControlPoint = ScreenPoint Source
type ScreenEndPoint = ScreenPoint Source
type ScreenStartingAngle = ScreenAngle Source
type ScreenEndAngle = ScreenAngle Source
type ScreenColorMetric = Int Source
type ScreenRed = ScreenColorMetric Source
type ScreenGreen = ScreenColorMetric Source
type ScreenBlue = ScreenColorMetric Source
type ScreenAlpha = Float Source
type ScreenColor = (ScreenRed, ScreenGreen, ScreenBlue, ScreenAlpha) Source
type ScreenPixel = ScreenColor Source
type ColorStopOffset = Float Source
type ScreenCircle = (ScreenPoint, ScreenRadius) Source
type FontFamily = [Char] Source
data RoutedMessageIn Source
Constructors
InUserCanvas CanvasIn | |
InSystemCanvas SystemCanvasIn |
data RoutedMessageOut Source
Constructors
OutUserCanvas CanvasOut | |
OutSystemCanvas SystemCanvasOut |
data SystemCanvasIn Source
Opcode: 2100
Constructors
SystemMeasuredText CanvasId CanvasText ScreenDimensions | Opcode: 2101 |
Instances
data SystemCanvasOut Source
Opcode: 2000
Constructors
SystemMeasureText CanvasId CanvasText | Opcode: 2001 |
Opcode: 0100
Constructors
MeasuredText CanvasId CanvasText ScreenDimensions | Opcode: 0101 |
Reserved type words
Type: t | Opcode
Arguments: a | List of arguments for that data type
Route: r | Either s
for system or u
for user
Object: o | The object that is beneath
Example:
{r
: s
, o
: {SystemMeasuredText object}}
SystemMeasuredText object: {t
:2102, a
:[CanvasId, CanvasText object, ScreenDimensions]}
Opcode: 0200
Constructors
SetupCanvas CanvasId ZIndex ScreenDimensions CSSPosition | Opcode: 0201 |
TeardownCanvas CanvasId | Opcode: 0202 |
CanvasOperations CanvasId [CanvasOperation] | Opcode: 0203 |
MeasureText CanvasId CanvasText | Opcode: 0204 |
data CanvasOperation Source
Opcode: 0300
Constructors
DrawPath ScreenStartingPoint [ScreenPathPart] PathStroke PathFill | Opcode: 0301 |
DrawText CanvasText ScreenPoint TextStroke TextFill | Opcode: 0302 |
DoTransform CanvasTransform | Opcode: 0303 |
Clear ClearPart | Opcode: 0304 |
data ScreenPathPart Source
Opcode: 0400
Constructors
MoveTo ScreenPoint | Opcode: 0401 |
LineTo ScreenPoint | Opcode: 0402 |
BezierCurveTo ScreenControlPoint ScreenControlPoint ScreenEndPoint | Opcode: 0403 |
QuadraticCurveTo ScreenControlPoint ScreenEndPoint | Opcode: 0404 |
ArcTo ScreenControlPoint ScreenControlPoint ScreenRadius | Opcode: 0405 |
Arc ScreenCircle ScreenStartingAngle ScreenEndAngle | Opcode: 0406 |
Rectangle ScreenPoint ScreenDimensions | Opcode: 0407 |
Instances
type PathRenderStrokeStyle = RenderStyle Source
Opcode: 0500
data PathStroke Source
Constructors
PathStroke ScreenLineThickness PathRenderStrokeStyle | Opcode: 0501 |
NoPathStroke | Opcode: 0502 |
Instances
type PathRenderFillStyle = RenderStyle Source
Opcode: 0600
Constructors
PathFill PathRenderFillStyle | Opcode: 0601 |
NoPathFill | Opcode: 0602 |
type CanvasColorStop = (ColorStopOffset, ScreenColor) Source
Opcode: 0700
data RenderStyle Source
Constructors
CanvasColor ScreenColor | Opcode: 0701 |
CanvasGradient CanvasGradientType [CanvasColorStop] | Opcode:0702 |
CanvasPattern CanvasImage PatternRepetition | Opcode: 0703 |
Instances
data CanvasImage Source
Opcode: 0800
Constructors
CanvasElement CanvasId ScreenPoint ScreenDimensions | Opcode: 0801 |
ImageData ScreenDimensions [ScreenPixel] | Opcode: 0802 [ScreenPixel] should be as long as width * height * 4 |
Instances
data PatternRepetition Source
Opcode: 0900
data CanvasGradientType Source
Opcode: 1000
Constructors
RadialGradient ScreenCircle ScreenCircle | Opcode: 1001 First circle = inner circle, Second circle is enclosing circle |
LinearGradient ScreenPoint ScreenPoint | Opcode: 1002 |
Opcode: 1300
Constructors
Font FontFamily FontSize | Opcode: 1301 |
type TextStrokeRenderStyle = RenderStyle Source
Opcode: 1400
type TextFillRenderStyle = RenderStyle Source
data TextStroke Source
Constructors
TextStroke ScreenLineThickness TextStrokeRenderStyle | Opcode: 1401 |
NoTextStroke | Opcode: 1402 |
Instances
Opcode: 2400
Constructors
TextFill TextFillRenderStyle | Opcode: 2401 |
NoTextFill | Opcode: 2402 |
Opcode: 1500
Constructors
AlignLeft | Opcode: 1501 |
AlignRight | Opcode: 1502 |
AlignCenter | Opcode: 1503 |
AlignStart | Opcode: 1504 |
AlignEnd | Opcode: 1505 |
type TransformUnit = Float Source
Opcode: 1600
type TransformationMatrix = (TransformUnit, TransformUnit, TransformUnit, TransformUnit, TransformUnit, TransformUnit) Source
data CanvasTransform Source
Constructors
Save | Opcode: 1601 |
Restore | Opcode: 1602 |
Translate ScreenPoint | Opcode: 1603 |
Rotate ScreenAngle | Opcode: 1604 |
Scale ScaleX ScaleY | Opcode: 1605 |
Transform TransformationMatrix | Opcode: 1606 |
SetTransform TransformationMatrix | Opcode: 1607 |
ResetTransform | Opcode: 1608 |
type CSSLeftOffset = CSSUnit Source
Opcode: 2200
type CSSTopOffset = CSSUnit Source
type CSSMeasurements = (CSSLeftOffset, CSSTopOffset) Source
data CSSBindPoint Source
Opcode: 2300
Constructors
CSSFromCenter | Opcode: 2301 |
CSSFromDefault | Opcode: 2302 Usually this is the top left corner of the element |
Instances
Opcode: 1800
Constructors
CSSPixels Int | Opcode: 1801 |
CSSPercentage Int | Opcode: 1802 |
Opcode: 1900
Constructors
ClearRectangle ScreenPoint ScreenDimensions | Opcode: 1901 |
ClearCanvas | Opcode: 1902 |