1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors alien.c-types alien.syntax arrays
4 classes.struct kernel layouts math math.rectangles ;
5 FROM: alien.c-types => float ;
6 IN: core-graphics.types
9 << cell 4 = float double ? \ CGFloat typedef >>
27 : CGPoint>loc ( CGPoint -- loc )
28 [ x>> ] [ y>> ] bi 2array ;
30 : CGSize>dim ( CGSize -- dim )
31 [ w>> ] [ h>> ] bi 2array ;
33 : CGRect>rect ( CGRect -- rect )
34 [ origin>> CGPoint>loc ]
38 : CGRect-x ( CGRect -- x )
40 : CGRect-y ( CGRect -- y )
42 : CGRect-w ( CGRect -- w )
44 : CGRect-h ( CGRect -- h )
47 : set-CGRect-x ( x CGRect -- )
49 : set-CGRect-y ( y CGRect -- )
51 : set-CGRect-w ( w CGRect -- )
53 : set-CGRect-h ( h CGRect -- )
56 : <CGRect> ( x y w h -- rect )
57 [ CGPoint boa ] [ CGSize boa ] 2bi* CGRect boa ;
59 : CGRect-x-y ( alien -- origin-x origin-y )
60 [ CGRect-x ] [ CGRect-y ] bi ;
62 : CGRect-top-left ( alien -- x y )
63 [ CGRect-x ] [ [ CGRect-y ] [ CGRect-h ] bi + ] bi ;
65 STRUCT: CGAffineTransform
73 TYPEDEF: void* CGColorRef
74 TYPEDEF: void* CGColorSpaceRef
75 TYPEDEF: void* CGContextRef
76 TYPEDEF: void* CGImageRef
77 TYPEDEF: void* CGImageDestinationRef
79 TYPEDEF: uint CGBitmapInfo
83 TYPEDEF: uint CGDirectDisplayID
84 TYPEDEF: int boolean_t
85 TYPEDEF: void* CGLContextObj
86 TYPEDEF: int CGLContextParameter