1 ! Copyright (C) 2006, 2009 Slava Pestov
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: assocs cocoa.messages compiler.units core-foundation.bundles
4 io kernel lexer namespaces sequences vocabs ;
9 sent-messages [ H{ } clone ] initialize
10 : remember-send ( selector -- )
11 dup sent-messages get set-at ;
14 scan-token dup remember-send
15 [ lookup-objc-method suffix! ] [ suffix! ] bi \ send suffix! ;
19 scan-token dup remember-send
20 suffix! \ send suffix! ;
23 scan-token dup remember-send
24 <selector> suffix! \ cocoa.messages:selector suffix! ;
26 SYMBOL: super-sent-messages
28 super-sent-messages [ H{ } clone ] initialize
30 : remember-super-send ( selector -- )
31 dup super-sent-messages get set-at ;
34 scan-token dup remember-super-send
35 [ lookup-objc-method suffix! ] [ suffix! ] bi \ super-send suffix! ;
39 frameworks [ V{ } clone ] initialize
41 STARTUP-HOOK: [ frameworks get [ load-framework ] each ]
43 SYNTAX: FRAMEWORK: scan-token [ load-framework ] [ frameworks get push ] bi ;
45 SYNTAX: IMPORT: scan-token [ ] import-objc-class ;
47 "Importing Cocoa classes..." print
49 "cocoa.classes" create-vocab drop
63 "NSCustomTouchBarItem"
76 "NSNotificationCenter"
86 "NSPropertyListSerialization"
99 ] with-compilation-unit