1 ! Copyright (C) 2006, 2009 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: assocs cocoa.messages compiler.units core-foundation.bundles
4 hashtables init io kernel lexer namespaces sequences vocabs ;
9 sent-messages [ H{ } clone ] initialize
11 : remember-send ( selector -- )
12 dup sent-messages get set-at ;
15 scan-token dup remember-send
16 [ lookup-objc-method suffix! ] [ suffix! ] bi \ send suffix! ;
20 scan-token dup remember-send
21 suffix! \ send suffix! ;
24 scan-token dup remember-send
25 <selector> suffix! \ cocoa.messages:selector suffix! ;
27 SYMBOL: super-sent-messages
29 super-sent-messages [ H{ } clone ] initialize
31 : remember-super-send ( selector -- )
32 dup super-sent-messages get set-at ;
35 scan-token dup remember-super-send
36 [ lookup-objc-method suffix! ] [ suffix! ] bi \ super-send suffix! ;
40 frameworks [ V{ } clone ] initialize
42 [ frameworks get [ load-framework ] each ] "cocoa" add-startup-hook
44 SYNTAX: FRAMEWORK: scan-token [ load-framework ] [ frameworks get push ] bi ;
46 SYNTAX: IMPORT: scan-token [ ] import-objc-class ;
48 "Importing Cocoa classes..." print
50 "cocoa.classes" create-vocab drop
63 "NSCustomTouchBarItem"
74 "NSNotificationCenter"
84 "NSPropertyListSerialization"
97 ] with-compilation-unit