//
//  KMPropertiesViewPopController.m
//  PDF Reader Pro Edition
//
//  Created by 丁林圭 on 2020/1/2.
//

#import "KMPropertiesViewPopController.h"
#import <PDF_Master-Swift.h>

@interface KMPropertiesViewPopController ()

@property (nonatomic,assign) IBOutlet NSTextField *titleLabel;
@property (nonatomic,assign) IBOutlet NSTextField *titlesubLabel;
@property (nonatomic,assign) IBOutlet NSButton *closeBtn;

@property (nonatomic,retain) NSPopover *popOver;

@end

@implementation KMPropertiesViewPopController

+ (KMPropertiesViewPopController *)defaultManager;
{
    static KMPropertiesViewPopController *singleton = nil;
    static dispatch_once_t pred;
    dispatch_once(&pred, ^{
        singleton = [[KMPropertiesViewPopController alloc] init];
    });
    return singleton;
}


+ (BOOL)showChangeColorDetails
{
    BOOL isOpenConvertDetails = [[NSUserDefaults standardUserDefaults] boolForKey:@"KMPropertiesHaveChangeColorDetails"];
    if (!isOpenConvertDetails) {
        return YES;
    }
    return NO;
}

- (void)showChangeColorDetailsView:(NSView *)view
{
    KMPropertiesViewPopController *popViewController = [[KMPropertiesViewPopController alloc] init];
    popViewController.block = ^{
        [self.popOver close];
    };
    self.popOver = [[NSPopover alloc] init];
    self.popOver.contentViewController = popViewController;
    self.popOver.animates = NO;
    self.popOver.behavior = NSPopoverBehaviorTransient;
    self.popOver.appearance = NSPopoverAppearanceMinimal;
    self.popOver.contentSize = popViewController.view.frame.size;
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        if (![view.superview window]) {
            return;
        }
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"KMPropertiesHaveChangeColorDetails"];
        [[NSUserDefaults standardUserDefaults] synchronize];

        [self.popOver showRelativeToRect:view.bounds ofView:view preferredEdge:NSRectEdgeMaxY];
    });
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.wantsLayer = YES;
    
    self.view.layer.backgroundColor = [NSColor grayColor].CGColor;
    self.titleLabel.stringValue = NSLocalizedString(@"Customize colors", nil);
    self.titlesubLabel.stringValue = NSLocalizedString(@"Right click a color and select \"Change Color...\".", nil);
    [self.closeBtn setTitle:NSLocalizedString(@"Close", nil)];
    self.closeBtn.wantsLayer = YES;
    self.closeBtn.layer.cornerRadius = 1.0;
    self.closeBtn.layer.backgroundColor = [NSColor grayColor].CGColor;
    [self.closeBtn setTitleColorWithColor:[NSColor whiteColor] font:nil];
}

- (IBAction)buttonItemClick_Close:(id)sender
{
    if (self.block) {
        self.block();
        self.block = nil;
    }
}

@end