dup next-event [ -> sendEvent: t ] [ drop f ] if* ;
: add-observer ( observer selector name object -- )
- >r >r >r >r NSNotificationCenter -> defaultCenter
- r> r> sel_registerName
- r> r> -> addObserver:selector:name:object: ;
+ [
+ [ NSNotificationCenter -> defaultCenter ] 2dip
+ sel_registerName
+ ] 2dip -> addObserver:selector:name:object: ;
: remove-observer ( observer -- )
- >r NSNotificationCenter -> defaultCenter r>
+ [ NSNotificationCenter -> defaultCenter ] dip
-> removeObserver: ;
: finish-launching ( -- ) NSApp -> finishLaunching ;
: cache-stub ( method function hash -- )
[
- over get [ 2drop ] [ over >r sender-stub r> set ] if
+ over get [ 2drop ] [ over [ sender-stub ] dip set ] if
] bind ;
: cache-stubs ( method -- )
: <super> ( receiver -- super )
"objc-super" <c-object> [
- >r dup object_getClass class_getSuperclass r>
+ [ dup object_getClass class_getSuperclass ] dip
set-objc-super-class
] keep
[ set-objc-super-receiver ] keep ;
swap second length 2 - make-dip ;
MACRO: (send) ( selector super? -- quot )
- >r dup lookup-method r>
+ [ dup lookup-method ] dip
[ make-prepare-send ] 2keep
super-message-senders message-senders ? get at
[ slip execute ] 2curry ;
] unless ;
: (parse-objc-type) ( i string -- ctype )
- 2dup nth >r >r 1+ r> r> {
+ 2dup nth [ 1+ ] 2dip {
{ [ dup "rnNoORV" member? ] [ drop (parse-objc-type) ] }
{ [ dup CHAR: ^ = ] [ 3drop "void*" ] }
{ [ dup CHAR: { = ] [ drop objc-struct-type ] }
: class-exists? ( string -- class ) objc_getClass >boolean ;
: unless-defined ( class quot -- )
- >r class-exists? r> unless ; inline
+ [ class-exists? ] dip unless ; inline
: define-objc-class-word ( name quot -- )
[
over , , \ unless-defined , dup , \ objc-class ,
- ] [ ] make >r "cocoa.classes" create r>
+ ] [ ] make [ "cocoa.classes" create ] dip
(( -- class )) define-declared ;
: import-objc-class ( name quot -- )