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