| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | ! Copyright (C) 2006 Slava Pestov | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							|  |  |  | USING: compiler io kernel cocoa.runtime cocoa.subclassing | 
					
						
							|  |  |  | cocoa.messages cocoa.types sequences words vocabs parser | 
					
						
							| 
									
										
										
										
											2008-12-12 02:11:37 -05:00
										 |  |  | core-foundation.bundles namespaces assocs hashtables | 
					
						
							|  |  |  | compiler.units lexer init ;
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | IN: cocoa | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : (remember-send) ( selector variable -- )
 | 
					
						
							|  |  |  |     global [ dupd ?set-at ] change-at ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SYMBOL: sent-messages | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : remember-send ( selector -- )
 | 
					
						
							|  |  |  |     sent-messages (remember-send) ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : -> | 
					
						
							|  |  |  |     scan dup remember-send parsed \ send parsed ;
 | 
					
						
							|  |  |  |     parsing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SYMBOL: super-sent-messages | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : remember-super-send ( selector -- )
 | 
					
						
							|  |  |  |     super-sent-messages (remember-send) ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : SUPER-> | 
					
						
							|  |  |  |     scan dup remember-super-send parsed \ super-send parsed ;
 | 
					
						
							|  |  |  |     parsing | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-02 08:10:22 -04:00
										 |  |  | SYMBOL: frameworks | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-10 17:16:12 -05:00
										 |  |  | frameworks [ V{ } clone ] initialize
 | 
					
						
							| 
									
										
										
										
											2008-10-02 08:10:22 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ frameworks get [ load-framework ] each ] "cocoa.messages" add-init-hook | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : FRAMEWORK: scan [ load-framework ] [ frameworks get push ] bi ; parsing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : IMPORT: scan [ ] import-objc-class ; parsing | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | "Compiling Objective C bridge..." print
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | "cocoa.classes" create-vocab drop
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     "cocoa" "cocoa.runtime" "cocoa.messages" "cocoa.subclassing" | 
					
						
							| 
									
										
										
										
											2008-01-09 01:36:11 -05:00
										 |  |  | } [ words ] map concat compile | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | "Importing Cocoa classes..." print
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-01-09 01:36:11 -05:00
										 |  |  | [ | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         "NSApplication" | 
					
						
							|  |  |  |         "NSArray" | 
					
						
							|  |  |  |         "NSAutoreleasePool" | 
					
						
							|  |  |  |         "NSBundle" | 
					
						
							| 
									
										
										
										
											2008-07-13 15:18:35 -04:00
										 |  |  |         "NSData" | 
					
						
							| 
									
										
										
										
											2008-04-05 09:30:02 -04:00
										 |  |  |         "NSDictionary" | 
					
						
							| 
									
										
										
										
											2008-01-09 01:36:11 -05:00
										 |  |  |         "NSError" | 
					
						
							|  |  |  |         "NSEvent" | 
					
						
							|  |  |  |         "NSException" | 
					
						
							|  |  |  |         "NSMenu" | 
					
						
							|  |  |  |         "NSMenuItem" | 
					
						
							| 
									
										
										
										
											2008-04-05 09:30:02 -04:00
										 |  |  |         "NSMutableDictionary" | 
					
						
							| 
									
										
										
										
											2008-01-09 01:36:11 -05:00
										 |  |  |         "NSNib" | 
					
						
							|  |  |  |         "NSNotification" | 
					
						
							|  |  |  |         "NSNotificationCenter" | 
					
						
							| 
									
										
										
										
											2008-07-13 15:18:35 -04:00
										 |  |  |         "NSNumber" | 
					
						
							| 
									
										
										
										
											2008-01-09 01:36:11 -05:00
										 |  |  |         "NSObject" | 
					
						
							|  |  |  |         "NSOpenGLContext" | 
					
						
							|  |  |  |         "NSOpenGLPixelFormat" | 
					
						
							|  |  |  |         "NSOpenGLView" | 
					
						
							|  |  |  |         "NSOpenPanel" | 
					
						
							|  |  |  |         "NSPasteboard" | 
					
						
							| 
									
										
										
										
											2008-07-19 18:17:12 -04:00
										 |  |  |         "NSPropertyListSerialization" | 
					
						
							| 
									
										
										
										
											2008-01-09 01:36:11 -05:00
										 |  |  |         "NSResponder" | 
					
						
							|  |  |  |         "NSSavePanel" | 
					
						
							| 
									
										
										
										
											2008-02-09 03:17:24 -05:00
										 |  |  |         "NSScreen" | 
					
						
							| 
									
										
										
										
											2008-07-13 13:42:35 -04:00
										 |  |  |         "NSString" | 
					
						
							| 
									
										
										
										
											2008-01-09 01:36:11 -05:00
										 |  |  |         "NSView" | 
					
						
							|  |  |  |         "NSWindow" | 
					
						
							|  |  |  |         "NSWorkspace" | 
					
						
							|  |  |  |     } [ | 
					
						
							|  |  |  |         [ ] import-objc-class | 
					
						
							|  |  |  |     ] each
 | 
					
						
							|  |  |  | ] with-compilation-unit |