]> gitweb.factorcode.org Git - factor.git/blob - basis/cocoa/cocoa.factor
cocoa: fix requirement that mac deploys have high reflection.
[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 init io kernel lexer namespaces sequences sets vocabs ;
5 FROM: cocoa.messages => selector ;
6 IN: cocoa
7
8 SYMBOL: sent-messages
9
10 sent-messages [ HS{ } clone ] initialize
11
12 : remember-send ( selector -- )
13     sent-messages get-global adjoin ;
14
15 SYNTAX: -> scan-token dup remember-send suffix! \ send suffix! ;
16
17 SYNTAX: SEL:
18     scan-token
19     [ remember-send ]
20     [ <selector> suffix! \ selector suffix! ] bi ;
21
22 SYMBOL: super-sent-messages
23
24 super-sent-messages [ HS{ } clone ] initialize
25
26 : remember-super-send ( selector -- )
27     super-sent-messages get-global adjoin ;
28
29 SYNTAX: SUPER-> scan-token dup remember-super-send suffix! \ super-send suffix! ;
30
31 SYMBOL: frameworks
32
33 frameworks [ V{ } clone ] initialize
34
35 [ frameworks get [ load-framework ] each ] "cocoa" add-startup-hook
36
37 SYNTAX: FRAMEWORK: scan-token [ load-framework ] [ frameworks get push ] bi ;
38
39 SYNTAX: IMPORT: scan-token [ ] import-objc-class ;
40
41 "Importing Cocoa classes..." print
42
43 "cocoa.classes" create-vocab drop
44
45 [
46     {
47         "NSAlert"
48         "NSAppleScript"
49         "NSApplication"
50         "NSArray"
51         "NSAutoreleasePool"
52         "NSBitmapImageRep"
53         "NSBundle"
54         "NSColorSpace"
55         "NSData"
56         "NSDictionary"
57         "NSError"
58         "NSEvent"
59         "NSException"
60         "NSMenu"
61         "NSMenuItem"
62         "NSMutableDictionary"
63         "NSNib"
64         "NSNotification"
65         "NSNotificationCenter"
66         "NSNumber"
67         "NSObject"
68         "NSOpenGLContext"
69         "NSOpenGLPixelFormat"
70         "NSOpenGLView"
71         "NSOpenPanel"
72         "NSPanel"
73         "NSPasteboard"
74         "NSPropertyListSerialization"
75         "NSResponder"
76         "NSSavePanel"
77         "NSScreen"
78         "NSString"
79         "NSView"
80         "NSWindow"
81         "NSWorkspace"
82     } [
83         [ ] import-objc-class
84     ] each
85 ] with-compilation-unit