// // KMSyncPreferences.swift // PDF Master // // Created by tangchao on 2023/11/6. // import Cocoa class KMSyncPreferences: NSViewController { /* @interface SKSyncPreferences : NSViewController { NSArray *texEditorLabels; NSArray *texEditorControls; BOOL customTeXEditor; } @property (nonatomic, retain) IBOutlet NSArray *texEditorLabels, *texEditorControls; @property (nonatomic, getter=isCustomTeXEditor) BOOL customTeXEditor; + (BOOL)getTeXEditorCommand:(NSString **)command arguments:(NSString **)arguments forPreset:(NSString *)name; - (IBAction)changeTeXEditorPreset:(id)sender; */ override var nibName: NSNib.Name? { return "SyncPreferences" } override func loadView() { super.loadView() // SKAutoSizeLabelFields(texEditorLabels, texEditorControls, YES); // NSString *editorPreset = [[NSUserDefaults standardUserDefaults] stringForKey:SKStringConstants.teXEditorPresetKey]; // NSInteger i = [TeXEditors count]; // NSInteger idx = -1; // NSPopUpButton *texEditorPopUpButton = [texEditorControls objectAtIndex:0]; // NSWorkspace *ws = [NSWorkspace sharedWorkspace]; // // while (i--) { // NSString *name = [[TeXEditors objectAtIndex:i] objectForKey:NAME_KEY]; // NSString *path = [ws fullPathForApplication:name]; // NSImage *image = path ? [ws iconForFile:path] : [ws iconForFileType:NSFileTypeForHFSTypeCode(kGenericApplicationIcon)]; // [texEditorPopUpButton insertItemWithTitle:name atIndex:0]; // [[texEditorPopUpButton itemAtIndex:0] setImageAndSize:image]; // if ([name isEqualToString:editorPreset]) // idx = i; // } // // [self setCustomTeXEditor:idx == -1]; // // if (idx == -1) // [texEditorPopUpButton selectItem:[texEditorPopUpButton lastItem]]; // else // [texEditorPopUpButton selectItemAtIndex:idx]; } override var title: String? { set { super.title = newValue } get { return KMLocalizedString("Sync", "Preference pane label") } } override func viewDidLoad() { super.viewDidLoad() // Do view setup here. } /* @implementation SKSyncPreferences @synthesize texEditorLabels, texEditorControls, customTeXEditor; static NSArray *TeXEditors = nil; + (void)initialize { // SKINITIALIZE; NSURL *initialUserDefaultsURL = [[NSBundle mainBundle] URLForResource:INITIALUSERDEFAULTS_KEY withExtension:@"plist"]; TeXEditors = [[[NSDictionary dictionaryWithContentsOfURL:initialUserDefaultsURL] objectForKey:TEXEDITORS_KEY] copy]; } - (void)dealloc { // SKDESTROY(texEditorLabels); // SKDESTROY(texEditorControls); // [super dealloc]; } #pragma mark Accessors + (BOOL)getTeXEditorCommand:(NSString **)command arguments:(NSString **)arguments forPreset:(NSString *)name { for (NSDictionary *editor in TeXEditors) { if ([[editor objectForKey:NAME_KEY] isEqualToString:name]) { if (command) *command = [editor objectForKey:COMMAND_KEY]; if (arguments) *arguments = [editor objectForKey:ARGUMENTS_KEY]; return YES; } } return NO; } #pragma mark Hooks - (void)defaultsDidRevert { NSString *editorPreset = [[NSUserDefaults standardUserDefaults] stringForKey:SKStringConstants.teXEditorPresetKey]; NSPopUpButton *texEditorPopUpButton = [texEditorControls objectAtIndex:0]; if ([editorPreset length] == 0) { [texEditorPopUpButton selectItem:[texEditorPopUpButton lastItem]]; [self setCustomTeXEditor:YES]; } else { [texEditorPopUpButton selectItemWithTitle:editorPreset]; [self setCustomTeXEditor:NO]; } } @end */ @IBAction func changeTeXEditorPreset(_ sender: AnyObject?) { // NSUserDefaultsController *sudc = [NSUserDefaultsController sharedUserDefaultsController]; // NSInteger idx = [sender indexOfSelectedItem]; // if (idx < [sender numberOfItems] - 1) { // NSDictionary *editor = [TeXEditors objectAtIndex:idx]; // [[sudc values] setValue:[sender titleOfSelectedItem] forKey:SKStringConstants.teXEditorPresetKey]; // [[sudc values] setValue:[editor objectForKey:COMMAND_KEY] forKey:SKStringConstants.teXEditorCommandKey]; // [[sudc values] setValue:[editor objectForKey:ARGUMENTS_KEY] forKey:SKStringConstants.teXEditorArgumentsKey]; // [self setCustomTeXEditor:NO]; // } else { // [[sudc values] setValue:@"" forKey:SKStringConstants.teXEditorPresetKey]; // [self setCustomTeXEditor:YES]; // } } }