KMCancelSubscribeCouponsWindowController.swift 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. //
  2. // KMCancelSubscribeCouponsWindowController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by User-Tangchao on 2024/12/23.
  6. //
  7. import Cocoa
  8. class KMCancelSubscribeCouponsWindowController_backgroundIv: NSImageView {
  9. override var mouseDownCanMoveWindow: Bool {
  10. return true
  11. }
  12. }
  13. class KMCancelSubscribeCouponsWindowController: KMBaseWindowController {
  14. @IBOutlet weak var contentBox: NSBox!
  15. @IBOutlet weak var backgroundIv: NSImageView!
  16. @IBOutlet weak var centerBox: NSBox!
  17. @IBOutlet weak var titleLabel: NSTextField!
  18. @IBOutlet weak var couponsLabel: NSTextField!
  19. @IBOutlet weak var buttonBox: NSBox!
  20. @IBOutlet weak var closeButton: NSButton!
  21. private lazy var submitButton_: NSButton = {
  22. let view = NSButton()
  23. view.isBordered = false
  24. return view
  25. }()
  26. private lazy var buttonIv_: NSImageView = {
  27. let view = NSImageView()
  28. return view
  29. }()
  30. convenience init() {
  31. self.init(windowNibName: "KMCancelSubscribeCouponsWindowController")
  32. }
  33. override func windowDidLoad() {
  34. super.windowDidLoad()
  35. window?.backgroundColor = .clear
  36. window?.isMovableByWindowBackground = true
  37. contentBox.fillColor = .clear
  38. backgroundIv.image = NSImage(named: "KMImageNameCancelSubscribeCouponsBg")
  39. backgroundIv.image?.size = window?.frame.size ?? NSMakeSize(400, 357)
  40. centerBox.borderWidth = 0
  41. titleLabel.stringValue = NSLocalizedString("Discount Coupons for New Users!", comment: "")
  42. titleLabel.font = .UbuntuMediumFontWithSize(20)
  43. titleLabel.isSelectable = false
  44. if KMIsDMGVersion() {
  45. if NSLocalizedString("USD", comment: "") == "USD" {
  46. couponsLabel.stringValue = String(format: NSLocalizedString("%@ Coupons for you", comment: ""), "$60")
  47. } else {
  48. couponsLabel.stringValue = String(format: NSLocalizedString("%@ Coupons for you", comment: ""), "360元")
  49. }
  50. } else {
  51. var showCNY = false
  52. if let localeId = IAPProductsManager.default()?.allAccessPackPermanent_lite?.product?.priceLocale.identifier {
  53. showCNY = localeId.contains("zh_CN") || localeId.contains("zh_TW")
  54. }
  55. if showCNY {
  56. couponsLabel.stringValue = String(format: NSLocalizedString("%@ Coupons for you", comment: ""), "360元")
  57. } else {
  58. couponsLabel.stringValue = String(format: NSLocalizedString("%@ Coupons for you", comment: ""), "USD 60")
  59. }
  60. }
  61. couponsLabel.font = .UbuntuMediumFontWithSize(29)
  62. closeButton.image = NSImage(named: "KMImageNameCancelSubscribeCouponsClose")
  63. closeButton.target = self
  64. closeButton.action = #selector(closeAction)
  65. buttonBox.borderWidth = 0
  66. contentBox.contentView?.addSubview(buttonIv_, positioned: .below, relativeTo: buttonBox)
  67. buttonIv_.image = NSImage(named: "KMImageNameCancelSubscribeCouponsButton")
  68. // 271 79 216 64
  69. buttonIv_.image?.size = NSMakeSize(216, 64)
  70. buttonIv_.mas_makeConstraints { make in
  71. make?.centerX.mas_equalTo()
  72. make?.centerY.equalTo()(buttonBox)?.offset()(4)
  73. }
  74. buttonBox.contentView?.addSubview(submitButton_)
  75. submitButton_.frame = buttonBox.contentView?.frame ?? .zero
  76. submitButton_.autoresizingMask = [.width, .height]
  77. submitButton_.title = NSLocalizedString("Get Coupons->", comment: "")
  78. submitButton_.font = .UbuntuMediumFontWithSize(20)
  79. submitButton_.target = self
  80. submitButton_.action = #selector(submitAction)
  81. interfaceThemeDidChanged(window?.appearance?.name ?? .aqua)
  82. }
  83. override func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) {
  84. super.interfaceThemeDidChanged(appearance)
  85. KMMainThreadExecute {
  86. if KMAppearance.isDarkMode() {
  87. self.titleLabel.textColor = NSColor(hex: "#001A1E")
  88. // 文本渐变色 不好处理
  89. self.couponsLabel.textColor = NSColor(hex: "#FFAE80")
  90. self.submitButton_.setTitleColor(.white)
  91. } else {
  92. self.titleLabel.textColor = NSColor(hex: "#001A1E")
  93. // background: linear-gradient(295.44deg, #FFAE80 -10.29%, #FF815A 63.97%);
  94. // 文本渐变色 不好处理
  95. self.couponsLabel.textColor = NSColor(hex: "#FFAE80")
  96. self.submitButton_.setTitleColor(.white)
  97. }
  98. }
  99. }
  100. // MARK: - Public Methods
  101. public func openWindow() {
  102. showWindow(nil)
  103. }
  104. public func closeWindow() {
  105. window?.close()
  106. }
  107. // 打开比较表
  108. public func openCompareWindow() {
  109. let winC = KMProductCompareWC.shared
  110. winC.orientation = true
  111. #if VERSION_DMG
  112. winC.orientationType = .dmg_Base
  113. #else
  114. winC.orientationType = .lite_Base
  115. #endif
  116. winC.openWindow(discountType: .advancedYearSubscribeTrialingCancel)
  117. winC.kEventName = "Purchase_Campaign"
  118. winC.kEventParams = ["Campaign_NewUser" : "PUW_CancelTrial_Price_Coupon"]
  119. }
  120. // MARK: - Actions
  121. @objc func closeAction() {
  122. trackEvent(eventName: "PUW_2", params: ["PUW_Btn" : "CancelFreeTrial_Price_CancelCouponCode"], platform: .AppCenter)
  123. closeWindow()
  124. }
  125. @objc func submitAction() {
  126. closeWindow()
  127. trackEvent(eventName: "PUW_2", params: ["PUW_Btn" : "CancelFreeTrial_Price_GetCouponCode"], platform: .AppCenter)
  128. openCompareWindow()
  129. }
  130. }