]> gitweb.factorcode.org Git - factor.git/blob - basis/cocoa/cocoa.factor
cocoa: switch back to an assoc, used by tools.deploy.shaker.strip-cocoa.
[factor.git] / basis / cocoa / cocoa.factor
1 ! Copyright (C) 2006, 2009 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: cocoa.messages compiler.units core-foundation.bundles
4 hashtables init io kernel lexer namespaces sequences vocabs ;
5 FROM: cocoa.messages => selector ;
6 IN: cocoa
7
8 SYMBOL: sent-messages
9
10 : (remember-send) ( selector variable -- )
11     [ dupd ?set-at ] change-global ;
12
13 : remember-send ( selector -- )
14     sent-messages (remember-send) ;
15
16 SYNTAX: -> scan-token dup remember-send suffix! \ send suffix! ;
17
18 SYNTAX: SEL:
19     scan-token
20     [ remember-send ]
21     [ <selector> suffix! \ selector suffix! ] bi ;
22
23 SYMBOL: super-sent-messages
24
25 : remember-super-send ( selector -- )
26     super-sent-messages (remember-send) ;
27
28 SYNTAX: SUPER-> scan-token dup remember-super-send suffix! \ super-send suffix! ;
29
30 SYMBOL: frameworks
31
32 frameworks [ V{ } clone ] initialize
33
34 [ frameworks get [ load-framework ] each ] "cocoa" add-startup-hook
35
36 SYNTAX: FRAMEWORK: scan-token [ load-framework ] [ frameworks get push ] bi ;
37
38 SYNTAX: IMPORT: scan-token [ ] import-objc-class ;
39
40 "Importing Cocoa classes..." print
41
42 "cocoa.classes" create-vocab drop
43
44 [
45     {
46         "NSAlert"
47         "NSAppleScript"
48         "NSApplication"
49         "NSArray"
50         "NSAutoreleasePool"
51         "NSBitmapImageRep"
52         "NSBundle"
53         "NSColorSpace"
54         "NSData"
55         "NSDictionary"
56         "NSError"
57         "NSEvent"
58         "NSException"
59         "NSMenu"
60         "NSMenuItem"
61         "NSMutableDictionary"
62         "NSNib"
63         "NSNotification"
64         "NSNotificationCenter"
65         "NSNumber"
66         "NSObject"
67         "NSOpenGLContext"
68         "NSOpenGLPixelFormat"
69         "NSOpenGLView"
70         "NSOpenPanel"
71         "NSPanel"
72         "NSPasteboard"
73         "NSPropertyListSerialization"
74         "NSResponder"
75         "NSSavePanel"
76         "NSScreen"
77         "NSString"
78         "NSView"
79         "NSWindow"
80         "NSWorkspace"
81     } [
82         [ ] import-objc-class
83     ] each
84 ] with-compilation-unit