]> git.sesse.net Git - vlc/commitdiff
legacy OS X intf: restored 1.0 look of the video output window
authorFelix Paul Kühne <fkuehne@videolan.org>
Sat, 13 Mar 2010 20:18:36 +0000 (21:18 +0100)
committerFelix Paul Kühne <fkuehne@videolan.org>
Sat, 13 Mar 2010 20:18:36 +0000 (21:18 +0100)
modules/gui/macosx/embeddedwindow.m

index fb5d4c362489615b2190b1aa663b7b0f0347a108..50c1f0242ca63c63c4e11f9340eb88cc10c0a196 100644 (file)
 /* SetSystemUIMode, ... */
 #import <Carbon/Carbon.h>
 
-/*****************************************************************************
- * extension to NSWindow's interface to fix compilation warnings
- * and let us access this functions properly
- * this uses a private Apple-API, but works fine on all current OSX releases
- * keep checking for compatiblity with future releases though
- *****************************************************************************/
-
-@interface NSWindow (UndocumentedWindowProperties)
-- (void)setBottomCornerRounded: (BOOL)value;
-@end
-
 /*****************************************************************************
  * VLCEmbeddedWindow Implementation
  *****************************************************************************/
 
 @implementation VLCEmbeddedWindow
 
+- (id)initWithContentRect:(NSRect)contentRect styleMask: (NSUInteger)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation
+{
+    BOOL b_useTextured = YES;
+    if( [[NSWindow class] instancesRespondToSelector:@selector(setContentBorderThickness:forEdge:)] )
+    {
+        b_useTextured = NO;
+        windowStyle ^= NSTexturedBackgroundWindowMask;
+    }
+    self = [super initWithContentRect:contentRect styleMask:windowStyle backing:bufferingType defer:deferCreation];
+    if(! b_useTextured )
+    {
+        [self setContentBorderThickness:28.0 forEdge:NSMinYEdge];
+    }
+    return self;
+}
+
 - (void)awakeFromNib
 {
     [self setDelegate: self];
-    [self setBottomCornerRounded:NO];
 
     /* button strings */
     [o_btn_backward setToolTip: _NS("Rewind")];
     [o_btn_fullscreen setState: NO];
     b_fullscreen = NO;
 
+    [self setMovableByWindowBackground:YES];
+
+    [self setDelegate:self];
+
     /* Make sure setVisible: returns NO */
     [self orderOut:self];
-    //b_window_is_invisible = YES;
+    b_window_is_invisible = YES;
     videoRatio = NSMakeSize( 0., 0. );
 }
 
     if( [o_btn_play alternateImage] == o_img_play_pressed )
         b_playing = YES;
 
-    if( [NSColor currentControlTint] == NSGraphiteControlTint ) {
+    if( [NSColor currentControlTint] == NSGraphiteControlTint )
+    {
         o_img_play_pressed = [NSImage imageNamed: @"play_embedded_graphite"];
         o_img_pause_pressed = [NSImage imageNamed: @"pause_embedded_graphite"];
+        [o_btn_backward setAlternateImage: [NSImage imageNamed: @"skip_previous_embedded_graphite"]];
+        [o_btn_forward setAlternateImage: [NSImage imageNamed: @"skip_forward_embedded_graphite"]];
+        [o_btn_fullscreen setAlternateImage: [NSImage imageNamed: @"fullscreen_graphite"]];
     } else {
-        o_img_play_pressed = [NSImage imageNamed:@"play_embedded_blue"];
-        o_img_pause_pressed = [NSImage imageNamed:@"pause_embedded_blue"];
+        o_img_play_pressed = [NSImage imageNamed: @"play_embedded_blue"];
+        o_img_pause_pressed = [NSImage imageNamed: @"pause_embedded_blue"];
+        [o_btn_backward setAlternateImage: [NSImage imageNamed: @"skip_previous_embedded_blue"]];
+        [o_btn_forward setAlternateImage: [NSImage imageNamed: @"skip_forward_embedded_blue"]];
+        [o_btn_fullscreen setAlternateImage: [NSImage imageNamed: @"fullscreen_blue"]];
     }
 
     if( b_playing )
 - (BOOL)windowShouldClose:(id)sender
 {
     playlist_t * p_playlist = pl_Get( VLCIntf );
+    playlist_Stop( p_playlist );
 
-    /* Only want to stop playback if video is playing */
-    if( videoRatio.height != 0. && videoRatio.width != 0. )
-        playlist_Stop( p_playlist );
     return YES;
 }
 
             [o_temp_view setFrame:[o_view frame]];
             [o_fullscreen_window setContentView:o_view];
 
-            [o_fullscreen_window makeKeyAndOrderFront:self];
-
             [o_fullscreen_window makeKeyAndOrderFront:self];
             [o_fullscreen_window orderFront:self animate:YES];