| 
									
										
										
										
											2013-05-02 20:09:19 +08:00
										 |  |  | // Copyright (c) 2013 GitHub, Inc. All rights reserved. | 
					
						
							|  |  |  | // Use of this source code is governed by a BSD-style license that can be | 
					
						
							|  |  |  | // found in the LICENSE file. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "browser/atom_browser_main_parts.h" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #import "base/mac/bundle_locations.h" | 
					
						
							| 
									
										
										
										
											2013-05-02 23:03:14 +08:00
										 |  |  | #import "browser/atom_application_mac.h" | 
					
						
							|  |  |  | #import "browser/atom_application_delegate_mac.h" | 
					
						
							| 
									
										
										
										
											2013-05-02 20:09:19 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | namespace atom { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void AtomBrowserMainParts::PreMainMessageLoopStart() { | 
					
						
							|  |  |  |   // Force the NSApplication subclass to be used. | 
					
						
							|  |  |  |   NSApplication* application = [AtomApplication sharedApplication]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   AtomApplicationDelegate* delegate = [AtomApplicationDelegate alloc]; | 
					
						
							|  |  |  |   [NSApp setDelegate:delegate]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   auto infoDictionary = base::mac::OuterBundle().infoDictionary; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   NSString *mainNibName = [infoDictionary objectForKey:@"NSMainNibFile"]; | 
					
						
							|  |  |  |   auto mainNib = [[NSNib alloc] initWithNibNamed:mainNibName bundle:base::mac::FrameworkBundle()]; | 
					
						
							|  |  |  |   [mainNib instantiateWithOwner:application topLevelObjects:nil]; | 
					
						
							|  |  |  |   [mainNib release]; | 
					
						
							| 
									
										
										
										
											2013-05-31 10:17:40 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   // Prevent Cocoa from turning command-line arguments into | 
					
						
							|  |  |  |   // |-application:openFiles:|, since we already handle them directly. | 
					
						
							|  |  |  |   [[NSUserDefaults standardUserDefaults] | 
					
						
							|  |  |  |       setObject:@"NO" forKey:@"NSTreatUnknownArgumentsAsOpen"]; | 
					
						
							| 
									
										
										
										
											2013-05-02 20:09:19 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-30 16:03:10 +08:00
										 |  |  | void AtomBrowserMainParts::PostDestroyThreads() { | 
					
						
							| 
									
										
										
										
											2013-05-30 19:12:14 +08:00
										 |  |  |   [[AtomApplication sharedApplication] setDelegate:nil]; | 
					
						
							| 
									
										
										
										
											2013-05-30 16:03:10 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-02 20:09:19 +08:00
										 |  |  | }  // namespace atom |