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