/*****************************************************************************
- * VLCVideoView.h: VLC.framework VLCVideoView implementation
+ * VLCVideoView.m: VLCKit.framework VLCVideoView implementation
*****************************************************************************
* Copyright (C) 2007 Pierre d'Herbemont
* Copyright (C) 2007 the VideoLAN team
@end
@interface VLCVideoView ()
+/* Proeprties */
@property (readwrite) BOOL hasVideo;
@end
@implementation VLCVideoView
+/* Initializers */
- (id)initWithFrame:(NSRect)rect
{
if (self = [super initWithFrame:rect])
{
- delegate = nil;
- [self setBackColor:[NSColor blackColor]];
+ self.delegate = nil;
+ self.backColor = [NSColor blackColor];
+ self.fillScreen = NO;
+ self.hasVideo = NO;
+
[self setStretchesVideo:NO];
[self setAutoresizesSubviews:YES];
- [self setFillScreen: NO];
- self.hasVideo = NO;
layoutManager = [[VLCVideoLayoutManager layoutManager] retain];
}
return self;
- (void)dealloc
{
+ self.delegate = nil;
+ self.backColor = nil;
[layoutManager release];
- delegate = nil;
- [backColor release];
[super dealloc];
}
+/* NSView Overrides */
- (void)drawRect:(NSRect)aRect
{
[self lockFocus];
return YES;
}
+/* Properties */
@synthesize delegate;
@synthesize backColor;
@synthesize hasVideo;
- (void)setFillScreen:(BOOL)fillScreen
{
- [layoutManager setFillScreenEntirely:fillScreen];
+ [(VLCVideoLayoutManager *)layoutManager setFillScreenEntirely:fillScreen];
[[self layer] setNeedsLayout];
}
@end
[layoutManager setOriginalVideoSize:aLayer.bounds.size];
[rootLayer setLayoutManager:layoutManager];
[rootLayer insertSublayer:aLayer atIndex:0];
+ [self setNeedsDisplayOnBoundsChange:YES];
- [aLayer setNeedsLayout];
- [aLayer setNeedsDisplay];
-
- [rootLayer setNeedsDisplayOnBoundsChange:YES];
- [rootLayer setNeedsDisplay];
- [rootLayer layoutIfNeeded];
[CATransaction commit];
self.hasVideo = YES;
}
-- (void)removeVoutLayer:(CALayer*)voutLayer
+- (void)removeVoutLayer:(CALayer *)voutLayer
{
[CATransaction begin];
[voutLayer removeFromSuperlayer];