macOS: Move VLCTimeField out of misc
[vlc.git] / modules / gui / macosx / VLCFSPanelController.h
1 /*****************************************************************************
2  * VLCFSPanelController.h: macOS fullscreen controls window controller
3  *****************************************************************************
4  * Copyright (C) 2006-2016 VLC authors and VideoLAN
5  * $Id$
6  *
7  * Authors: Jérôme Decoodt <djc at videolan dot org>
8  *          Felix Paul Kühne <fkuehne at videolan dot org>
9  *          David Fuhrmann <david dot fuhrmann at googlemail dot com>
10  *          Marvin Scholz <epirat07 at gmail dot com>
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation; either version 2 of the License, or
15  * (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
25  *****************************************************************************/
26
27 #import <Cocoa/Cocoa.h>
28
29 #import "Windows.h"
30 #import "VLCDefaultValueSlider.h"
31 #import "VLCTimeField.h"
32
33 @interface VLCFSPanelController : NSWindowController
34
35 @property (readwrite, weak) NSTimer   *hideTimer;
36
37 @property IBOutlet NSView       *controlsView;
38 @property IBOutlet NSButton     *playPauseButton;
39 @property IBOutlet NSButton     *forwardButton;
40 @property IBOutlet NSButton     *backwardButton;
41 @property IBOutlet NSButton     *nextButton;
42 @property IBOutlet NSButton     *previousButton;
43 @property IBOutlet NSButton     *fullscreenButton;
44 @property IBOutlet NSTextField  *mediaTitle;
45 @property IBOutlet VLCTimeField *elapsedTime;
46 @property IBOutlet VLCTimeField *remainingOrTotalTime;
47 @property IBOutlet NSSlider     *timeSlider;
48 @property IBOutlet VLCDefaultValueSlider *volumeSlider;
49
50 @property (assign) IBOutlet NSLayoutConstraint *heightMaxConstraint;
51
52 - (IBAction)togglePlayPause:(id)sender;
53 - (IBAction)jumpForward:(id)sender;
54 - (IBAction)jumpBackward:(id)sender;
55 - (IBAction)gotoPrevious:(id)sender;
56 - (IBAction)gotoNext:(id)sender;
57 - (IBAction)toggleFullscreen:(id)sender;
58 - (IBAction)timeSliderUpdate:(id)sender;
59 - (IBAction)volumeSliderUpdate:(id)sender;
60
61 - (void)fadeIn;
62 - (void)fadeOut;
63 - (void)setActive;
64 - (void)setNonActive;
65 - (void)setVoutWasUpdated:(VLCWindow *)voutWindow;
66
67 - (void)setSeekable:(BOOL)seekable;
68 - (void)setVolumeLevel:(int)value;
69 - (void)updatePositionAndTime;
70 - (void)setStreamTitle:(NSString *)title;
71 - (void)setPlay;
72 - (void)setPause;
73
74 // Constrain frame to window. Used by VLCFSPanelDraggableView.
75 - (NSRect)contrainFrameToAssociatedVoutWindow:(NSRect)frame;
76
77 @end