00001
00002
00003
00004
00005
00006
00007
00008
00009 #import "BaseView.h"
00010
00011
00012 @implementation BaseView
00013
00014 - (void) awakeFromNib {
00015
00016 notificationCenter = [LLNotificationCenter defaultCenter];
00017 universe = [Universe defaultInstance];
00018 }
00019
00020
00021 - (void) viewDidMoveToWindow {
00022
00023
00024 bool mouseInView = NSPointInRect([self mousePos], [self bounds]);
00025 [self addTrackingRect:[self bounds] owner:self userData:nil assumeInside:mouseInView];
00026 if (mouseInView) {
00027 [self mouseEntered:nil];
00028 }
00029 }
00030
00031
00032 - (void) mouseEntered:(NSEvent*)evt {
00033 NSLog(@"BaseView.mouseEntered making myself first responder");
00034 [[self window] makeFirstResponder:self];
00035 [[NSCursor crosshairCursor] push];
00036 }
00037
00038 - (void) mouseExited:(NSEvent*)evt {
00039 NSLog(@"BaseView.mouseExited resigning myself as first responder");
00040 [[self window] resignFirstResponder];
00041 [[NSCursor crosshairCursor] pop];
00042 }
00043
00044 - (NSPoint) mousePos {
00045
00046 NSPoint mouseBase = [[self window] mouseLocationOutsideOfEventStream];
00047
00048
00049 NSPoint mouseLocation = [self convertPoint:mouseBase fromView:nil];
00050
00051 return mouseLocation;
00052 }
00053
00054 - (bool) acceptsFirstMouse {
00055 return YES;
00056 }
00057
00058 - (bool) opaque{
00059 return YES;
00060 }
00061
00062
00063 - (bool) isFlipped {
00064 return YES;
00065 }
00066
00067
00068
00069 - (bool) acceptsFirstResponder {
00070 return YES;
00071 }
00072
00073
00074 - (bool) becomeFirstResponder {
00075 [self setNeedsDisplay:YES];
00076
00077
00078
00079
00080
00081
00082
00083 return YES;
00084 }
00085
00086 - (bool) resignFirstResponder {
00087 [self setNeedsDisplay:YES];
00088 return [super resignFirstResponder];
00089 }
00090
00091
00092 @end