From f3aed22a2134831f73c24b3e0b67349318cfe502 Mon Sep 17 00:00:00 2001 From: Andre Pang Date: Thu, 21 Oct 2004 01:32:22 +0000 Subject: Added cursor-changing support to Mac OS X XineOpenGLView CVS patchset: 7058 CVS date: 2004/10/21 01:32:22 --- src/video_out/macosx/video_window.h | 4 ++++ src/video_out/macosx/video_window.m | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/video_out/macosx/video_window.h b/src/video_out/macosx/video_window.h index 5b2dc9dcf..2eb705378 100644 --- a/src/video_out/macosx/video_window.h +++ b/src/video_out/macosx/video_window.h @@ -44,6 +44,7 @@ typedef enum { NSLock *mutex; BOOL keepsVideoAspectRatio; BOOL resizeViewOnVideoSizeChange; + NSCursor *currentCursor; } - (void) displayTexture; @@ -67,6 +68,9 @@ typedef enum { - (BOOL) keepsVideoAspectRatio; - (void) setResizeViewOnVideoSizeChange:(BOOL)flag; - (BOOL) resizeViewOnVideoSizeChange; +- (void) setCurrentCursor:(NSCursor *)cursor; +- (NSCursor *) currentCursor; +- (void) resetCursorRectsInMainThread; /* Delegate methods */ - (id) delegate; diff --git a/src/video_out/macosx/video_window.m b/src/video_out/macosx/video_window.m index d04ad139b..b94324e91 100644 --- a/src/video_out/macosx/video_window.m +++ b/src/video_out/macosx/video_window.m @@ -289,6 +289,7 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification"; video_height = frame.size.height; texture_buffer = nil; mutex = [[NSLock alloc] init]; + currentCursor = [NSCursor arrowCursor]; [self initTextures]; @@ -767,6 +768,31 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification"; return YES; } +- (void) setCurrentCursor:(NSCursor *)cursor +{ + currentCursor = cursor; + [self resetCursorRectsInMainThread]; +} + +- (NSCursor *) currentCursor +{ + return currentCursor; +} + +- (void) resetCursorRectsInMainThread +{ + [self discardCursorRects]; + [self performSelectorOnMainThread:@selector(resetCursorRects) + withObject:nil + waitUntilDone:NO]; +} + +- (void) resetCursorRects +{ + [self addCursorRect:[self visibleRect] cursor:currentCursor]; + [currentCursor set]; +} + @end /* XineOpenGLView */ -- cgit v1.2.3