OSDN Git Service

MacGui: Create Chapter Markers implemented in gui.
[handbrake-jp/handbrake-jp-git.git] / macosx / PrefsController.m
1 #import "PrefsController.h"
2
3 @implementation PrefsController
4
5 - (void) awakeFromNib
6 {
7     NSUserDefaults * defaults;
8     NSDictionary   * appDefaults;
9     
10     /* Unless the user specified otherwise, default is to check
11        for update  DefAdvancedx264Flags*/
12     defaults    = [NSUserDefaults standardUserDefaults];
13     appDefaults = [NSDictionary dictionaryWithObject:@"YES"
14                    forKey:@"CheckForUpdates"];
15         appDefaults = [NSDictionary dictionaryWithObject:@"English"
16                    forKey:@"DefaultLanguage"];
17         appDefaults = [NSDictionary dictionaryWithObject:@"NO"
18                    forKey:@"DefaultMpegName"];
19         appDefaults = [NSDictionary dictionaryWithObject:@"NO"
20                    forKey:@"DefaultCrf"];
21         appDefaults = [NSDictionary dictionaryWithObject:@"NO"
22                    forKey:@"DefaultDeinterlaceOn"];
23         appDefaults = [NSDictionary dictionaryWithObject:@"YES"
24                    forKey:@"DefaultPicSizeAutoiPod"];
25         appDefaults = [NSDictionary dictionaryWithObject:@"NO"
26                    forKey:@"PixelRatio"];
27           appDefaults = [NSDictionary dictionaryWithObject:@"NO"
28                    forKey:@"DefaultSurroundSound"];
29         appDefaults = [NSDictionary dictionaryWithObject:@""
30                    forKey:@"DefAdvancedx264Flags"];
31         appDefaults = [NSDictionary dictionaryWithObject:@"YES"
32                    forKey:@"DefaultPresetsDrawerShow"];
33         NSString *defDestDirectory =  @"~/Desktop";
34         defDestDirectory = [defDestDirectory stringByExpandingTildeInPath];
35         appDefaults = [NSDictionary dictionaryWithObject:defDestDirectory forKey:@"LastDestinationDirectory"];
36         appDefaults = [NSDictionary dictionaryWithObject:@"NO"
37                    forKey:@"DefaultAutoNaming"];
38     [defaults registerDefaults: appDefaults];
39
40         /* fUpdateCheck Check or uncheck according to the preferences */
41     [fUpdateCheck setState: [defaults boolForKey:@"CheckForUpdates"] ?
42         NSOnState : NSOffState];
43
44         // Fill the languages combobox
45     [fdefaultlanguage removeAllItems];
46         [fdefaultlanguage addItemWithObjectValue: @"Afar"];
47         [fdefaultlanguage addItemWithObjectValue: @"Abkhazian"];
48         [fdefaultlanguage addItemWithObjectValue: @"Afrikaans"];
49         [fdefaultlanguage addItemWithObjectValue: @"Albanian"];
50         [fdefaultlanguage addItemWithObjectValue: @"Amharic"];
51         [fdefaultlanguage addItemWithObjectValue: @"Arabic"];
52         [fdefaultlanguage addItemWithObjectValue: @"Armenian"];
53         [fdefaultlanguage addItemWithObjectValue: @"Assamese"];
54         [fdefaultlanguage addItemWithObjectValue: @"Avestan"];
55         [fdefaultlanguage addItemWithObjectValue: @"Aymara"];
56         [fdefaultlanguage addItemWithObjectValue: @"Azerbaijani"];
57         [fdefaultlanguage addItemWithObjectValue: @"Bashkir"];
58         [fdefaultlanguage addItemWithObjectValue: @"Basque"];
59         [fdefaultlanguage addItemWithObjectValue: @"Belarusian"];
60         [fdefaultlanguage addItemWithObjectValue: @"Bengali"];
61         [fdefaultlanguage addItemWithObjectValue: @"Bihari"];
62         [fdefaultlanguage addItemWithObjectValue: @"Bislama"];
63         [fdefaultlanguage addItemWithObjectValue: @"Bosnian"];
64         [fdefaultlanguage addItemWithObjectValue: @"Breton"];
65         [fdefaultlanguage addItemWithObjectValue: @"Bulgarian"];
66         [fdefaultlanguage addItemWithObjectValue: @"Burmese"];
67         [fdefaultlanguage addItemWithObjectValue: @"Catalan"];
68         [fdefaultlanguage addItemWithObjectValue: @"Chamorro"];
69         [fdefaultlanguage addItemWithObjectValue: @"Chechen"];
70         [fdefaultlanguage addItemWithObjectValue: @"Chichewa; Nyanja"];
71         [fdefaultlanguage addItemWithObjectValue: @"Chinese"];
72         [fdefaultlanguage addItemWithObjectValue: @"Church Slavic"];
73         [fdefaultlanguage addItemWithObjectValue: @"Chuvash"];
74         [fdefaultlanguage addItemWithObjectValue: @"Cornish"];
75         [fdefaultlanguage addItemWithObjectValue: @"Corsican"];
76         [fdefaultlanguage addItemWithObjectValue: @"Croatian"];
77         [fdefaultlanguage addItemWithObjectValue: @"Czech"];
78         [fdefaultlanguage addItemWithObjectValue: @"Dansk"];
79         [fdefaultlanguage addItemWithObjectValue: @"Deutsch"];
80         [fdefaultlanguage addItemWithObjectValue: @"Dzongkha"];
81         [fdefaultlanguage addItemWithObjectValue: @"English"];
82         [fdefaultlanguage addItemWithObjectValue: @"Espanol"];
83         [fdefaultlanguage addItemWithObjectValue: @"Esperanto"];
84         [fdefaultlanguage addItemWithObjectValue: @"Estonian"];
85         [fdefaultlanguage addItemWithObjectValue: @"Faroese"];
86         [fdefaultlanguage addItemWithObjectValue: @"Fijian"];
87         [fdefaultlanguage addItemWithObjectValue: @"Francais"];
88         [fdefaultlanguage addItemWithObjectValue: @"Frisian"];
89         [fdefaultlanguage addItemWithObjectValue: @"Georgian"];
90         [fdefaultlanguage addItemWithObjectValue: @"Gaelic (Scots)"];
91         [fdefaultlanguage addItemWithObjectValue: @"Gallegan"];
92         [fdefaultlanguage addItemWithObjectValue: @"Greek, Modern ()"];
93         [fdefaultlanguage addItemWithObjectValue: @"Guarani"];
94         [fdefaultlanguage addItemWithObjectValue: @"Gujarati"];
95         [fdefaultlanguage addItemWithObjectValue: @"Hebrew"];
96         [fdefaultlanguage addItemWithObjectValue: @"Herero"];
97         [fdefaultlanguage addItemWithObjectValue: @"Hindi"];
98         [fdefaultlanguage addItemWithObjectValue: @"Hiri Motu"];
99         [fdefaultlanguage addItemWithObjectValue: @"Inuktitut"];
100         [fdefaultlanguage addItemWithObjectValue: @"Interlingue"];
101         [fdefaultlanguage addItemWithObjectValue: @"Interlingua"];
102         [fdefaultlanguage addItemWithObjectValue: @"Indonesian"];
103         [fdefaultlanguage addItemWithObjectValue: @"Inupiaq"];
104         [fdefaultlanguage addItemWithObjectValue: @"Irish"];
105         [fdefaultlanguage addItemWithObjectValue: @"Islenska"];
106         [fdefaultlanguage addItemWithObjectValue: @"Italian"];
107         [fdefaultlanguage addItemWithObjectValue: @"Javanese"];
108         [fdefaultlanguage addItemWithObjectValue: @"Japanese"];
109         [fdefaultlanguage addItemWithObjectValue: @"Kalaallisut (Greenlandic)"];
110         [fdefaultlanguage addItemWithObjectValue: @"Kannada"];
111         [fdefaultlanguage addItemWithObjectValue: @"Kashmiri"];
112         [fdefaultlanguage addItemWithObjectValue: @"Kazakh"];
113         [fdefaultlanguage addItemWithObjectValue: @"Khmer"];
114         [fdefaultlanguage addItemWithObjectValue: @"Kikuyu"];
115         [fdefaultlanguage addItemWithObjectValue: @"Kinyarwanda"];
116         [fdefaultlanguage addItemWithObjectValue: @"Kirghiz"];
117         [fdefaultlanguage addItemWithObjectValue: @"Komi"];
118         [fdefaultlanguage addItemWithObjectValue: @"Korean"];
119         [fdefaultlanguage addItemWithObjectValue: @"Kuanyama"];
120         [fdefaultlanguage addItemWithObjectValue: @"Kurdish"];
121         [fdefaultlanguage addItemWithObjectValue: @"Lao"];
122         [fdefaultlanguage addItemWithObjectValue: @"Latin"];
123         [fdefaultlanguage addItemWithObjectValue: @"Latvian"];
124         [fdefaultlanguage addItemWithObjectValue: @"Lingala"];
125         [fdefaultlanguage addItemWithObjectValue: @"Lithuanian"];
126         [fdefaultlanguage addItemWithObjectValue: @"Letzeburgesch"];
127         [fdefaultlanguage addItemWithObjectValue: @"Macedonian"];
128         [fdefaultlanguage addItemWithObjectValue: @"Magyar"];
129         [fdefaultlanguage addItemWithObjectValue: @"Malay"];
130         [fdefaultlanguage addItemWithObjectValue: @"Malayalam"];
131         [fdefaultlanguage addItemWithObjectValue: @"Malagasy"];
132         [fdefaultlanguage addItemWithObjectValue: @"Maltese"];
133         [fdefaultlanguage addItemWithObjectValue: @"Manx"];
134         [fdefaultlanguage addItemWithObjectValue: @"Maori"];
135         [fdefaultlanguage addItemWithObjectValue: @"Marathi"];
136         [fdefaultlanguage addItemWithObjectValue: @"Marshall"];
137         [fdefaultlanguage addItemWithObjectValue: @"Moldavian"];
138         [fdefaultlanguage addItemWithObjectValue: @"Mongolian"];
139         [fdefaultlanguage addItemWithObjectValue: @"Nauru"];
140         [fdefaultlanguage addItemWithObjectValue: @"Navajo"];
141         [fdefaultlanguage addItemWithObjectValue: @"Ndebele, South"];
142         [fdefaultlanguage addItemWithObjectValue: @"Ndebele, North"];
143         [fdefaultlanguage addItemWithObjectValue: @"Ndonga"];
144         [fdefaultlanguage addItemWithObjectValue: @"Nederlands"];
145         [fdefaultlanguage addItemWithObjectValue: @"Nepali"];
146         [fdefaultlanguage addItemWithObjectValue: @"Northern Sami"];
147         [fdefaultlanguage addItemWithObjectValue: @"Norwegian"];
148         [fdefaultlanguage addItemWithObjectValue: @"Norwegian Bokmal"];
149         [fdefaultlanguage addItemWithObjectValue: @"Norwegian Nynorsk"];
150         [fdefaultlanguage addItemWithObjectValue: @"Occitan (post 1500); Provencal"];
151         [fdefaultlanguage addItemWithObjectValue: @"Oriya"];
152         [fdefaultlanguage addItemWithObjectValue: @"Oromo"];
153         [fdefaultlanguage addItemWithObjectValue: @"Ossetian; Ossetic"];
154         [fdefaultlanguage addItemWithObjectValue: @"Panjabi"];
155         [fdefaultlanguage addItemWithObjectValue: @"Persian"];
156         [fdefaultlanguage addItemWithObjectValue: @"Pali"];
157         [fdefaultlanguage addItemWithObjectValue: @"Polish"];
158         [fdefaultlanguage addItemWithObjectValue: @"Portugues"];
159         [fdefaultlanguage addItemWithObjectValue: @"Pushto"];
160         [fdefaultlanguage addItemWithObjectValue: @"Quechua"];
161         [fdefaultlanguage addItemWithObjectValue: @"Raeto-Romance"];
162         [fdefaultlanguage addItemWithObjectValue: @"Romanian"];
163         [fdefaultlanguage addItemWithObjectValue: @"Rundi"];
164         [fdefaultlanguage addItemWithObjectValue: @"Russian"];
165         [fdefaultlanguage addItemWithObjectValue: @"Sango"];
166         [fdefaultlanguage addItemWithObjectValue: @"Sanskrit"];
167         [fdefaultlanguage addItemWithObjectValue: @"Sardinian"];
168         [fdefaultlanguage addItemWithObjectValue: @"Serbian"];
169         [fdefaultlanguage addItemWithObjectValue: @"Sinhalese"];
170         [fdefaultlanguage addItemWithObjectValue: @"Slovak"];
171         [fdefaultlanguage addItemWithObjectValue: @"Slovenian"];
172         [fdefaultlanguage addItemWithObjectValue: @"Samoan"];
173         [fdefaultlanguage addItemWithObjectValue: @"Shona"];
174         [fdefaultlanguage addItemWithObjectValue: @"Sindhi"];
175         [fdefaultlanguage addItemWithObjectValue: @"Somali"];
176         [fdefaultlanguage addItemWithObjectValue: @"Sotho, Southern"];
177         [fdefaultlanguage addItemWithObjectValue: @"Sundanese"];
178         [fdefaultlanguage addItemWithObjectValue: @"Suomi"];
179         [fdefaultlanguage addItemWithObjectValue: @"Svenska"];
180         [fdefaultlanguage addItemWithObjectValue: @"Swahili"];
181         [fdefaultlanguage addItemWithObjectValue: @"Swati"];
182         [fdefaultlanguage addItemWithObjectValue: @"Tahitian"];
183         [fdefaultlanguage addItemWithObjectValue: @"Tamil"];
184         [fdefaultlanguage addItemWithObjectValue: @"Tatar"];
185         [fdefaultlanguage addItemWithObjectValue: @"Telugu"];
186         [fdefaultlanguage addItemWithObjectValue: @"Tajik"];
187         [fdefaultlanguage addItemWithObjectValue: @"Tagalog"];
188         [fdefaultlanguage addItemWithObjectValue: @"Thai"];
189         [fdefaultlanguage addItemWithObjectValue: @"Tibetan"];
190         [fdefaultlanguage addItemWithObjectValue: @"Tigrinya"];
191         [fdefaultlanguage addItemWithObjectValue: @"Tonga (Tonga Islands)"];
192         [fdefaultlanguage addItemWithObjectValue: @"Tswana"];
193         [fdefaultlanguage addItemWithObjectValue: @"Tsonga"];
194         [fdefaultlanguage addItemWithObjectValue: @"Turkish"];
195         [fdefaultlanguage addItemWithObjectValue: @"Turkmen"];
196         [fdefaultlanguage addItemWithObjectValue: @"Twi"];
197         [fdefaultlanguage addItemWithObjectValue: @"Uighur"];
198         [fdefaultlanguage addItemWithObjectValue: @"Ukrainian"];
199         [fdefaultlanguage addItemWithObjectValue: @"Urdu"];
200         [fdefaultlanguage addItemWithObjectValue: @"Uzbek"];
201         [fdefaultlanguage addItemWithObjectValue: @"Vietnamese"];
202         [fdefaultlanguage addItemWithObjectValue: @"Volapk"];
203         [fdefaultlanguage addItemWithObjectValue: @"Welsh"];
204         [fdefaultlanguage addItemWithObjectValue: @"Wolof"];
205         [fdefaultlanguage addItemWithObjectValue: @"Xhosa"];
206         [fdefaultlanguage addItemWithObjectValue: @"Yiddish"];
207         [fdefaultlanguage addItemWithObjectValue: @"Yoruba"];
208         [fdefaultlanguage addItemWithObjectValue: @"Zhuang"];
209         [fdefaultlanguage addItemWithObjectValue: @"Zulu"];
210         [fdefaultlanguage setStringValue:@"English"];
211         
212         /* If a Default Language is selected then write it otherwise let English as default */
213         
214         if ([defaults stringForKey:@"DefaultLanguage"]!=NULL)
215         {
216                 [fdefaultlanguage setStringValue:[defaults stringForKey:@"DefaultLanguage"]];
217     }
218         [fdefaultlanguage selectItemWithObjectValue:[defaults stringForKey:@"DefaultLanguage"]];
219
220     
221
222
223         /* fFileExtItunes Check or uncheck according to the preferences */
224     [fFileExtItunes setState: [defaults boolForKey:@"DefaultMpegName"] ?
225                                   NSOnState : NSOffState];
226         
227         /* fDefCrf Check or uncheck according to the preferences*/
228     [fDefCrf setState: [defaults boolForKey:@"DefaultCrf"] ?
229                    NSOnState : NSOffState];
230         
231         /* fDefDeinterlace Check or uncheck according to the preferences*/
232     [fDefDeinterlace setState: [defaults boolForKey:@"DefaultDeinterlaceOn"] ?
233                                    NSOnState : NSOffState];
234         
235         /* fDefPicSizeAutoSetipod Check or uncheck according to the preferences*/
236     [fDefPicSizeAutoSetipod setState: [defaults boolForKey:@"DefaultPicSizeAutoiPod"] ?
237                                                   NSOnState : NSOffState];
238         /* fDefPixelRatio */
239     [fDefPixelRatio setState: [defaults boolForKey:@"PixelRatio"] ?
240                                   NSOnState : NSOffState];
241         
242         /* fDefAudioSurround Check or uncheck according to the preferences */
243     [fDefAudioSurround setState: [defaults boolForKey:@"DefaultSurroundSound"] ?
244                                          NSOnState : NSOffState];
245                 
246         /* Insert default DefAdvanced x264 Flag here */
247         if ([defaults stringForKey:@"DefAdvancedx264Flags"]!=NULL)
248         {
249         [fDefAdvancedx264FlagsView setString:[defaults stringForKey:@"DefAdvancedx264Flags"]];
250         }
251         
252         /* fDefPresetDrawerShow Check or uncheck according to the preferences*/
253     [fDefPresetDrawerShow setState: [defaults boolForKey:@"DefaultPresetsDrawerShow"] ?
254                    NSOnState : NSOffState];
255         /* fDefAutoNaming Check or uncheck according to the preferences*/
256     [fDefAutoNaming setState: [defaults boolForKey:@"DefaultAutoNaming"] ?
257                    NSOnState : NSOffState];
258 }
259
260
261 - (IBAction) OpenPanel: (id) sender;
262 {
263     [NSApp runModalForWindow: fPanel];
264 }
265
266 - (IBAction) ClosePanel: (id) sender;
267 {
268     [self CheckChanged: sender]; 
269     [NSApp stopModal];
270     [fPanel orderOut: sender];
271 }
272
273 - (IBAction) CheckChanged: (id) sender
274 {
275     NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
276     
277     /* Check Update CheckForUpdates Set */
278         if( [fUpdateCheck state] == NSOnState )
279     {
280         [defaults setObject:@"YES" forKey:@"CheckForUpdates"];
281     }
282     else
283     {
284         [defaults setObject:@"NO" forKey:@"CheckForUpdates"];
285     }
286         
287         /* Preferred Language Combobox Set */
288
289         [defaults setObject:[fdefaultlanguage objectValueOfSelectedItem]  forKey:@"DefaultLanguage"];
290
291
292         /* File Extension Itunes Set */
293         
294         if( [fFileExtItunes state] == NSOnState )
295     {
296         [defaults setObject:@"YES" forKey:@"DefaultMpegName"];
297     }
298     else
299     {
300         [defaults setObject:@"NO" forKey:@"DefaultMpegName"];
301     }
302         
303         /* Use CRF for constant mode */
304         
305         if( [fDefCrf state] == NSOnState )
306     {
307         [defaults setObject:@"YES" forKey:@"DefaultCrf"];
308     }
309     else
310     {
311         [defaults setObject:@"NO" forKey:@"DefaultCrf"];
312     }
313
314   /* Use Deinterlace on as a default*/
315         
316         if( [fDefDeinterlace state] == NSOnState )
317     {
318         [defaults setObject:@"YES" forKey:@"DefaultDeinterlaceOn"];
319     }
320     else
321     {
322         [defaults setObject:@"NO" forKey:@"DefaultDeinterlaceOn"];
323     }
324         
325           /* Use Picture size set to 640 upon x264 (iPod) Selection as a default*/
326         
327         if( [fDefPicSizeAutoSetipod state] == NSOnState )
328     {
329         [defaults setObject:@"YES" forKey:@"DefaultPicSizeAutoiPod"];
330     }
331     else
332     {
333         [defaults setObject:@"NO" forKey:@"DefaultPicSizeAutoiPod"];
334     }
335         
336           /* Use Pixel Ratio*/
337         
338         if( [fDefPixelRatio state] == NSOnState )
339     {
340         [defaults setObject:@"YES" forKey:@"PixelRatio"];
341     }
342     else
343     {
344         [defaults setObject:@"NO" forKey:@"PixelRatio"];
345     }
346  
347   
348         /* Use Surround Sound if available*/
349         
350         if( [fDefAudioSurround state] == NSOnState )
351     {
352         [defaults setObject:@"YES" forKey:@"DefaultSurroundSound"];
353     }
354     else
355     {
356         [defaults setObject:@"NO" forKey:@"DefaultSurroundSound"];
357     }   
358     
359                 
360         /*Advanced x264 Flag string into */
361       [defaults setObject:[fDefAdvancedx264FlagsView string]  forKey:@"DefAdvancedx264Flags"];  
362           
363             /* Show Presets Drawer upon launch*/
364         
365         if( [fDefPresetDrawerShow state] == NSOnState )
366     {
367         [defaults setObject:@"YES" forKey:@"DefaultPresetsDrawerShow"];
368     }
369     else
370     {
371         [defaults setObject:@"NO" forKey:@"DefaultPresetsDrawerShow"];
372     }
373
374     /* Use Auto Naming */
375         
376         if( [fDefAutoNaming state] == NSOnState )
377     {
378         [defaults setObject:@"YES" forKey:@"DefaultAutoNaming"];
379     }
380     else
381     {
382         [defaults setObject:@"NO" forKey:@"DefaultAutoNaming"];
383     }
384
385 }
386
387 @end