2007-09-20 18:09:08 -04:00
|
|
|
! Copyright (C) 2005, 2006 Kevin Reid.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
|
|
USING: assocs kernel namespaces cocoa cocoa.classes
|
|
|
|
cocoa.subclassing debugger ;
|
2009-08-13 20:21:44 -04:00
|
|
|
IN: cocoa.callbacks
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
SYMBOL: callbacks
|
|
|
|
|
|
|
|
: reset-callbacks ( -- )
|
|
|
|
H{ } clone callbacks set-global ;
|
|
|
|
|
|
|
|
reset-callbacks
|
|
|
|
|
|
|
|
CLASS: {
|
|
|
|
{ +name+ "FactorCallback" }
|
|
|
|
{ +superclass+ "NSObject" }
|
|
|
|
}
|
|
|
|
|
|
|
|
{ "perform:" "void" { "id" "SEL" "id" }
|
|
|
|
[ 2drop callbacks get at try ]
|
|
|
|
}
|
|
|
|
|
|
|
|
{ "dealloc" "void" { "id" "SEL" }
|
|
|
|
[
|
|
|
|
drop
|
|
|
|
dup callbacks get delete-at
|
|
|
|
SUPER-> dealloc
|
|
|
|
]
|
|
|
|
} ;
|
|
|
|
|
|
|
|
: <FactorCallback> ( quot -- id )
|
|
|
|
FactorCallback -> alloc -> init
|
|
|
|
[ callbacks get set-at ] keep ;
|