34 lines
		
	
	
		
			682 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			682 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2005, 2006 Kevin Reid.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
IN: cocoa.callbacks
 | 
						|
USING: assocs kernel namespaces cocoa cocoa.classes
 | 
						|
cocoa.subclassing debugger ;
 | 
						|
 | 
						|
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 ;
 |