* Mac OS X: new Track Synchronization panel
* Mac OS X: new Video Effects panel for color and geometry adjustments
* Mac OS X: re-written Open Disc functionality with automatic media detection
+ * Mac OS X: support for the native fullscreen mode on OS X Lion
* The rc and telnet lua interfaces were merged into a new "cli" interface
* dbus: Rewrite of the main loop to use a more efficient poll-based model
* dbus: Upgrade to an mpris2 compliant interface, see http://www.mpris.org
chroma conversion
* New video output for Android platform, based on Surface
* Support for 9/10bits output in the OpenGL output
+ * Updated OpenGL video output for Mac, which requires a Quartz Extreme capable Mac
Audio Output:
* New audio output based on AudioQueue API for iOS
[[o_tableView tabViewItemAtIndex:[o_tableView indexOfTabViewItemWithIdentifier:@"filter"]] setLabel:_NS("Filter")];
[o_window setTitle:_NS("Audio Effects")];
[o_window setExcludedFromWindowsMenu:YES];
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
[self setupEqualizer];
[self resetCompressor];
- (void)toggleFullscreen
{
- input_thread_t * p_input = pl_CurrentInput( VLCIntf );
-
- if( p_input != NULL )
- {
- playlist_t * p_playlist = pl_Get( VLCIntf );
- var_ToggleBool( p_playlist, "fullscreen" );
-
- vlc_object_release( p_input );
- }
+ playlist_t * p_playlist = pl_Get( VLCIntf );
+ var_ToggleBool( p_playlist, "fullscreen" );
}
@end
o_temp_view = [[NSView alloc] init];
[o_temp_view setAutoresizingMask:NSViewHeightSizable | NSViewWidthSizable];
[o_dropzone_view setFrame: [o_playlist_table frame]];
+ if (NSAppKitVersionNumber >= 1115.2)
+ [self setCollectionBehavior: NSWindowCollectionBehaviorFullScreenPrimary];
/* create the sidebar */
o_sidebaritems = [[NSMutableArray alloc] init];
{
[o_video_view removeFromSuperviewWithoutNeedingDisplay];
[o_video_view setFrame: [o_split_view frame]];
- [[self contentView] addSubview: o_video_view];
+ [[self contentView] addSubview:o_video_view positioned:NSWindowAbove relativeTo:nil];
}
b_nonembedded = NO;
}
/* fullscreenAnimation will be unlocked when animation ends */
}
-
-
/* Make sure setFrame gets executed on main thread especially if we are animating.
* (Thus we won't block the video output thread) */
- (void)setFrame:(NSRect)frame display:(BOOL)display animate:(BOOL)animate
[o_sv_speed_lbl setStringValue: _NS("Speed of the subtitles:")];
[[o_sv_speed_value_fld formatter] setFormat:[NSString stringWithFormat:@"#,##0.000 %@", _NS("fps")]];
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+
[self resetValues:self];
}
{
[o_window setTitle: _NS("Video Effects")];
[o_window setExcludedFromWindowsMenu:YES];
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+
[[o_tableView tabViewItemAtIndex:[o_tableView indexOfTabViewItemWithIdentifier:@"basic"]] setLabel:_NS("Basic")];
[[o_tableView tabViewItemAtIndex:[o_tableView indexOfTabViewItemWithIdentifier:@"crop"]] setLabel:_NS("Crop")];
[[o_tableView tabViewItemAtIndex:[o_tableView indexOfTabViewItemWithIdentifier:@"geometry"]] setLabel:_NS("Geometry")];
[super dealloc];
}
+- (void)awakeFromNib
+{
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_about_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+}
+
/*****************************************************************************
* VLC About Window
*****************************************************************************/
- (void)awakeFromNib
{
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_bookmarks_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+
[self initStrings];
}
[win setOpaque:NO];
[win setHasShadow: NO];
[win setBackgroundColor:[NSColor clearColor]];
-
+ if (NSAppKitVersionNumber >= 1115.2)
+ [win setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+
/* let the window sit on top of everything else and start out completely transparent */
[win setLevel:NSModalPanelWindowLevel];
i_device = 0;
#include <Cocoa/Cocoa.h>
#import "SPMediaKeyTap.h" /* for the media key support */
#import "misc.h"
+#import "MainWindow.h"
/*****************************************************************************
* Local prototypes.
BOOL nib_bookmarks_loaded; /* Bookmarks nibfile */
BOOL b_active_videoplayback;
- id o_mainwindow; /* VLCMainWindow */
+ VLCMainWindow *o_mainwindow; /* VLCMainWindow */
IBOutlet VLCControls * o_controls; /* VLCControls */
IBOutlet VLCPlaylist * o_playlist; /* VLCPlaylist */
#import "intf.h"
#import "MainMenu.h"
-#import "MainWindow.h"
#import "vout.h"
#import "prefs.h"
#import "playlist.h"
case INPUT_EVENT_ES:
break;
case INPUT_EVENT_TELETEXT:
- NSLog( @"teletext" );
break;
case INPUT_EVENT_AOUT:
break;
var_AddCallback(p_playlist, "volume", VolumeUpdated, self);
var_AddCallback(p_playlist, "mute", VolumeUpdated, self);
+ if ([NSApp currentSystemPresentationOptions] == NSApplicationPresentationFullScreen)
+ var_SetBool( p_playlist, "fullscreen", YES );
+
/* load our Core Dialogs nib */
nib_coredialogs_loaded = [NSBundle loadNibNamed:@"CoreDialogs" owner: NSApp];
#pragma mark Interface updaters
- (void)fullscreenChanged
{
- if(! [o_mainwindow isFullscreen] )
- [o_mainwindow performSelectorOnMainThread:@selector(enterFullscreen) withObject:nil waitUntilDone:NO];
+ playlist_t * p_playlist = pl_Get( VLCIntf );
+ BOOL b_fullscreen = var_GetBool( p_playlist, "fullscreen" );
+
+ if (NSAppKitVersionNumber >= 1115.2)
+ {
+ [o_mainwindow toggleFullScreen: self];
+ if(b_fullscreen)
+ [NSApp setPresentationOptions:(NSApplicationPresentationFullScreen)];
+ else
+ [NSApp setPresentationOptions:(NSApplicationPresentationDefault)];
+ }
else
- [o_mainwindow performSelectorOnMainThread:@selector(leaveFullscreen) withObject:nil waitUntilDone:NO];
+ {
+ input_thread_t * p_input = pl_CurrentInput( VLCIntf );
+
+ if( p_input != NULL )
+ {
+ if(b_fullscreen)
+ [o_mainwindow performSelectorOnMainThread:@selector(enterFullscreen) withObject:nil waitUntilDone:NO];
+ else
+ [o_mainwindow performSelectorOnMainThread:@selector(leaveFullscreen) withObject:nil waitUntilDone:NO];
+ vlc_object_release( p_input );
+ }
+ }
}
- (void)PlaylistItemChanged
- (void)awakeFromNib
{
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_panel setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+
[o_panel setTitle: _NS("Open Source")];
[o_mrl_lbl setStringValue: _NS("Media Resource Locator (MRL)")];
{
[o_info_window setExcludedFromWindowsMenu: YES];
[o_info_window setFloatingPanel: NO];
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_info_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
[o_info_window setTitle: _NS("Media Information")];
[o_uri_lbl setStringValue: _NS("Location")];
{
p_intf = VLCIntf;
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_prefs_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+
[self initStrings];
[o_prefs_view setBorderType: NSGrooveBorder];
[o_prefs_view setHasVerticalScroller: YES];
[o_sprefs_toolbar setDelegate: self];
[o_sprefs_win setToolbar: o_sprefs_toolbar];
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_sprefs_win setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+
/* setup useful stuff */
o_hotkeysNonUseableKeys = [[NSArray arrayWithObjects: @"Command-c", @"Command-x", @"Command-v", @"Command-a", @"Command-," , @"Command-h", @"Command-Alt-h", @"Command-Shift-o", @"Command-o", @"Command-d", @"Command-n", @"Command-s", @"Command-z", @"Command-l", @"Command-r", @"Command-3", @"Command-m", @"Command-w", @"Command-Shift-w", @"Command-Shift-c", @"Command-Shift-p", @"Command-i", @"Command-e", @"Command-Shift-e", @"Command-b", @"Command-Shift-m", @"Command-Ctrl-m", @"Command-?", @"Command-Alt-?", nil] retain];
}
- (void)awakeFromNib
{
+ if (NSAppKitVersionNumber >= 1115.2)
+ [o_wizard_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+
/* some minor cleanup */
[o_t2_tbl_plst setEnabled:NO];
o_userSelections = [[NSMutableDictionary alloc] init];