1 /*****************************************************************************
2 * MainWindowTitle.h: MacOS X interface module
3 *****************************************************************************
4 * Copyright (C) 2011-2012 Felix Paul Kühne
7 * Authors: Felix Paul Kühne <fkuehne -at- videolan -dot- org>
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.
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.
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 *****************************************************************************/
24 #import <Cocoa/Cocoa.h>
27 /*****************************************************************************
28 * VLCMainWindowTitleView
29 *****************************************************************************/
31 @interface VLCMainWindowTitleView : VLCThreePartImageView
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;
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;
55 BOOL b_nativeFullscreenMode;
57 // state to determine correct image for green bubble
61 @property (readonly) NSButton * closeButton;
62 @property (readonly) NSButton * minimizeButton;
63 @property (readonly) NSButton * zoomButton;
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;
74 @interface VLCWindowButtonCell : NSButtonCell
78 @interface VLCResizeControl : NSImageView
82 @interface VLCColorView : NSView
86 @interface VLCCustomWindowButtonPrototype: NSButton
87 - (NSArray*)extendedAccessibilityAttributeNames: (NSArray*)theAttributeNames;
88 - (id)extendedAccessibilityAttributeValue: (NSString*)theAttributeName;
89 - (NSNumber*)extendedAccessibilityIsAttributeSettable: (NSString*)theAttributeName;
93 @interface VLCCustomWindowCloseButton: VLCCustomWindowButtonPrototype
98 @interface VLCCustomWindowMinimizeButton: VLCCustomWindowButtonPrototype
103 @interface VLCCustomWindowZoomButton: VLCCustomWindowButtonPrototype
107 @interface VLCCustomWindowFullscreenButton : VLCCustomWindowButtonPrototype
111 @interface VLCWindowTitleTextField : NSTextField
113 NSMenu * contextMenu;