]> gitweb.factorcode.org Git - factor.git/blob - basis/cocoa/types/types.factor
Create basis vocab root
[factor.git] / basis / cocoa / types / types.factor
1 ! Copyright (C) 2006, 2007 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax kernel ;
4 IN: cocoa.types
5
6 C-STRUCT: NSRect
7     { "float" "x" }
8     { "float" "y" }
9     { "float" "w" }
10     { "float" "h" } ;
11
12 TYPEDEF: NSRect _NSRect
13 TYPEDEF: NSRect CGRect
14
15 : <NSRect> ( x y w h -- rect )
16     "NSRect" <c-object>
17     [ set-NSRect-h ] keep
18     [ set-NSRect-w ] keep
19     [ set-NSRect-y ] keep
20     [ set-NSRect-x ] keep ;
21
22 : NSRect-x-y ( alien -- origin-x origin-y )
23     [ NSRect-x ] keep NSRect-y ;
24
25 C-STRUCT: NSPoint
26     { "float" "x" }
27     { "float" "y" } ;
28
29 TYPEDEF: NSPoint _NSPoint
30 TYPEDEF: NSPoint CGPoint
31
32 : <NSPoint> ( x y -- point )
33     "NSPoint" <c-object>
34     [ set-NSPoint-y ] keep
35     [ set-NSPoint-x ] keep ;
36
37 C-STRUCT: NSSize
38     { "float" "w" }
39     { "float" "h" } ;
40
41 TYPEDEF: NSSize _NSSize
42 TYPEDEF: NSPoint CGPoint
43
44 : <NSSize> ( w h -- size )
45     "NSSize" <c-object>
46     [ set-NSSize-h ] keep
47     [ set-NSSize-w ] keep ;
48
49 C-STRUCT: NSRange
50     { "uint" "location" }
51     { "uint" "length" } ;
52
53 TYPEDEF: NSRange _NSRange
54
55 : <NSRange> ( length location -- size )
56     "NSRange" <c-object>
57     [ set-NSRange-length ] keep
58     [ set-NSRange-location ] keep ;
59
60 C-STRUCT: CGAffineTransform
61     { "float" "a" }
62     { "float" "b" }
63     { "float" "c" }
64     { "float" "d" }
65     { "float" "tx" }
66     { "float" "ty" } ;
67
68 C-STRUCT: NSFastEnumerationState
69     { "ulong" "state" }
70     { "id*" "itemsPtr" }
71     { "ulong*" "mutationsPtr" }
72     { "ulong[5]" "extra" } ;