| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- /*******************************
 
-  Mac support for HID Test GUI
 
-  
 
-  Alan Ott
 
-  Signal 11 Software
 
- *******************************/
 
- #include <fx.h>
 
- #import <Cocoa/Cocoa.h>
 
- extern FXMainWindow *g_main_window;
 
- @interface MyAppDelegate : NSObject
 
- {
 
- } 
 
- @end
 
- @implementation MyAppDelegate
 
- - (void) applicationWillBecomeActive:(NSNotification*)notif
 
- {
 
- 	printf("WillBecomeActive\n");
 
- 	g_main_window->show();
 
- }
 
- - (void) applicationWillTerminate:(NSNotification*)notif
 
- {
 
- 	/* Doesn't get called. Not sure why */
 
- 	printf("WillTerminate\n");
 
- 	FXApp::instance()->exit();
 
- }
 
- - (NSApplicationTerminateReply) applicationShouldTerminate:(NSApplication*)sender
 
- {
 
- 	/* Doesn't get called. Not sure why */
 
- 	printf("ShouldTerminate\n");
 
- 	return YES;
 
- }
 
- - (void) applicationWillHide:(NSNotification*)notif
 
- {
 
- 	printf("WillHide\n");
 
- 	g_main_window->hide();
 
- }
 
- - (void) handleQuitEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
 
- {
 
- 	printf("QuitEvent\n");
 
- 	FXApp::instance()->exit();
 
- }
 
- @end
 
- extern "C" {
 
- void
 
- init_apple_message_system()
 
- {
 
- 	static MyAppDelegate *d = [MyAppDelegate new];
 
- 	[[NSApplication sharedApplication] setDelegate:d];
 
- 	/* Register for Apple Events. */
 
- 	/* This is from
 
- 	   http://stackoverflow.com/questions/1768497/application-exit-event */
 
- 	NSAppleEventManager *aem = [NSAppleEventManager sharedAppleEventManager];
 
- 	[aem setEventHandler:d
 
- 	     andSelector:@selector(handleQuitEvent:withReplyEvent:)
 
- 	     forEventClass:kCoreEventClass andEventID:kAEQuitApplication];
 
- }
 
- void
 
- check_apple_events()
 
- {
 
- 	NSApplication *app = [NSApplication sharedApplication];
 
- 	NSAutoreleasePool *pool = [NSAutoreleasePool new];
 
- 	while (1) {
 
- 		NSEvent* event = [NSApp nextEventMatchingMask:NSAnyEventMask
 
- 		                        untilDate:nil
 
-                                         inMode:NSDefaultRunLoopMode
 
-                                         dequeue:YES];
 
- 		if (event == NULL)
 
- 			break;
 
- 		else {
 
- 			//printf("Event happened: Type: %d\n", event->_type);
 
- 			[app sendEvent: event];
 
- 		}
 
- 	}
 
- 	[pool release];
 
- }
 
- } /* extern "C" */
 
 
  |