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 ;
 |