]> git.sesse.net Git - vlc/blob - modules/gui/macosx/misc.h
macosx/CAS: simplify stream-out summary to something useful
[vlc] / modules / gui / macosx / misc.h
1 /*****************************************************************************
2  * misc.h: code not specific to vlc
3  *****************************************************************************
4  * Copyright (C) 2003-2012 VLC authors and VideoLAN
5  * $Id$
6  *
7  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
8  *          Felix Paul Kühne <fkuehne at videolan dot org>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23  *****************************************************************************/
24
25 #import <Cocoa/Cocoa.h>
26 #import "CompatibilityFixes.h"
27
28 /*****************************************************************************
29  * NSSound (VLCAdditions)
30  *
31  * added code to change the system volume, needed for the apple remote code
32  * this is simplified code, which won't let you set the exact volume
33  * (that's what the audio output is for after all), but just the system volume
34  * in steps of 1/16 (matching the default AR or volume key implementation).
35  *****************************************************************************/
36
37 @interface NSSound (VLCAdditions)
38 + (float)systemVolumeForChannel:(int)channel;
39 + (bool)setSystemVolume:(float)volume forChannel:(int)channel;
40 + (void)increaseSystemVolume;
41 + (void)decreaseSystemVolume;
42 @end
43
44 /*****************************************************************************
45  * NSAnimation (VLCAddition)
46  *****************************************************************************/
47
48 @interface NSAnimation (VLCAdditions)
49 @property (readwrite) void * userInfo;
50
51 @end
52
53 /*****************************************************************************
54  * NSScreen (VLCAdditions)
55  *
56  *  Missing extension to NSScreen
57  *****************************************************************************/
58
59 @interface NSScreen (VLCAdditions)
60
61 + (NSScreen *)screenWithDisplayID: (CGDirectDisplayID)displayID;
62 - (BOOL)hasMenuBar;
63 - (BOOL)hasDock;
64 - (BOOL)isScreen: (NSScreen*)screen;
65 - (CGDirectDisplayID)displayID;
66 - (void)blackoutOtherScreens;
67 + (void)unblackoutScreens;
68 @end
69
70
71 /*****************************************************************************
72  * VLBrushedMetalImageView
73  *****************************************************************************/
74
75 @interface VLBrushedMetalImageView : NSImageView
76
77 @end
78
79
80 /*****************************************************************************
81  * MPSlider
82  *****************************************************************************/
83
84 @interface MPSlider : NSSlider
85
86 @end
87
88 /*****************************************************************************
89  * ProgressView
90  *****************************************************************************/
91
92 @interface VLCProgressView : NSView
93
94 - (void)scrollWheel:(NSEvent *)o_event;
95
96 @end
97
98
99 /*****************************************************************************
100  * TimeLineSlider
101  *****************************************************************************/
102
103 @interface TimeLineSlider : NSSlider
104 {
105     NSImage *o_knob_img;
106     NSRect img_rect;
107     BOOL b_dark;
108 }
109 @property (readonly) CGFloat knobPosition;
110
111 - (void)drawRect:(NSRect)rect;
112 - (void)drawKnobInRect:(NSRect)knobRect;
113
114 @end
115
116 /*****************************************************************************
117  * VLCVolumeSliderCommon
118  *****************************************************************************/
119
120 @interface VLCVolumeSliderCommon : NSSlider
121
122 - (void)scrollWheel:(NSEvent *)o_event;
123
124 @end
125
126 /*****************************************************************************
127  * ITSlider
128  *****************************************************************************/
129
130 @interface ITSlider : VLCVolumeSliderCommon
131 {
132     NSImage *img;
133     NSRect image_rect;
134 }
135
136 - (void)drawRect:(NSRect)rect;
137 - (void)drawKnobInRect:(NSRect)knobRect;
138
139 @end
140
141 /*****************************************************************************
142  * VLCTimeField interface
143  *****************************************************************************
144  * we need the implementation to catch our click-event in the controller window
145  *****************************************************************************/
146
147 @interface VLCTimeField : NSTextField
148 {
149     NSShadow * o_string_shadow;
150     NSDictionary * o_string_attributes_dict;
151     NSTextAlignment textAlignment;
152 }
153 @property (readonly) BOOL timeRemaining;
154 @end
155
156 /*****************************************************************************
157  * VLCMainWindowSplitView interface
158  *****************************************************************************/
159 @interface VLCMainWindowSplitView : NSSplitView
160
161 @end
162
163 /*****************************************************************************
164  * VLCThreePartImageView interface
165  *****************************************************************************/
166 @interface VLCThreePartImageView : NSView
167 {
168     NSImage * o_left_img;
169     NSImage * o_middle_img;
170     NSImage * o_right_img;
171 }
172
173 - (void)setImagesLeft:(NSImage *)left middle: (NSImage *)middle right:(NSImage *)right;
174 @end
175
176 /*****************************************************************************
177  * VLCThreePartDropView interface
178  *****************************************************************************/
179 @interface VLCThreePartDropView : VLCThreePartImageView
180
181 @end