macosx: Fix more weak NSWindow references
[vlc.git] / modules / gui / macosx / VLCConvertAndSaveWindowController.h
1 /*****************************************************************************
2  * VLCConvertAndSaveWindowController.h: MacOS X interface module
3  *****************************************************************************
4  * Copyright (C) 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
26 @class VLCDropDisabledImageView;
27 @class VLCDragDropView;
28 @class VLCPopupPanelController;
29 @class VLCTextfieldPanelController;
30
31 @interface VLCConvertAndSaveWindowController : NSWindowController
32
33 // main panel
34 @property (weak) IBOutlet VLCDragDropView *dropBox;
35 @property (weak) IBOutlet NSTextField *dropLabel;
36
37 @property (weak) IBOutlet VLCDropDisabledImageView *dropImage;
38 @property (weak) IBOutlet NSButton *dropButton;
39 @property (weak) IBOutlet NSTextField *profileLabel;
40 @property (weak) IBOutlet NSPopUpButton *profilePopup;
41 @property (weak) IBOutlet NSButton *customizeButton;
42
43 @property (weak) IBOutlet NSTextField *destinationLabel;
44 @property (weak) IBOutlet NSBox *destinationBox;
45
46 @property (weak) IBOutlet NSButton *destinationCancelBtn;
47 @property (weak) IBOutlet NSButton *destinationStreamButton;
48 @property (weak) IBOutlet NSButton *destinationFileButton;
49
50 @property (weak) IBOutlet NSButton *okButton;
51
52 @property (weak) IBOutlet NSView *dropinView;
53 @property (weak) IBOutlet VLCDropDisabledImageView *dropinIcon;
54 @property (weak) IBOutlet NSTextField *dropinMediaLabel;
55 @property (weak) IBOutlet NSView *fileDestinationView;
56 @property (weak) IBOutlet NSImageView *fileDestinationIcon;
57 @property (weak) IBOutlet NSTextField *fileDestinationFileName;
58 @property (weak) IBOutlet NSTextField *fileDestinationFileNameStub;
59 @property (weak) IBOutlet NSButton *fileDestinationBrowseButton;
60 @property (weak) IBOutlet NSView *streamDestinationView;
61 @property (weak) IBOutlet NSTextField *streamDestinationURLLabel;
62 @property (weak) IBOutlet NSButton *streamDestinationButton;
63
64 // customize panel
65 @property ()     IBOutlet NSWindow *customizePanel;
66 @property (weak) IBOutlet NSButton *customizeNewProfileButton;
67 @property (weak) IBOutlet NSButton *customizeCancelButton;
68 @property (weak) IBOutlet NSButton *customizeOkButton;
69 @property (weak) IBOutlet NSTabView *customizeTabView;
70 @property (weak) IBOutlet NSMatrix *customizeEncapMatrix;
71
72 // customize panel: video
73 @property (weak) IBOutlet NSButton *customizeVidCheckbox;
74 @property (weak) IBOutlet NSButton *customizeVidKeepCheckbox;
75 @property (weak) IBOutlet NSBox *customizeVidSettingsBox;
76 @property (weak) IBOutlet NSTextField *customizeVidCodecLabel;
77 @property (weak) IBOutlet NSTextField *customizeVidBitrateLabel;
78 @property (weak) IBOutlet NSTextField *customizeVidFramerateLabel;
79 @property (weak) IBOutlet NSBox *customizeVidResolutionBox;
80 @property (weak) IBOutlet NSTextField *customizeVidWidthLabel;
81 @property (weak) IBOutlet NSTextField *customizeVidHeightLabel;
82 @property (weak) IBOutlet NSTextField *customizeVidScaleLabel;
83 @property (weak) IBOutlet NSTextField *customizeVidResLabel;
84 @property (weak) IBOutlet NSPopUpButton *customizeVidCodecPopup;
85 @property (weak) IBOutlet NSTextField *customizeVidBitrateField;
86 @property (weak) IBOutlet NSTextField *customizeVidFramerateField;
87 @property (weak) IBOutlet NSTextField *customizeVidWidthField;
88 @property (weak) IBOutlet NSTextField *customizeVidHeightField;
89 @property (weak) IBOutlet NSPopUpButton *customizeVidScalePopup;
90
91 // customize panel: audio
92 @property (weak) IBOutlet NSButton *customizeAudCheckbox;
93 @property (weak) IBOutlet NSButton *customizeAudKeepCheckbox;
94 @property (weak) IBOutlet NSBox *customizeAudSettingsBox;
95 @property (weak) IBOutlet NSTextField *customizeAudCodecLabel;
96 @property (weak) IBOutlet NSTextField *customizeAudBitrateLabel;
97 @property (weak) IBOutlet NSTextField *customizeAudChannelsLabel;
98 @property (weak) IBOutlet NSTextField *customizeAudSamplerateLabel;
99 @property (weak) IBOutlet NSPopUpButton *customizeAudCodecPopup;
100 @property (weak) IBOutlet NSTextField *customizeAudBitrateField;
101 @property (weak) IBOutlet NSTextField *customizeAudChannelsField;
102 @property (weak) IBOutlet NSPopUpButton *customizeAudSampleratePopup;
103
104 // customize panel: subs
105 @property (weak) IBOutlet NSButton *customizeSubsCheckbox;
106 @property (weak) IBOutlet NSButton *customizeSubsOverlayCheckbox;
107 @property (weak) IBOutlet NSPopUpButton *customizeSubsPopup;
108
109 // stream panel
110 @property ()     IBOutlet NSWindow *streamPanel;
111 @property (weak) IBOutlet NSTextField *streamDestinationLabel;
112 @property (weak) IBOutlet NSTextField *streamTypeLabel;
113 @property (weak) IBOutlet NSTextField *streamAddressLabel;
114 @property (weak) IBOutlet NSPopUpButton *streamTypePopup;
115 @property (weak) IBOutlet NSTextField *streamAddressField;
116 @property (weak) IBOutlet NSTextField *streamTTLLabel;
117 @property (weak) IBOutlet NSTextField *streamTTLField;
118 @property (weak) IBOutlet NSStepper *streamTTLStepper;
119 @property (weak) IBOutlet NSTextField *streamPortLabel;
120 @property (weak) IBOutlet NSTextField *streamPortField;
121 @property (weak) IBOutlet NSTextField *streamAnnouncementLabel;
122 @property (weak) IBOutlet NSButton *streamSAPCheckbox;
123 @property (weak) IBOutlet NSTextField *streamChannelLabel;
124 @property (weak) IBOutlet NSTextField *streamChannelField;
125 @property (weak) IBOutlet NSMatrix *streamSDPMatrix;
126 @property (weak) IBOutlet NSButton *streamSDPFileBrowseButton;
127 @property (weak) IBOutlet NSTextField *streamSDPLabel;
128 @property (weak) IBOutlet NSTextField *streamSDPField;
129 @property (weak) IBOutlet NSButton *streamCancelButton;
130 @property (weak) IBOutlet NSButton *streamOkButton;
131
132 // other properties
133 @property (strong) VLCPopupPanelController *popupPanel;
134 @property (strong) VLCTextfieldPanelController *textfieldPanel;
135
136
137 @property (readwrite, nonatomic, retain) NSString * MRL;
138 @property (readwrite, nonatomic, retain) NSString * outputDestination;
139 @property (readwrite, retain) NSArray * profileNames;
140 @property (readwrite, retain) NSArray * profileValueList;
141 @property (readwrite, retain) NSMutableArray * currentProfile;
142
143 // Bindings for field / stepper combis
144 @property (nonatomic) int vidBitrate;
145 @property (nonatomic) int vidFramerate;
146 @property (nonatomic) int audBitrate;
147 @property (nonatomic) int audChannels;
148
149
150 - (IBAction)finalizePanel:(id)sender;
151 - (IBAction)openMedia:(id)sender;
152 - (IBAction)switchProfile:(id)sender;
153 - (IBAction)iWantAFile:(id)sender;
154 - (IBAction)iWantAStream:(id)sender;
155 - (IBAction)cancelDestination:(id)sender;
156 - (IBAction)browseFileDestination:(id)sender;
157
158 - (IBAction)customizeProfile:(id)sender;
159 - (IBAction)closeCustomizationSheet:(id)sender;
160 - (IBAction)videoSettingsChanged:(id)sender;
161 - (IBAction)audioSettingsChanged:(id)sender;
162 - (IBAction)subSettingsChanged:(id)sender;
163 - (IBAction)newProfileAction:(id)sender;
164
165 - (IBAction)showStreamPanel:(id)sender;
166 - (IBAction)closeStreamPanel:(id)sender;
167 - (IBAction)streamTypeToggle:(id)sender;
168 - (IBAction)streamAnnouncementToggle:(id)sender;
169 - (IBAction)sdpFileLocationSelector:(id)sender;
170
171 @end