vlc | branch: master | Marvin Scholz <[email protected]> | Tue Oct 11 10:55:34 2016 +0200| [3da0d0c2185e08486cd41eee2e6c36366d5a5606] | committer: Marvin Scholz
macosx: Remove old fscontroller source code Removes the old VLCFSPanel, and references to the source files from the makefiles, potfiles and the Xcode project. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3da0d0c2185e08486cd41eee2e6c36366d5a5606 --- .../package/macosx/vlc.xcodeproj/project.pbxproj | 8 - modules/gui/macosx/Makefile.am | 1 - modules/gui/macosx/VLCControlsBarCommon.h | 1 - modules/gui/macosx/VLCControlsBarCommon.m | 1 - modules/gui/macosx/VLCFSPanel.h | 99 --- modules/gui/macosx/VLCFSPanel.m | 763 --------------------- modules/gui/macosx/VLCMainWindowControlsBar.h | 1 - modules/gui/macosx/VLCMainWindowControlsBar.m | 1 - po/POTFILES.in | 2 - 9 files changed, 877 deletions(-) diff --git a/extras/package/macosx/vlc.xcodeproj/project.pbxproj b/extras/package/macosx/vlc.xcodeproj/project.pbxproj index ee9aa96..452e8a6 100644 --- a/extras/package/macosx/vlc.xcodeproj/project.pbxproj +++ b/extras/package/macosx/vlc.xcodeproj/project.pbxproj @@ -400,8 +400,6 @@ 1CCB5F6D1A62A724004C3E90 /* VLCExtensionsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CCED71314C0D4A90057F8D1 /* VLCExtensionsManager.m */; }; 1CCB5F6E1A62A724004C3E90 /* VLCEyeTvController.h in Sources */ = {isa = PBXBuildFile; fileRef = CC6EDD4F0B9CA2140096068A /* VLCEyeTvController.h */; }; 1CCB5F6F1A62A724004C3E90 /* VLCEyeTvController.m in Sources */ = {isa = PBXBuildFile; fileRef = CC6EDD500B9CA2140096068A /* VLCEyeTvController.m */; }; - 1CCB5F701A62A724004C3E90 /* VLCFSPanel.h in Sources */ = {isa = PBXBuildFile; fileRef = 2AEF857609A5FEC900130822 /* VLCFSPanel.h */; }; - 1CCB5F711A62A724004C3E90 /* VLCFSPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AEF857709A5FEC900130822 /* VLCFSPanel.m */; }; 1CCB5F721A62A724004C3E90 /* VLCMain.h in Sources */ = {isa = PBXBuildFile; fileRef = 8ED6C27C03E2EB1C0059A3A7 /* VLCMain.h */; }; 1CCB5F731A62A724004C3E90 /* VLCMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED6C27D03E2EB1C0059A3A7 /* VLCMain.m */; }; 1CCB5F741A62A724004C3E90 /* macosx.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED6C27E03E2EB1C0059A3A7 /* macosx.m */; }; @@ -1273,8 +1271,6 @@ 1CE5ED1E19DD6AB700FCEFD3 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "[email protected]"; sourceTree = "<group>"; }; 1CE5ED1F19DD6AB700FCEFD3 /* lion-window-fullscreen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lion-window-fullscreen.png"; sourceTree = "<group>"; }; 1CE5ED2019DD6AB700FCEFD3 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "[email protected]"; sourceTree = "<group>"; }; - 2AEF857609A5FEC900130822 /* VLCFSPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFSPanel.h; path = ../../../modules/gui/macosx/VLCFSPanel.h; sourceTree = SOURCE_ROOT; }; - 2AEF857709A5FEC900130822 /* VLCFSPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFSPanel.m; path = ../../../modules/gui/macosx/VLCFSPanel.m; sourceTree = SOURCE_ROOT; }; 5CCED71014C0D4A90057F8D1 /* VLCExtensionsDialogProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCExtensionsDialogProvider.h; path = ../../../modules/gui/macosx/VLCExtensionsDialogProvider.h; sourceTree = SOURCE_ROOT; }; 5CCED71114C0D4A90057F8D1 /* VLCExtensionsDialogProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCExtensionsDialogProvider.m; path = ../../../modules/gui/macosx/VLCExtensionsDialogProvider.m; sourceTree = SOURCE_ROOT; }; 5CCED71214C0D4A90057F8D1 /* VLCExtensionsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCExtensionsManager.h; path = ../../../modules/gui/macosx/VLCExtensionsManager.h; sourceTree = SOURCE_ROOT; }; @@ -1933,8 +1929,6 @@ 5CCED71314C0D4A90057F8D1 /* VLCExtensionsManager.m */, CC6EDD4F0B9CA2140096068A /* VLCEyeTvController.h */, CC6EDD500B9CA2140096068A /* VLCEyeTvController.m */, - 2AEF857609A5FEC900130822 /* VLCFSPanel.h */, - 2AEF857709A5FEC900130822 /* VLCFSPanel.m */, 6BCB59091DA247CD009BCA66 /* VLCFSPanelController.h */, 6BCB590A1DA247CD009BCA66 /* VLCFSPanelController.m */, 7D871D391B5E684D000B56C0 /* helpers.h */, @@ -4046,9 +4040,7 @@ 6BBBB8B41D112BAC001BD9BA /* VLCRendererItem.m in Sources */, 1CCB5F6E1A62A724004C3E90 /* VLCEyeTvController.h in Sources */, 1CCB5F6F1A62A724004C3E90 /* VLCEyeTvController.m in Sources */, - 1CCB5F701A62A724004C3E90 /* VLCFSPanel.h in Sources */, 7D5678ED1D5BA1DC002698F3 /* VLCApplication.m in Sources */, - 1CCB5F711A62A724004C3E90 /* VLCFSPanel.m in Sources */, 1CCB5F721A62A724004C3E90 /* VLCMain.h in Sources */, 6B13E2A81BC67678001AD24A /* VLCScrollingClipView.m in Sources */, 1CD3667B1B7A242E0054E39F /* VLCTimeSelectionPanelController.m in Sources */, diff --git a/modules/gui/macosx/Makefile.am b/modules/gui/macosx/Makefile.am index 14bbfbe..e1d5891 100644 --- a/modules/gui/macosx/Makefile.am +++ b/modules/gui/macosx/Makefile.am @@ -35,7 +35,6 @@ libmacosx_plugin_la_SOURCES = \ VLCCoreInteraction.h VLCCoreInteraction.m \ VLCExtensionsDialogProvider.h VLCExtensionsDialogProvider.m \ VLCExtensionsManager.h VLCExtensionsManager.m \ - VLCFSPanel.h VLCFSPanel.m \ VLCHelpWindowController.h VLCHelpWindowController.m \ VLCMain+OldPrefs.h VLCMain+OldPrefs.m \ VLCMain.h VLCMain.m \ diff --git a/modules/gui/macosx/VLCControlsBarCommon.h b/modules/gui/macosx/VLCControlsBarCommon.h index f64ff03..e286012 100644 --- a/modules/gui/macosx/VLCControlsBarCommon.h +++ b/modules/gui/macosx/VLCControlsBarCommon.h @@ -25,7 +25,6 @@ #import <Cocoa/Cocoa.h> #import "misc.h" -@class VLCFSPanel; @class VLCResizeControl; /***************************************************************************** diff --git a/modules/gui/macosx/VLCControlsBarCommon.m b/modules/gui/macosx/VLCControlsBarCommon.m index 1f7684a..18cbd13 100644 --- a/modules/gui/macosx/VLCControlsBarCommon.m +++ b/modules/gui/macosx/VLCControlsBarCommon.m @@ -26,7 +26,6 @@ #import "VLCMain.h" #import "VLCCoreInteraction.h" #import "VLCMainMenu.h" -#import "VLCFSPanel.h" #import "VLCPlaylist.h" #import "CompatibilityFixes.h" diff --git a/modules/gui/macosx/VLCFSPanel.h b/modules/gui/macosx/VLCFSPanel.h deleted file mode 100644 index 316cf21..0000000 --- a/modules/gui/macosx/VLCFSPanel.h +++ /dev/null @@ -1,99 +0,0 @@ -/***************************************************************************** - * VLCFSPanel.h: MacOS X full screen panel - ***************************************************************************** - * Copyright (C) 2006-2013 VLC authors and VideoLAN - * $Id$ - * - * Authors: Jérôme Decoodt <djc at videolan dot org> - * Felix Paul Kühne <fkuehne at videolan dot org> - * David Fuhrmann <david dot fuhrmann at googlemail dot com> - * - * 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. - *****************************************************************************/ - -@class VLCWindow; - -@interface VLCFSPanel : NSWindow - -- (id)initWithContentRect: (NSRect)contentRect - styleMask: (NSUInteger)aStyle - backing: (NSBackingStoreType)bufferingType - defer: (BOOL)flag; -- (BOOL)canBecomeKeyWindow; -- (void)dealloc; - -- (void)setPlay; -- (void)setPause; -- (void)setStreamTitle: (NSString *)o_title; -- (void)updatePositionAndTime; -- (void)setSeekable: (BOOL)b_seekable; -- (void)setVolumeLevel: (int)i_volumeLevel; - -- (void)setNonActive: (id)noData; -- (void)setActive: (id)noData; - -- (void)focus: (NSTimer *)timer; -- (void)unfocus: (NSTimer *)timer; -- (void)mouseExited: (NSEvent *)theEvent; - -- (void)fadeIn; -- (void)fadeOut; - -- (NSTimer *)fadeTimer; -- (void)setFadeTimer: (NSTimer *)timer; -- (void)autoHide; -- (void)keepVisible: (NSTimer *)timer; - -- (void)mouseDown: (NSEvent *)theEvent; -- (void)mouseDragged: (NSEvent *)theEvent; - -- (void)setVoutWasUpdated: (VLCWindow *)o_window; - -@end - -@class VLCProgressView; -@class VLCFSVolumeSlider; - -@interface VLCFSPanelView : NSView - -- (void)setPlay; -- (void)setPause; -- (void)setStreamTitle: (NSString *)o_title; -- (void)updatePositionAndTime; -- (void)setSeekable: (BOOL)b_seekable; -- (void)setVolumeLevel: (int)i_volumeLevel; -- (IBAction)play:(id)sender; -- (IBAction)prev:(id)sender; -- (IBAction)next:(id)sender; -- (IBAction)forward:(id)sender; -- (IBAction)backward:(id)sender; -- (IBAction)fsTimeSliderUpdate: (id)sender; -- (IBAction)fsVolumeSliderUpdate: (id)sender; - -@end - -@interface VLCFSTimeSlider : NSSlider - -- (void)drawKnobInRect: (NSRect)knobRect; -- (void)drawRect: (NSRect)rect; - -@end - -@interface VLCFSVolumeSlider : VLCVolumeSliderCommon - -- (void)drawKnobInRect: (NSRect)knobRect; -- (void)drawRect: (NSRect)rect; - -@end diff --git a/modules/gui/macosx/VLCFSPanel.m b/modules/gui/macosx/VLCFSPanel.m deleted file mode 100644 index f2bfc92..0000000 --- a/modules/gui/macosx/VLCFSPanel.m +++ /dev/null @@ -1,763 +0,0 @@ -/***************************************************************************** - * VLCFSPanel.m: MacOS X full screen panel - ***************************************************************************** - * Copyright (C) 2006-2013 VLC authors and VideoLAN - * $Id$ - * - * Authors: Jérôme Decoodt <djc at videolan dot org> - * Felix Paul Kühne <fkuehne at videolan dot org> - * David Fuhrmann <david dot fuhrmann at googlemail dot com> - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#import "VLCMain.h" -#import "VLCCoreInteraction.h" -#import "VLCMainWindow.h" -#import "misc.h" -#import "VLCFSPanel.h" -#import "CompatibilityFixes.h" - -@interface VLCFSPanel() -{ - NSTimer *fadeTimer,*hideAgainTimer; - NSPoint mouseClic; - BOOL b_fadeQueued; - BOOL b_keptVisible; - BOOL b_alreadyCounting; - int i_timeToKeepVisibleInSec; - - BOOL b_nonActive; - BOOL b_displayed; - BOOL b_voutWasUpdated; - int i_device; - - VLCWindow *o_vout_window; -} - -- (void)hideMouse; -@end - -/***************************************************************************** - * VLCFSPanel - *****************************************************************************/ -@implementation VLCFSPanel -/* We override this initializer so we can set the NSBorderlessWindowMask styleMask, and set a few other important settings */ -- (id)initWithContentRect:(NSRect)contentRect - styleMask:(NSUInteger)aStyle - backing:(NSBackingStoreType)bufferingType - defer:(BOOL)flag -{ - id win = [super initWithContentRect:contentRect styleMask:NSTexturedBackgroundWindowMask backing:bufferingType defer:flag]; - - if (!win) - return win; - - self.contentView = [[VLCFSPanelView alloc] initWithFrame:contentRect]; - [win setOpaque:NO]; - [win setHasShadow: NO]; - [win setBackgroundColor:[NSColor clearColor]]; - [win setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary]; - - /* let the window sit on top of everything else and start out completely transparent */ - [win setLevel:NSModalPanelWindowLevel]; - i_device = config_GetInt(getIntf(), "macosx-vdev"); - hideAgainTimer = fadeTimer = nil; - [self setFrameAutosaveName:@"fspanel"]; - [self setNonActive:nil]; - - [self setContentView:[[VLCFSPanelView alloc] initWithFrame: [self frame]]]; - BOOL isInside = (NSPointInRect([NSEvent mouseLocation],[self frame])); - [[self contentView] addTrackingRect:[[self contentView] bounds] owner:self userData:nil assumeInside:isInside]; - if (isInside) - [self mouseEntered:NULL]; - if (!isInside) - [self mouseExited:NULL]; - - [self setAnimationBehavior:NSWindowAnimationBehaviorNone]; - - /* get a notification if VLC isn't the active app anymore */ - [[NSNotificationCenter defaultCenter] - addObserver: self - selector: @selector(setNonActive:) - name: NSApplicationDidResignActiveNotification - object: NSApp]; - - /* Get a notification if VLC is the active app again. - Needed as becomeKeyWindow does not get called when window is activated by clicking */ - [[NSNotificationCenter defaultCenter] - addObserver: self - selector: @selector(setActive:) - name: NSApplicationDidBecomeActiveNotification - object: NSApp]; - - return win; -} - -/* make sure that we don't become key, since we can't handle hotkeys */ -- (BOOL)canBecomeKeyWindow -{ - return NO; -} - -- (BOOL)mouseDownCanMoveWindow -{ - return YES; -} - --(void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver: self]; - - if (hideAgainTimer) { - [hideAgainTimer invalidate]; - } - - [self setFadeTimer:nil]; -} - --(void)center -{ - /* centre the panel in the lower third of the screen */ - NSPoint theCoordinate; - NSRect theScreensFrame; - NSRect theWindowsFrame; - NSScreen *screen; - - /* user-defined screen */ - screen = [NSScreen screenWithDisplayID: (CGDirectDisplayID)i_device]; - - if (!screen) - /* invalid preferences or none specified, using main screen */ - screen = [NSScreen mainScreen]; - - theScreensFrame = [screen frame]; - theWindowsFrame = [self frame]; - - theCoordinate.x = (theScreensFrame.size.width - theWindowsFrame.size.width) / 2 + theScreensFrame.origin.x; - theCoordinate.y = (theScreensFrame.size.height / 3) - theWindowsFrame.size.height + theScreensFrame.origin.y; - [self setFrameTopLeftPoint: theCoordinate]; -} - -- (void)setPlay -{ - [[self contentView] setPlay]; -} - -- (void)setPause -{ - [[self contentView] setPause]; -} - -- (void)setStreamTitle:(NSString *)o_title -{ - [[self contentView] setStreamTitle: o_title]; -} - -- (void)updatePositionAndTime -{ - [[self contentView] updatePositionAndTime]; -} - -- (void)setSeekable:(BOOL) b_seekable -{ - [[self contentView] setSeekable: b_seekable]; -} - -- (void)setVolumeLevel: (int)i_volumeLevel -{ - [[self contentView] setVolumeLevel: i_volumeLevel]; -} - -- (void)setNonActive:(id)noData -{ - b_nonActive = YES; - - /* here's fadeOut, just without visibly fading */ - b_displayed = NO; - [self setAlphaValue:0.0]; - [self setFadeTimer:nil]; - - b_fadeQueued = NO; - - [self orderOut: self]; -} - -- (void)setActive:(id)noData -{ - b_nonActive = NO; - - [[VLCMain sharedInstance] showFullscreenController]; -} - -/* This routine is called repeatedly to fade in the window */ -- (void)focus:(NSTimer *)timer -{ - /* we need to push ourselves to front if the vout window was closed since our last display */ - if (b_voutWasUpdated) { - [self orderFront: self]; - b_voutWasUpdated = NO; - } - - if ([self alphaValue] < 1.0) { - [self setAlphaValue:[self alphaValue]+0.1]; - } - if ([self alphaValue] >= 1.0) { - b_displayed = YES; - [self setAlphaValue: 1.0]; - [self setFadeTimer:nil]; - if (b_fadeQueued) { - b_fadeQueued=NO; - [self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(unfocus:) userInfo:NULL repeats:YES]]; - } - } -} - -/* This routine is called repeatedly to hide the window */ -- (void)unfocus:(NSTimer *)timer -{ - if (b_keptVisible) { - b_keptVisible = NO; - b_fadeQueued = NO; - [self setFadeTimer: NULL]; - [self fadeIn]; - return; - } - if ([self alphaValue] > 0.0) { - [self setAlphaValue:[self alphaValue]-0.05]; - } - if ([self alphaValue] <= 0.05) { - b_displayed = NO; - [self setAlphaValue:0.0]; - [self setFadeTimer:nil]; - if (b_fadeQueued) { - b_fadeQueued=NO; - [self setFadeTimer: - [NSTimer scheduledTimerWithTimeInterval:0.1 - target:self - selector:@selector(focus:) - userInfo:NULL - repeats:YES]]; - } - } -} - -- (void)mouseExited:(NSEvent *)theEvent -{ - /* give up our focus, so the vout may show us again without letting the user clicking it */ - if (o_vout_window && var_GetBool(pl_Get(getIntf()), "fullscreen")) - [o_vout_window makeKeyWindow]; -} - -- (void)hideMouse -{ - [NSCursor setHiddenUntilMouseMoves: YES]; -} - -- (void)fadeIn -{ - /* in case that the user don't want us to appear, make sure we hide the mouse */ - - if (!config_GetInt(getIntf(), "macosx-fspanel")) { - float time = (float)var_CreateGetInteger(getIntf(), "mouse-hide-timeout") / 1000.; - [self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:time target:self selector:@selector(hideMouse) userInfo:nil repeats:NO]]; - return; - } - - if (b_nonActive) - return; - - [self orderFront: nil]; - - if ([self alphaValue] < 1.0 || b_displayed != YES) { - if (![self fadeTimer]) - [self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(focus:) userInfo:[NSNumber numberWithInt:1] repeats:YES]]; - else if ([[[self fadeTimer] userInfo] shortValue]==0) - b_fadeQueued=YES; - } - [self autoHide]; -} - -- (void)fadeOut -{ - if (NSPointInRect([NSEvent mouseLocation],[self frame])) - return; - - if (([self alphaValue] > 0.0)) { - if (![self fadeTimer]) - [self setFadeTimer:[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(unfocus:) userInfo:[NSNumber numberWithInt:0] repeats:YES]]; - else if ([[[self fadeTimer] userInfo] shortValue]==1) - b_fadeQueued=YES; - } -} - -/* triggers a timer to autoHide us again after some seconds of no activity */ -- (void)autoHide -{ - /* this will tell the timer to start over again or to start at all */ - b_keptVisible = YES; - - /* get us a valid timer */ - if (!b_alreadyCounting) { - i_timeToKeepVisibleInSec = var_CreateGetInteger(getIntf(), "mouse-hide-timeout") / 500; - if (hideAgainTimer) { - [hideAgainTimer invalidate]; - } - /* released in -autoHide and -dealloc */ - hideAgainTimer = [NSTimer scheduledTimerWithTimeInterval: 0.5 - target: self - selector: @selector(keepVisible:) - userInfo: nil - repeats: YES]; - b_alreadyCounting = YES; - } -} - -- (void)keepVisible:(NSTimer *)timer -{ - /* if the user triggered an action, start over again */ - if (b_keptVisible) - b_keptVisible = NO; - - /* count down until we hide ourselfes again and do so if necessary */ - if (--i_timeToKeepVisibleInSec < 1) { - [self hideMouse]; - [self fadeOut]; - [hideAgainTimer invalidate]; /* released in -autoHide and -dealloc */ - b_alreadyCounting = NO; - } -} - -/* A getter and setter for our main timer that handles window fading */ -- (NSTimer *)fadeTimer -{ - return fadeTimer; -} - -- (void)setFadeTimer:(NSTimer *)timer -{ - [fadeTimer invalidate]; - fadeTimer=timer; -} - -- (void)mouseDown:(NSEvent *)theEvent -{ - mouseClic = [theEvent locationInWindow]; -} - -- (void)mouseDragged:(NSEvent *)theEvent -{ - NSPoint point = [NSEvent mouseLocation]; - point.x -= mouseClic.x; - point.y -= mouseClic.y; - [self setFrameOrigin:point]; -} - -- (void)setVoutWasUpdated: (VLCWindow *)o_window -{ - b_voutWasUpdated = YES; - o_vout_window = o_window; - int i_newdevice = (int)[[o_vout_window screen] displayID]; - if ((i_newdevice != i_device && i_device != 0) || i_newdevice != [[self screen] displayID]) { - i_device = i_newdevice; - [self center]; - } else - i_device = i_newdevice; -} -@end - -/***************************************************************************** - * FSPanelView - *****************************************************************************/ - -@interface VLCFSPanelView() -{ - NSColor *fillColor; - NSButton *o_prev, *o_next, *o_bwd, *o_fwd, *o_play, *o_fullscreen; - NSTextField *o_streamTitle_txt; - VLCTimeField *o_streamPosition_txt, *o_streamLength_txt; - NSSlider *o_fs_timeSlider; - VLCFSVolumeSlider *o_fs_volumeSlider; - VLCProgressView *o_progress_view; - NSImage *o_background_img, *o_vol_sld_img, *o_vol_mute_img, *o_vol_max_img, *o_time_sld_img; - NSTimeInterval last_fwd_event; - NSTimeInterval last_bwd_event; -} -@end - -@implementation VLCFSPanelView - -#define addButton(o_button, imageOff, imageOn, _x, _y, action, AXDesc, ToolTip) \ - s_rc.origin.x = _x; \ - s_rc.origin.y = _y; \ - o_button = [[NSButton alloc] initWithFrame: s_rc]; \ - [o_button setButtonType: NSMomentaryChangeButton]; \ - [o_button setBezelStyle: NSRegularSquareBezelStyle]; \ - [o_button setBordered: NO]; \ - [o_button setFont:[NSFont systemFontOfSize:0]]; \ - [o_button setImage:imageFromRes(imageOff)]; \ - [o_button setAlternateImage:imageFromRes(imageOn)]; \ - [o_button sizeToFit]; \ - [o_button setTarget: self]; \ - [o_button setAction: @selector(action:)]; \ - [[o_button cell] accessibilitySetOverrideValue:AXDesc forAttribute:NSAccessibilityDescriptionAttribute]; \ - [[o_button cell] accessibilitySetOverrideValue:ToolTip forAttribute:NSAccessibilityTitleAttribute]; \ - [o_button setToolTip: ToolTip]; \ - [self addSubview:o_button]; - -#define addTextfield(class, o_text, align, font, color) \ - o_text = [[class alloc] initWithFrame: s_rc]; \ - [o_text setDrawsBackground: NO]; \ - [o_text setBordered: NO]; \ - [o_text setEditable: NO]; \ - [o_text setSelectable: NO]; \ - [o_text setStringValue: _NS("(no item is being played)")]; \ - [o_text setAlignment: align]; \ - [o_text setTextColor: [NSColor color]]; \ - [o_text setFont:[NSFont font:[NSFont smallSystemFontSize]]]; \ - [self addSubview:o_text]; - -- (id)initWithFrame:(NSRect)frameRect -{ - id view = [super initWithFrame:frameRect]; - fillColor = [NSColor clearColor]; - NSRect s_rc = [self frame]; - addButton(o_prev, @"fs_skip_previous_highlight" , @"fs_skip_previous", 174, 15, prev, _NS("Click to go to the previous playlist item."), _NS("Previous")); - addButton(o_bwd, @"fs_rewind_highlight" , @"fs_rewind" , 211, 14, backward, _NS("Click and hold to skip backward through the current media."), _NS("Backward")); - addButton(o_play, @"fs_play_highlight" , @"fs_play" , 265, 10, play, _NS("Click to play or pause the current media."), _NS("Play/Pause")); - addButton(o_fwd, @"fs_forward_highlight" , @"fs_forward" , 313, 14, forward, _NS("Click and hold to skip forward through the current media."), _NS("Forward")); - addButton(o_next, @"fs_skip_next_highlight" , @"fs_skip_next" , 365, 15, next, _NS("Click to go to the next playlist item."), _NS("Next")); - addButton(o_fullscreen, @"fs_exit_fullscreen_highlight", @"fs_exit_fullscreen", 507, 13, toggleFullscreen, _NS("Click to exit fullscreen playback."), _NS("Toggle Fullscreen mode")); -/* - addButton(o_button, @"image (off state)", @"image (on state)", 38, 51, something, accessibility help string, usual tool tip); - */ - [o_fwd setContinuous:YES]; - [o_bwd setContinuous:YES]; - - /* time slider */ - // (surrounding progress view for swipe behaviour) - s_rc.origin.x = 15; - s_rc.origin.y = 45; - s_rc.size.width = 518; - s_rc.size.height = 13; - o_progress_view = [[VLCProgressView alloc] initWithFrame: s_rc]; - s_rc.origin.x = 0; - s_rc.origin.y = 0; - o_fs_timeSlider = [[VLCFSTimeSlider alloc] initWithFrame: s_rc]; - [o_fs_timeSlider setMinValue:0]; - [o_fs_timeSlider setMaxValue:10000]; - [o_fs_timeSlider setFloatValue: 0]; - [o_fs_timeSlider setContinuous: YES]; - [o_fs_timeSlider setTarget: self]; - [o_fs_timeSlider setAction: @selector(fsTimeSliderUpdate:)]; - [[o_fs_volumeSlider cell] accessibilitySetOverrideValue:_NS("Position") forAttribute:NSAccessibilityTitleAttribute]; - [[o_fs_timeSlider cell] accessibilitySetOverrideValue:_NS("Click and move the mouse while keeping the button pressed to use this slider to change current playback position.") forAttribute:NSAccessibilityDescriptionAttribute]; - [self addSubview: o_progress_view]; - [o_progress_view addSubview: o_fs_timeSlider]; - - /* volume slider */ - s_rc = [self frame]; - s_rc.origin.x = 26; - s_rc.origin.y = 20; - s_rc.size.width = 95; - s_rc.size.height = 12; - o_fs_volumeSlider = [[VLCFSVolumeSlider alloc] initWithFrame: s_rc]; - [o_fs_volumeSlider setMinValue:0]; - [o_fs_volumeSlider setMaxValue: [[VLCCoreInteraction sharedInstance] maxVolume]]; - [o_fs_volumeSlider setIntValue:AOUT_VOLUME_DEFAULT]; - [o_fs_volumeSlider setContinuous: YES]; - [o_fs_volumeSlider setTarget: self]; - [o_fs_volumeSlider setAction: @selector(fsVolumeSliderUpdate:)]; - [o_fs_volumeSlider setUsesBrightArtwork:NO]; - [[o_fs_volumeSlider cell] accessibilitySetOverrideValue:_NS("Volume") forAttribute:NSAccessibilityTitleAttribute]; - [[o_fs_volumeSlider cell] accessibilitySetOverrideValue:_NS("Click and move the mouse while keeping the button pressed to use this slider to change the volume.") forAttribute:NSAccessibilityDescriptionAttribute]; - [self addSubview: o_fs_volumeSlider]; - - /* time counter and stream title output fields */ - s_rc = [self frame]; - // 10 px gap between time fields - s_rc.origin.x = 90; - s_rc.origin.y = 64; - s_rc.size.width = 361; - s_rc.size.height = 14; - addTextfield(NSTextField, o_streamTitle_txt, NSCenterTextAlignment, systemFontOfSize, whiteColor); - s_rc.origin.x = 15; - s_rc.origin.y = 64; - s_rc.size.width = 65; - addTextfield(VLCTimeField, o_streamPosition_txt, NSLeftTextAlignment, systemFontOfSize, whiteColor); - s_rc.origin.x = 471; - s_rc.origin.y = 64; - s_rc.size.width = 65; - addTextfield(VLCTimeField, o_streamLength_txt, NSRightTextAlignment, systemFontOfSize, whiteColor); - [o_streamLength_txt setRemainingIdentifier: @"DisplayFullscreenTimeAsTimeRemaining"]; - - o_background_img = imageFromRes(@"fs_background"); - o_vol_sld_img = imageFromRes(@"fs_volume_slider_bar"); - o_vol_mute_img = imageFromRes(@"fs_volume_mute_highlight"); - o_vol_max_img = imageFromRes(@"fs_volume_max_highlight"); - o_time_sld_img = imageFromRes(@"fs_time_slider"); - - return view; -} - -- (void)setPlay -{ - [o_play setImage:imageFromRes(@"fs_play_highlight")]; - [o_play setAlternateImage: imageFromRes(@"fs_play")]; -} - -- (void)setPause -{ - [o_play setImage: imageFromRes(@"fs_pause_highlight")]; - [o_play setAlternateImage: imageFromRes(@"fs_pause")]; -} - -- (void)setStreamTitle:(NSString *)o_title -{ - [o_streamTitle_txt setStringValue: o_title]; -} - -- (void)updatePositionAndTime -{ - input_thread_t * p_input; - p_input = pl_CurrentInput(getIntf()); - if (p_input) { - - vlc_value_t pos; - float f_updated; - - var_Get(p_input, "position", &pos); - f_updated = 10000. * pos.f_float; - [o_fs_timeSlider setFloatValue: f_updated]; - - char psz_time[MSTRTIME_MAX_SIZE]; - - int64_t t = var_GetInteger(p_input, "time"); - mtime_t dur = input_item_GetDuration(input_GetItem(p_input)); - - // update total duration (right field) - if(dur <= 0) { - [o_streamLength_txt setHidden: YES]; - } else { - [o_streamLength_txt setHidden: NO]; - - NSString *o_total_time; - if ([o_streamLength_txt timeRemaining]) { - mtime_t remaining = 0; - if (dur > t) - remaining = dur - t; - o_total_time = [NSString stringWithFormat: @"-%s", secstotimestr(psz_time, (remaining / 1000000))]; - } else - o_total_time = toNSStr(secstotimestr(psz_time, (dur / 1000000))); - - [o_streamLength_txt setStringValue: o_total_time]; - } - - // update current position (left field) - NSString *o_playback_pos = toNSStr(secstotimestr(psz_time, t / CLOCK_FREQ)); - - [o_streamPosition_txt setStringValue: o_playback_pos]; - vlc_object_release(p_input); - } else { - [o_fs_timeSlider setFloatValue: 0.0]; - [o_streamPosition_txt setStringValue: @"00:00"]; - [o_streamLength_txt setHidden: YES]; - } - -} - -- (void)setSeekable:(BOOL)b_seekable -{ - [o_bwd setEnabled: b_seekable]; - [o_fwd setEnabled: b_seekable]; - [o_fs_timeSlider setEnabled: b_seekable]; -} - -- (void)setVolumeLevel: (int)i_volumeLevel -{ - [o_fs_volumeSlider setIntValue: i_volumeLevel]; -} - -- (IBAction)play:(id)sender -{ - [[VLCCoreInteraction sharedInstance] playOrPause]; -} - -- (IBAction)forward:(id)sender -{ - if (([NSDate timeIntervalSinceReferenceDate] - last_fwd_event) > 0.16) { - // we just skipped 4 "continous" events, otherwise we are too fast - [[VLCCoreInteraction sharedInstance] forwardExtraShort]; - last_fwd_event = [NSDate timeIntervalSinceReferenceDate]; - } -} - -- (IBAction)backward:(id)sender -{ - if (([NSDate timeIntervalSinceReferenceDate] - last_bwd_event) > 0.16) { - // we just skipped 4 "continous" events, otherwise we are too fast - [[VLCCoreInteraction sharedInstance] backwardExtraShort]; - last_bwd_event = [NSDate timeIntervalSinceReferenceDate]; - } -} - -- (IBAction)prev:(id)sender -{ - [[VLCCoreInteraction sharedInstance] previous]; -} - -- (IBAction)next:(id)sender -{ - [[VLCCoreInteraction sharedInstance] next]; -} - -- (IBAction)toggleFullscreen:(id)sender -{ - [[VLCCoreInteraction sharedInstance] toggleFullscreen]; -} - -- (IBAction)fsTimeSliderUpdate:(id)sender -{ - input_thread_t * p_input; - p_input = pl_CurrentInput(getIntf()); - if (p_input != NULL) { - vlc_value_t pos; - - pos.f_float = [o_fs_timeSlider floatValue] / 10000.; - var_Set(p_input, "position", pos); - vlc_object_release(p_input); - } - [[[VLCMain sharedInstance] mainWindow] updateTimeSlider]; -} - -- (IBAction)fsVolumeSliderUpdate:(id)sender -{ - [[VLCCoreInteraction sharedInstance] setVolume: [sender intValue]]; -} - -#define addImage(image, _x, _y, mode) \ - image_size = [image size]; \ - image_rect.size = image_size; \ - image_rect.origin.x = 0; \ - image_rect.origin.y = 0; \ - frame.origin.x = _x; \ - frame.origin.y = _y; \ - frame.size = image_size; \ - [image drawInRect:frame fromRect:image_rect operation:mode fraction:1]; - -- (void)drawRect:(NSRect)rect -{ - NSRect frame = [self frame]; - NSRect image_rect; - NSSize image_size; - NSImage *img; - addImage(o_background_img, 0, 0, NSCompositeCopy); - addImage(o_vol_sld_img, 26, 23, NSCompositeSourceOver); - addImage(o_vol_mute_img, 16, 18, NSCompositeSourceOver); - addImage(o_vol_max_img, 124, 18, NSCompositeSourceOver); - addImage(o_time_sld_img, 15, 45, NSCompositeSourceOver); -} - -@end - -/***************************************************************************** - * VLCFSTimeSlider - *****************************************************************************/ -@implementation VLCFSTimeSlider -- (void)drawKnobInRect:(NSRect)knobRect -{ - NSRect image_rect; - NSImage *img = imageFromRes(@"fs_time_slider_knob_highlight"); - image_rect.size = [img size]; - image_rect.origin.x = 0; - image_rect.origin.y = 0; - knobRect.origin.x += (knobRect.size.width - image_rect.size.width) / 2; - knobRect.size.width = image_rect.size.width; - knobRect.size.height = image_rect.size.height; - [img drawInRect:knobRect fromRect:image_rect 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]; - - NSRect knobRect = [[self cell] knobRectFlipped:NO]; - knobRect.origin.y+=4; - [[[NSColor blackColor] colorWithAlphaComponent:0.6] set]; - [self drawKnobInRect: knobRect]; -} - -@end - -/***************************************************************************** -* VLCFSVolumeSlider -*****************************************************************************/ -@implementation VLCFSVolumeSlider - -- (id)initWithFrame:(NSRect)frame -{ - self = [super initWithFrame:frame]; - if(self) { - [self setCell:[[VolumeSliderCell alloc] init]]; - } - - return self; -} - -- (void)drawKnobInRect:(NSRect) knobRect -{ - NSRect image_rect; - NSImage *img = imageFromRes(@"fs_volume_slider_knob_highlight"); - image_rect.size = [img size]; - image_rect.origin.x = 0; - image_rect.origin.y = 0; - knobRect.origin.x += (knobRect.size.width - image_rect.size.width) / 2; - knobRect.size.width = image_rect.size.width; - knobRect.size.height = image_rect.size.height; - [img drawInRect:knobRect fromRect:image_rect 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]; - - [self drawFullVolumeMarker]; - - NSRect knobRect = [[self cell] knobRectFlipped:NO]; - knobRect.origin.y+=7.5; - [[[NSColor blackColor] colorWithAlphaComponent:0.6] set]; - [self drawKnobInRect: knobRect]; -} - -- (void)drawFullVolBezierPath:(NSBezierPath*)bezierPath -{ - CGFloat fullVolPos = [self fullVolumePos]; - [bezierPath moveToPoint:NSMakePoint(fullVolPos, [self frame].size.height)]; - [bezierPath lineToPoint:NSMakePoint(fullVolPos, 1.)]; -} - -@end - diff --git a/modules/gui/macosx/VLCMainWindowControlsBar.h b/modules/gui/macosx/VLCMainWindowControlsBar.h index 83fb4eb..09257e2 100644 --- a/modules/gui/macosx/VLCMainWindowControlsBar.h +++ b/modules/gui/macosx/VLCMainWindowControlsBar.h @@ -26,7 +26,6 @@ #import "misc.h" #import "VLCControlsBarCommon.h" -@class VLCFSPanel; @class VLCResizeControl; /***************************************************************************** diff --git a/modules/gui/macosx/VLCMainWindowControlsBar.m b/modules/gui/macosx/VLCMainWindowControlsBar.m index 3ba68f9..587e151 100644 --- a/modules/gui/macosx/VLCMainWindowControlsBar.m +++ b/modules/gui/macosx/VLCMainWindowControlsBar.m @@ -27,7 +27,6 @@ #import "VLCMain.h" #import "VLCCoreInteraction.h" #import "VLCMainMenu.h" -#import "VLCFSPanel.h" #import "VLCPlaylist.h" #import "CompatibilityFixes.h" diff --git a/po/POTFILES.in b/po/POTFILES.in index 754a5f5..464a571 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -560,8 +560,6 @@ modules/gui/macosx/VLCExtensionsManager.h modules/gui/macosx/VLCExtensionsManager.m modules/gui/macosx/VLCEyeTvController.h modules/gui/macosx/VLCEyeTvController.m -modules/gui/macosx/VLCFSPanel.h -modules/gui/macosx/VLCFSPanel.m modules/gui/macosx/helpers.h modules/gui/macosx/macosx.m modules/gui/macosx/VLCMain.h _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
