// // KMCancelSubscribeCouponsWindowController.swift // PDF Reader Pro // // Created by User-Tangchao on 2024/12/23. // import Cocoa class KMCancelSubscribeCouponsWindowController_backgroundIv: NSImageView { override var mouseDownCanMoveWindow: Bool { return true } } class KMCancelSubscribeCouponsWindowController: KMBaseWindowController { @IBOutlet weak var contentBox: NSBox! @IBOutlet weak var backgroundIv: NSImageView! @IBOutlet weak var centerBox: NSBox! @IBOutlet weak var titleLabel: NSTextField! @IBOutlet weak var couponsLabel: NSTextField! @IBOutlet weak var buttonBox: NSBox! @IBOutlet weak var closeButton: NSButton! private lazy var submitButton_: NSButton = { let view = NSButton() view.isBordered = false return view }() private lazy var buttonIv_: NSImageView = { let view = NSImageView() return view }() convenience init() { self.init(windowNibName: "KMCancelSubscribeCouponsWindowController") } override func windowDidLoad() { super.windowDidLoad() window?.backgroundColor = .clear window?.isMovableByWindowBackground = true contentBox.fillColor = .clear backgroundIv.image = NSImage(named: "KMImageNameCancelSubscribeCouponsBg") backgroundIv.image?.size = window?.frame.size ?? NSMakeSize(400, 357) centerBox.borderWidth = 0 titleLabel.stringValue = NSLocalizedString("Discount Coupons for New Users!", comment: "") titleLabel.font = .UbuntuMediumFontWithSize(20) titleLabel.isSelectable = false if KMIsDMGVersion() { if NSLocalizedString("USD", comment: "") == "USD" { couponsLabel.stringValue = String(format: NSLocalizedString("%@ Coupons for you", comment: ""), "$60") } else { couponsLabel.stringValue = String(format: NSLocalizedString("%@ Coupons for you", comment: ""), "360元") } } else { var showCNY = false if let localeId = IAPProductsManager.default()?.allAccessPackPermanent_lite?.product?.priceLocale.identifier { showCNY = localeId.contains("zh_CN") || localeId.contains("zh_TW") } if showCNY { couponsLabel.stringValue = String(format: NSLocalizedString("%@ Coupons for you", comment: ""), "360元") } else { couponsLabel.stringValue = String(format: NSLocalizedString("%@ Coupons for you", comment: ""), "USD 60") } } couponsLabel.font = .UbuntuMediumFontWithSize(29) closeButton.image = NSImage(named: "KMImageNameCancelSubscribeCouponsClose") closeButton.target = self closeButton.action = #selector(closeAction) buttonBox.borderWidth = 0 contentBox.contentView?.addSubview(buttonIv_, positioned: .below, relativeTo: buttonBox) buttonIv_.image = NSImage(named: "KMImageNameCancelSubscribeCouponsButton") // 271 79 216 64 buttonIv_.image?.size = NSMakeSize(216, 64) buttonIv_.mas_makeConstraints { make in make?.centerX.mas_equalTo() make?.centerY.equalTo()(buttonBox)?.offset()(4) } buttonBox.contentView?.addSubview(submitButton_) submitButton_.frame = buttonBox.contentView?.frame ?? .zero submitButton_.autoresizingMask = [.width, .height] submitButton_.title = NSLocalizedString("Get Coupons->", comment: "") submitButton_.font = .UbuntuMediumFontWithSize(20) submitButton_.target = self submitButton_.action = #selector(submitAction) interfaceThemeDidChanged(window?.appearance?.name ?? .aqua) } override func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) { super.interfaceThemeDidChanged(appearance) KMMainThreadExecute { if KMAppearance.isDarkMode() { self.titleLabel.textColor = NSColor(hex: "#001A1E") // 文本渐变色 不好处理 self.couponsLabel.textColor = NSColor(hex: "#FFAE80") self.submitButton_.setTitleColor(.white) } else { self.titleLabel.textColor = NSColor(hex: "#001A1E") // background: linear-gradient(295.44deg, #FFAE80 -10.29%, #FF815A 63.97%); // 文本渐变色 不好处理 self.couponsLabel.textColor = NSColor(hex: "#FFAE80") self.submitButton_.setTitleColor(.white) } } } // MARK: - Public Methods public func openWindow() { showWindow(nil) } public func closeWindow() { window?.close() } // 打开比较表 public func openCompareWindow() { let winC = KMProductCompareWC.shared winC.orientation = true #if VERSION_DMG winC.orientationType = .dmg_Base #else winC.orientationType = .lite_Base #endif winC.openWindow(discountType: .advancedYearSubscribeTrialingCancel) winC.kEventName = "Purchase_Campaign" winC.kEventParams = ["Campaign_NewUser" : "PUW_CancelTrial_Price_Coupon"] } // MARK: - Actions @objc func closeAction() { trackEvent(eventName: "PUW_2", params: ["PUW_Btn" : "CancelFreeTrial_Price_CancelCouponCode"], platform: .AppCenter) closeWindow() } @objc func submitAction() { closeWindow() trackEvent(eventName: "PUW_2", params: ["PUW_Btn" : "CancelFreeTrial_Price_GetCouponCode"], platform: .AppCenter) openCompareWindow() } }