OSDN Git Service

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