]> git.sesse.net Git - vlc/blob - modules/gui/macosx/MainWindowTitle.h
macosx: implement native fullscreen behaviour for yosemite titlebar
[vlc] / modules / gui / macosx / MainWindowTitle.h
1 /*****************************************************************************
2  * MainWindowTitle.h: MacOS X interface module
3  *****************************************************************************
4  * Copyright (C) 2011-2012 Felix Paul Kühne
5  * $Id$
6  *
7  * Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 #import <Cocoa/Cocoa.h>
25 #import "misc.h"
26
27 /*****************************************************************************
28  * VLCMainWindowTitleView
29  *****************************************************************************/
30
31 @interface VLCMainWindowTitleView : VLCThreePartImageView
32 {
33     NSImage * o_red_img;
34     NSImage * o_red_over_img;
35     NSImage * o_red_on_img;
36     NSImage * o_yellow_img;
37     NSImage * o_yellow_over_img;
38     NSImage * o_yellow_on_img;
39     NSImage * o_green_img;
40     NSImage * o_green_over_img;
41     NSImage * o_green_on_img;
42     // yosemite fullscreen images
43     NSImage * o_fullscreen_img;
44     NSImage * o_fullscreen_over_img;
45     NSImage * o_fullscreen_on_img;
46     NSShadow * o_window_title_shadow;
47     NSDictionary * o_window_title_attributes_dict;
48
49     IBOutlet id o_red_btn;
50     IBOutlet id o_yellow_btn;
51     IBOutlet id o_green_btn;
52     IBOutlet id o_fullscreen_btn;
53     IBOutlet id o_title_lbl;
54
55     BOOL b_nativeFullscreenMode;
56
57     // state to determine correct image for green bubble
58     BOOL b_alt_pressed;
59     BOOL b_mouse_over;
60 }
61 @property (readonly) NSButton * closeButton;
62 @property (readonly) NSButton * minimizeButton;
63 @property (readonly) NSButton * zoomButton;
64
65 - (void)informModifierPressed:(BOOL)b_is_altkey;
66 - (void)loadButtonIcons;
67 - (IBAction)buttonAction:(id)sender;
68 - (void)setWindowTitle:(NSString *)title;
69 - (void)setWindowButtonOver:(BOOL)b_value;
70 - (void)setWindowFullscreenButtonOver:(BOOL)b_value;
71
72 @end
73
74 @interface VLCWindowButtonCell : NSButtonCell
75
76 @end
77
78 @interface VLCResizeControl : NSImageView
79
80 @end
81
82 @interface VLCColorView : NSView
83
84 @end
85
86 @interface VLCCustomWindowButtonPrototype: NSButton
87 - (NSArray*)extendedAccessibilityAttributeNames: (NSArray*)theAttributeNames;
88 - (id)extendedAccessibilityAttributeValue: (NSString*)theAttributeName;
89 - (NSNumber*)extendedAccessibilityIsAttributeSettable: (NSString*)theAttributeName;
90
91 @end
92
93 @interface VLCCustomWindowCloseButton: VLCCustomWindowButtonPrototype
94
95 @end
96
97
98 @interface VLCCustomWindowMinimizeButton: VLCCustomWindowButtonPrototype
99
100 @end
101
102
103 @interface VLCCustomWindowZoomButton: VLCCustomWindowButtonPrototype
104
105 @end
106
107 @interface VLCCustomWindowFullscreenButton : VLCCustomWindowButtonPrototype
108
109 @end
110
111 @interface VLCWindowTitleTextField : NSTextField
112 {
113     NSMenu * contextMenu;
114 }
115
116 @end