]> git.sesse.net Git - vlc/blobdiff - projects/macosx/vlc_app/Sources/VLCAppAdditions.m
Remove vlc_app. Unfinished, and doesn't belong here.
[vlc] / projects / macosx / vlc_app / Sources / VLCAppAdditions.m
diff --git a/projects/macosx/vlc_app/Sources/VLCAppAdditions.m b/projects/macosx/vlc_app/Sources/VLCAppAdditions.m
deleted file mode 100644 (file)
index a453113..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-/*****************************************************************************
- * VLCAppAdditions.m: Helpful additions to NS* classes
- *****************************************************************************
- * Copyright (C) 2007 Pierre d'Herbemont
- * Copyright (C) 2007 the VideoLAN team
- * $Id$
- *
- * Authors: Pierre d'Herbemont <pdherbemont # videolan.org>
- *          Felix Kühne <fkuehne at videolan dot org>
- *          Jérôme Decoodt <djc at videolan dot org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#import "VLCAppAdditions.h"
-#import <QuartzCore/QuartzCore.h>
-
-@implementation NSIndexPath (VLCAppAddition)
-- (NSIndexPath *)indexPathByRemovingFirstIndex
-{
-    if( [self length] <= 1 )
-        return [[[NSIndexPath alloc] init] autorelease];
-
-    NSIndexPath * ret;
-    NSUInteger * ints = malloc(sizeof(NSUInteger)*[self length]);
-    if( !ints ) return nil;
-    [self getIndexes:ints];
-
-    ret = [NSIndexPath indexPathWithIndexes:ints+1 length:[self length]-1];
-
-    free(ints);
-    return ret;
-}
-- (NSUInteger)lastIndex
-{
-    if(![self length])
-        return 0;
-    return [self indexAtPosition:[self length]-1];
-}
-@end
-
-@implementation NSArray (VLCAppAddition)
-- (id)objectAtIndexPath:(NSIndexPath *)path withNodeKeyPath:(NSString *)nodeKeyPath
-{
-    if( ![path length] || !nodeKeyPath )
-        return self;
-
-    id object = [self objectAtIndex:[path indexAtPosition:0]];
-    id subarray = [object valueForKeyPath:nodeKeyPath];
-    if([path length] == 1)
-        return subarray ? subarray : object;
-
-    if(!subarray)
-        return object;
-    return [subarray objectAtIndexPath:[path indexPathByRemovingFirstIndex] withNodeKeyPath:nodeKeyPath];
-}
-@end
-
-@implementation NSView (VLCAppAdditions)
-- (void)moveSubviewsToVisible
-{
-    for(NSView * view in [self subviews])
-    {
-        if( ([view autoresizingMask] & NSViewHeightSizable) &&
-            !NSContainsRect([view frame], [self bounds]) )
-        {
-            NSRect newFrame = NSIntersectionRect( [self bounds], [view frame] );
-            if( !NSIsEmptyRect(newFrame) )
-                [view setFrame:NSIntersectionRect( [self bounds], [view frame] )];
-        }
-    }
-}
-@end
-
-/* Split view that supports slider animation */
-@implementation VLCOneSplitView
-- (CGFloat)dividerThickness
-{
-    return 1.;
-}
-- (void)drawDividerInRect:(NSRect)aRect
-{
-    [self lockFocus];
-    [[NSColor blackColor] set];
-    NSRectFill(aRect);
-    [self unlockFocus];
-}
-- (float)sliderPosition
-{
-    NSSize size = [[[self subviews] objectAtIndex:0] frame].size;
-    return [self isVertical] ? size.width : size.height;
-}
-- (void)setSliderPosition:(float)newPosition
-{
-    [self setPosition:newPosition ofDividerAtIndex:0];
-}
-+ (id)defaultAnimationForKey:(NSString *)key
-{
-    if([key isEqualToString:@"sliderPosition"])
-    {
-        return [CABasicAnimation animation];
-    }
-    return [super defaultAnimationForKey: key];
-}
-@end
-
-/*****************************************************************************
- * NSScreen (VLCAdditions)
- *
- *  Missing extension to NSScreen
- *****************************************************************************/
-
-@implementation NSScreen (VLCAdditions)
-
-static NSMutableArray *blackoutWindows = NULL;
-
-+ (void)load
-{
-    /* init our fake object attribute */
-    blackoutWindows = [[NSMutableArray alloc] initWithCapacity:1];
-}
-
-+ (NSScreen *)screenWithDisplayID: (CGDirectDisplayID)displayID
-{
-    int i;
-    for( i = 0; i < [[NSScreen screens] count]; i++ )
-    {
-        NSScreen *screen = [[NSScreen screens] objectAtIndex: i];
-        if([screen displayID] == displayID)
-            return screen;
-    }
-    return nil;
-}
-
-- (BOOL)isMainScreen
-{
-    return ([self displayID] == [[[NSScreen screens] objectAtIndex:0] displayID]);
-}
-
-- (BOOL)isScreen: (NSScreen*)screen
-{
-    return ([self displayID] == [screen displayID]);
-}
-
-- (CGDirectDisplayID)displayID
-{
-    return (CGDirectDisplayID)_screenNumber;
-}
-
-- (void)blackoutOtherScreens
-{
-    unsigned int i;
-
-    /* Free our previous blackout window (follow blackoutWindow alloc strategy) */
-    [blackoutWindows makeObjectsPerformSelector:@selector(close)];
-    [blackoutWindows removeAllObjects];
-
-    for(i = 0; i < [[NSScreen screens] count]; i++)
-    {
-        NSScreen *screen = [[NSScreen screens] objectAtIndex: i];
-        VLCWindow *blackoutWindow;
-        NSRect screen_rect;
-        if([self isScreen: screen])
-            continue;
-
-        screen_rect = [screen frame];
-        screen_rect.origin.x = screen_rect.origin.y = 0.0f;
-
-        /* blackoutWindow alloc strategy
-            - The NSMutableArray blackoutWindows has the blackoutWindow references
-            - blackoutOtherDisplays is responsible for alloc/releasing its Windows
-        */
-        blackoutWindow = [[VLCWindow alloc] initWithContentRect: screen_rect styleMask: NSBorderlessWindowMask
-                backing: NSBackingStoreBuffered defer: NO screen: screen];
-        [blackoutWindow setBackgroundColor:[NSColor blackColor]];
-        [blackoutWindow setLevel: NSFloatingWindowLevel]; /* Disappear when Expose is triggered */
-        [blackoutWindow orderFront: self];
-
-        [blackoutWindows addObject: blackoutWindow];
-        [blackoutWindow release];
-    }
-}
-
-+ (void)unblackoutScreens
-{
-    unsigned int i;
-
-    for(i = 0; i < [blackoutWindows count]; i++)
-    {
-        VLCWindow *blackoutWindow = [blackoutWindows objectAtIndex: i];
-        [blackoutWindow close];
-    }
-}
-
-@end
-
-/*****************************************************************************
- * VLCWindow
- *
- *  Missing extension to NSWindow
- *****************************************************************************/
-
-@implementation VLCWindow
-- (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)styleMask
-    backing:(NSBackingStoreType)backingType defer:(BOOL)flag
-{
-    self = [super initWithContentRect:contentRect styleMask:styleMask backing:backingType defer:flag];
-    if( self )
-        isset_canBecomeKeyWindow = NO;
-    return self;
-}
-- (void)setCanBecomeKeyWindow: (BOOL)canBecomeKey
-{
-    isset_canBecomeKeyWindow = YES;
-    canBecomeKeyWindow = canBecomeKey;
-}
-
-- (BOOL)canBecomeKeyWindow
-{
-    if(isset_canBecomeKeyWindow)
-        return canBecomeKeyWindow;
-
-    return [super canBecomeKeyWindow];
-}
-@end
-
-/*****************************************************************************
- * VLCImageCustomizedSlider
- *
- *  Slider personalized by backgroundImage and knobImage
- *****************************************************************************/
-@implementation VLCImageCustomizedSlider
-@synthesize backgroundImage;
-@synthesize knobImage;
-
-- (id)initWithFrame:(NSRect)frame
-{
-    if(self = [super initWithFrame:frame])
-    {
-        knobImage = nil;
-        backgroundImage = nil;
-    }
-    return self;
-}
-
-- (void)dealloc
-{
-    [knobImage release];
-    [knobImage release];
-    [super dealloc];
-}
-
-- (void)drawKnobInRect:(NSRect) knobRect
-{
-    NSRect imageRect;
-    imageRect.size = [self.knobImage size];
-    imageRect.origin.x = 0;
-    imageRect.origin.y = 0;
-    knobRect.origin.x += (knobRect.size.width - imageRect.size.width) / 2;
-    knobRect.origin.y += (knobRect.size.width - imageRect.size.width) / 2;
-    knobRect.size.width = imageRect.size.width;
-    knobRect.size.height = imageRect.size.height;
-    [self.knobImage drawInRect:knobRect fromRect:imageRect operation:NSCompositeSourceOver fraction:1];
-}
-
-- (void)drawBackgroundInRect:(NSRect) drawRect
-{
-    NSRect imageRect = drawRect;
-    imageRect.origin.y += ([self.backgroundImage size].height - [self bounds].size.height ) / 2;
-    [self.backgroundImage drawInRect:drawRect fromRect:imageRect operation:NSCompositeSourceOver fraction:1];
-}
-
-- (void)drawRect:(NSRect)rect
-{
-    /* Draw default to make sure the slider behaves correctly */
-    [[NSGraphicsContext currentContext] saveGraphicsState];
-    NSRectClip(NSZeroRect);
-    [super drawRect:rect];
-    [[NSGraphicsContext currentContext] restoreGraphicsState];
-    if( self.backgroundImage ) 
-        [self drawBackgroundInRect: rect];
-    if( self.knobImage ) 
-    {
-        NSRect knobRect = [[self cell] knobRectFlipped:NO];
-        [[[NSColor blackColor] colorWithAlphaComponent:0.6] set];
-        [self drawKnobInRect: knobRect];
-    }
-}
-
-@end
-
-/*****************************************************************************
- * NSImageView (VLCAppAdditions)
- *
- *  Make the image view  move the window by mouse down by default
- *****************************************************************************/
-
-@implementation NSImageView (VLCAppAdditions)
-- (BOOL)mouseDownCanMoveWindow
-{
-    return YES;
-}
-@end
-
-/*****************************************************************************
- * NSImage (VLCAppAdditions)
- *
- *  Make the image view move the window by mouse down by default
- *****************************************************************************/
-
-@implementation NSImage (VLCAppAdditions)
-- (CGImageRef)CGImage
-{
-    return [[NSBitmapImageRep imageRepWithData:[NSBitmapImageRep TIFFRepresentationOfImageRepsInArray: [self representations]]] CGImage];
-}
-@end
-
-