|
@@ -0,0 +1,118 @@
|
|
|
+//
|
|
|
+// KMAIToolsForCheckInGuideView.swift
|
|
|
+// PDF Reader Pro
|
|
|
+//
|
|
|
+// Created by User-Tangchao on 2024/12/31.
|
|
|
+//
|
|
|
+
|
|
|
+import Cocoa
|
|
|
+
|
|
|
+class KMAIToolsForCheckInGuideView: NSView {
|
|
|
+ private lazy var targetView_: KMGuideTargetView = {
|
|
|
+ let view = KMGuideTargetView(frame: NSRect(x: 0, y: 0, width: 56, height: 56))
|
|
|
+ view.lineWidth = 2
|
|
|
+ view.strokeColor = NSColor(red: 34/255, green: 122/255, blue: 255/255, alpha: 0.7)
|
|
|
+ return view
|
|
|
+ }()
|
|
|
+ private lazy var contentView: NSView = {
|
|
|
+ let view = NSView()
|
|
|
+ view.wantsLayer = true
|
|
|
+ view.layer?.backgroundColor = .white
|
|
|
+ view.layer?.cornerRadius = 10
|
|
|
+ view.layer?.borderWidth = 2
|
|
|
+ view.layer?.borderColor = NSColor(hex: "#4982E6").cgColor
|
|
|
+ return view
|
|
|
+ }()
|
|
|
+ private lazy var titleLabel: NSTextField = {
|
|
|
+ let view = NSTextField(labelWithString: NSLocalizedString("Try AI Tools Now", comment: ""))
|
|
|
+ view.font = .SFProTextBoldFont(14)
|
|
|
+ view.textColor = NSColor(hex: "#273C62")
|
|
|
+ return view
|
|
|
+ }()
|
|
|
+
|
|
|
+ private lazy var button_: NSButton = {
|
|
|
+ let view = NSButton()
|
|
|
+ view.isBordered = false
|
|
|
+ view.title = ""
|
|
|
+ view.target = self
|
|
|
+ view.action = #selector(buttonAction)
|
|
|
+ return view
|
|
|
+ }()
|
|
|
+
|
|
|
+ private var viewSize_: NSSize = .zero
|
|
|
+ var viewSize: NSSize {
|
|
|
+ get {
|
|
|
+ return viewSize_
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var itemClick: KMCommonClickBlock?
|
|
|
+
|
|
|
+ convenience init() {
|
|
|
+ self.init(frame: .init(x: 0, y: 0, width: 200, height: 116))
|
|
|
+
|
|
|
+ initSubviews()
|
|
|
+ }
|
|
|
+
|
|
|
+ func initSubviews() {
|
|
|
+ addSubview(targetView_)
|
|
|
+
|
|
|
+ addSubview(contentView)
|
|
|
+ contentView.addSubview(titleLabel)
|
|
|
+ contentView.addSubview(button_)
|
|
|
+
|
|
|
+ let margin: CGFloat = 5
|
|
|
+ viewSize_ = .zero
|
|
|
+ viewSize_.height += margin
|
|
|
+ viewSize_.width += margin
|
|
|
+
|
|
|
+ let targetWH: CGFloat = 56
|
|
|
+ viewSize_.height += targetWH
|
|
|
+
|
|
|
+ targetView_.mas_makeConstraints { make in
|
|
|
+ make?.size.mas_equalTo()(NSMakeSize(targetWH, targetWH))
|
|
|
+ make?.centerX.mas_equalTo()(0)
|
|
|
+ make?.top.mas_equalTo()(margin)
|
|
|
+ }
|
|
|
+
|
|
|
+ let vSpace: CGFloat = 8
|
|
|
+ viewSize_.height += vSpace
|
|
|
+
|
|
|
+ let contentH: CGFloat = 42
|
|
|
+ viewSize_.height += contentH
|
|
|
+
|
|
|
+ let width = titleWidth() + 36 * 2
|
|
|
+ viewSize_.width += width
|
|
|
+
|
|
|
+ contentView.mas_makeConstraints { make in
|
|
|
+ make?.height.mas_equalTo()(contentH)
|
|
|
+ make?.top.equalTo()(targetView_.mas_bottom)?.offset()(vSpace)
|
|
|
+ make?.width.mas_equalTo()(width)
|
|
|
+// make?.bottom.mas_equalTo()(-5)
|
|
|
+ make?.leading.mas_equalTo()(margin)
|
|
|
+ make?.centerX.mas_equalTo()(0)
|
|
|
+ }
|
|
|
+
|
|
|
+ titleLabel.mas_makeConstraints { make in
|
|
|
+ make?.center.mas_equalTo()(0)
|
|
|
+ }
|
|
|
+ button_.mas_makeConstraints { make in
|
|
|
+ make?.edges.mas_equalTo()(0)
|
|
|
+ }
|
|
|
+
|
|
|
+ viewSize_.height += margin
|
|
|
+ viewSize_.width += margin
|
|
|
+
|
|
|
+ viewSize_.width = max(viewSize_.width, targetWH)
|
|
|
+ }
|
|
|
+
|
|
|
+ func titleWidth() -> CGFloat {
|
|
|
+ let stringV = titleLabel.stringValue
|
|
|
+ let size = stringV.getTextRectSize(font: .SFProTextBoldFont(14), size: NSMakeSize(CGFLOAT_MAX, 24))
|
|
|
+ return size.width
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc func buttonAction() {
|
|
|
+ itemClick?(1)
|
|
|
+ }
|
|
|
+}
|