KMWatermarkAdjectiveBaseModel.swift 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. //
  2. // KMWatermarkAdjectiveBaseModel.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by tangchao on 2022/12/27.
  6. //
  7. import Cocoa
  8. enum KMWatermarkeModelPageRangeType: Int {
  9. case all = 0
  10. case odd
  11. case even
  12. case other
  13. }
  14. /// 关联指
  15. enum KMWatermarkAdjectiveText {
  16. case font(name: String, size: CGFloat)
  17. case color(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)
  18. }
  19. @objcMembers class KMWatermarkAdjectiveBaseModel: NSObject {
  20. var textFont: KMWatermarkAdjectiveText!
  21. var fontSize: Float = 12.0 {
  22. didSet {
  23. textFont = KMWatermarkAdjectiveText.font(name: "Helvetica", size: CGFloat(fontSize))
  24. }
  25. }
  26. var textColor: KMWatermarkAdjectiveText!
  27. var tempTextColor: NSColor = NSColor.black {
  28. didSet {
  29. var red: CGFloat = 0
  30. var green: CGFloat = 0
  31. var blue: CGFloat = 0
  32. var alpha: CGFloat = 0
  33. let oldStrokeColor = tempTextColor.usingColorSpace(NSColorSpace.deviceRGB)
  34. oldStrokeColor?.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
  35. textColor = KMWatermarkAdjectiveText.color(red: red, green: green, blue: blue, alpha: alpha)
  36. }
  37. }
  38. var id: String = ""
  39. var pageRangeType: KMWatermarkeModelPageRangeType = .all
  40. var pageRangeString: String = ""
  41. var pageCount: Int = 0
  42. public func getTextColor() -> NSColor {
  43. var color: NSColor!
  44. switch self.textColor {
  45. case .color(red: let red, green: let green, blue: let blue, alpha: let alpha):
  46. color = NSColor(red: red, green: green, blue: blue, alpha: alpha)
  47. default:
  48. break
  49. }
  50. if (color == nil) {
  51. color = NSColor.red
  52. }
  53. return color
  54. }
  55. public func getTextFont() -> NSFont {
  56. var fontSize = 0.0
  57. var fontName: String = ""
  58. switch self.textFont {
  59. case .font(name: let name, size: let size):
  60. fontName = name
  61. fontSize = size
  62. break
  63. default:
  64. break
  65. }
  66. return NSFont(name: fontName, size: fontSize) ?? NSFont(name: "Helvetica", size: 48)!
  67. }
  68. public func getTextFontName() -> String {
  69. var fontName: String = ""
  70. switch self.textFont {
  71. case .font(name: let name, size: _):
  72. fontName = name
  73. break
  74. default:
  75. break
  76. }
  77. return fontName
  78. }
  79. public func getTextFontSize() -> CGFloat {
  80. var fontSize = 48.0
  81. switch self.textFont {
  82. case .font(name: _, size: let size):
  83. fontSize = size
  84. break
  85. default:
  86. break
  87. }
  88. return fontSize
  89. }
  90. }