#import <Cocoa/Cocoa.h>
#import <QuartzCore/QuartzCore.h>
-@class CALayer;
-
-/* Notifications */
-extern NSString * VLCVideoViewEnteredFullScreen;
-extern NSString * VLCVideoViewLeftFullScreen;
-@protocol VLCVideoViewDelegate
-// Notifications defined in VLCVideoView.h
-- (void)videoEnteredFullscreen:(NSNotification *)aNotification;
-- (void)videoLeftFullscreen:(NSNotification *)aNotification;
-@end
+@class CALayer;
@interface VLCVideoView : NSView
{
id delegate;
NSColor * backColor;
BOOL stretchesVideo;
- BOOL fullScreen;
id layoutManager;
// TODO: Allow for view to report transparency to do some cool effects
// with the video?
}
-@property BOOL fullScreen;
@property BOOL fillScreen;
- (void)setDelegate:(id)value;
- (void)setBackColor:(NSColor *)value;
- (NSColor *)backColor;
-
-- (void)enterFullscreen;
-- (void)leaveFullscreen;
-
-//- (void)setOnTop: (BOOL)ontop; /* Do we really want that in protocol? */
-
-// The media controls that were here previously should be moved elsewhere. This
-// View is just that, a view not a controller. -- Moved to VLCMediaPlayer
@end
[self setDrawable: aVideoLayer];
}
-- (void)setFullscreen:(BOOL)value
-{
- libvlc_set_fullscreen(instance, value, NULL);
-}
-
-- (BOOL)fullscreen
-{
- libvlc_exception_t ex;
- libvlc_exception_init( &ex );
- int result = libvlc_get_fullscreen( instance, &ex );
- catch_exception( &ex );
- return result;
-}
-
- (void)setVideoAspectRatio:(char *)value
{
libvlc_video_set_aspect_ratio( instance, value, NULL );
#import <QuartzCore/QuartzCore.h>
-/* Notifications */
-NSString * VLCVideoViewEnteredFullScreen = @"VLCVideoViewEnteredFullScreen";
-NSString * VLCVideoViewLeftFullScreen = @"VLCVideoViewLeftFullScreen";
-
/******************************************************************************
* Soon deprecated stuff
*/
[[self layer] setNeedsLayout];
}
-- (BOOL)fullScreen
-{
- return fullScreen;
-}
-
-- (void)setFullScreen:(BOOL)newFullScreen
-{
- if( newFullScreen )
- {
- fullScreen = YES;
- [self enterFullscreen];
- }
- else
- {
- fullScreen = NO;
- [self leaveFullscreen];
- }
-}
-
-
- (id)initWithFrame:(NSRect)rect
{
if (self = [super initWithFrame:rect])
return backColor;
}
-/* This is a LibVLC notification that we're about to enter into full screen,
- there is no other place where I can see where we can trap this event */
-- (void)enterFullscreen
-{
- // Go ahead and send a notification to the world we're going into full screen
- [[VLCEventManager sharedManager] callOnMainThreadDelegateOfObject:self
- withDelegateMethod:nil
- withNotificationName:VLCVideoViewEnteredFullScreen];
-
- [super enterFullScreenMode:[[self window] screen] withOptions:nil];
- if( !self.fullScreen ) self.fullScreen = YES;
-}
-
-/* This is a LibVLC notification that we're about to enter leaving full screen,
- there is no other place where I can see where we can trap this event */
-- (void)leaveFullscreen
-{
- // Go ahead and send a notification to the world we're leaving full screen
- [[VLCEventManager sharedManager] callOnMainThreadDelegateOfObject:self
- withDelegateMethod:nil
- withNotificationName:VLCVideoViewLeftFullScreen];
-
- // There is nothing else to do, as this object strictly displays the video feed
- [super exitFullScreenModeWithOptions:nil];
- if( self.fullScreen ) self.fullScreen = NO;
-}
-
- (void)drawRect:(NSRect)aRect
{
[self lockFocus];
{
return YES;
}
-
-- (void)mouseDown:(NSEvent *)theEvent
-{
- if([theEvent clickCount] != 2)
- return;
- if(self.fullScreen)
- [self leaveFullscreen];
- else
- [self enterFullscreen];
-}
@end
/******************************************************************************