// // KMNewUserGuideCellView.swift // PDF Reader Pro // // Created by User-Tangchao on 2024/12/19. // import Cocoa class KMNewUserGuideCellView: NSTableCellView { private lazy var contentBox_: NSBox = { let view = NSBox() view.boxType = .custom view.titlePosition = .noTitle view.borderWidth = 0 view.contentViewMargins = .zero return view }() private lazy var backgroundView_: NSView = { let view = NSView() view.wantsLayer = true return view }() private lazy var titleLabel_: NSTextField = { let view = NSTextField(wrappingLabelWithString: "") return view }() private lazy var subTitleLabel_: NSTextField = { let view = NSTextField(wrappingLabelWithString: "") return view }() private lazy var leftLine_: NSView = { let view = NSView() view.wantsLayer = true return view }() var contentBox: NSBox { get { return contentBox_ } } var backgroundView: NSView { get { return backgroundView_ } } var titleLabel: NSTextField { get { return titleLabel_ } } var subTitleLabel: NSTextField { get { return subTitleLabel_ } } var leftLine: NSView { get { return leftLine_ } } var contentInset: NSEdgeInsets = .init(top: 0, left: 0, bottom: 0, right: 0) { didSet { leftConst_?.constant = contentInset.left rightConst_?.constant = -contentInset.right topConst_?.constant = contentInset.top bottomConst_?.constant = -contentInset.bottom } } private var leftConst_: NSLayoutConstraint? private var topConst_: NSLayoutConstraint? private var rightConst_: NSLayoutConstraint? private var bottomConst_: NSLayoutConstraint? convenience init() { self.init(frame: .init(x: 0, y: 0, width: 200, height: 30)) initSubviews() } override func awakeFromNib() { super.awakeFromNib() initSubviews() } func initSubviews() { addSubview(contentBox) // contentBox.km_add_inset_constraint() leftConst_ = contentBox.km_add_leading_constraint_r() topConst_ = contentBox.km_add_top_constraint_r() rightConst_ = contentBox.km_add_trailing_constraint_r() bottomConst_ = contentBox.km_add_bottom_constraint_r() contentBox_.contentView?.addSubview(backgroundView) backgroundView.km_add_inset_constraint() contentBox.contentView?.addSubview(titleLabel) contentBox.contentView?.addSubview(subTitleLabel) contentBox.contentView?.addSubview(leftLine) titleLabel.km_add_leading_constraint(constant: 12) titleLabel.km_add_top_constraint(constant: 4) titleLabel.km_add_trailing_constraint(constant: -4) titleLabel.km_add_height_constraint(constant: 20) subTitleLabel.km_add_leading_constraint(constant: 12) subTitleLabel.km_add_top_constraint(equalTo: titleLabel, attribute: .bottom, constant: 8) subTitleLabel.km_add_trailing_constraint(constant: -4) leftLine.km_add_leading_constraint() leftLine.km_add_top_constraint() leftLine.km_add_bottom_constraint() leftLine.km_add_width_constraint(constant: 2) } }