This commit is contained in:
2025-03-07 16:54:27 -08:00
parent bba267f37d
commit 565b9f8254
3 changed files with 66 additions and 27 deletions

View File

@@ -19,6 +19,21 @@ class ProgramsTableViewCell: NSTableCellView {
private(set) var isEditing = false
public var indexLabel: NSTextField = {
let field = NSTextField(labelWithString: "-")
field.alignment = .center
// field.drawsBackground = true
// field.backgroundColor = NSColor.green.withAlphaComponent(0.2)
field.textColor = NSColor.secondaryLabelColor
field.cell?.lineBreakMode = .byTruncatingTail
field.font = NSFont.systemFont(ofSize: NSFontDescriptor.preferredFontDescriptor(forTextStyle: .caption1).pointSize, weight: .bold)
field.translatesAutoresizingMaskIntoConstraints = false
return field
}()
public var appIconImage: NSImageView = {
let image = NSImageView()
image.image = NSWorkspace.shared.icon(forFile: Bundle.main.bundlePath)
@@ -28,38 +43,51 @@ class ProgramsTableViewCell: NSTableCellView {
}()
public var titleField: NSTextField = {
let field = NSTextField(labelWithString: "")
field.textColor = NSColor.secondaryLabelColor
let field = NSTextField()
field.isBordered = false
field.drawsBackground = false
field.lineBreakMode = .byTruncatingTail
field.textColor = NSColor.secondaryLabelColor
field.translatesAutoresizingMaskIntoConstraints = false
return field
}()
public var progPathLabel: NSTextField = {
let textField = NSTextField(labelWithString: "")
textField.cell?.lineBreakMode = .byTruncatingTail
textField.font = NSFont.systemFont(ofSize: NSFontDescriptor.preferredFontDescriptor(forTextStyle: .caption1).pointSize, weight: .medium)
textField.translatesAutoresizingMaskIntoConstraints = false
return textField
let field = NSTextField()
field.isBordered = false
field.drawsBackground = false
field.lineBreakMode = .byTruncatingTail
field.font = NSFont.systemFont(ofSize: NSFontDescriptor.preferredFontDescriptor(forTextStyle: .caption1).pointSize, weight: .medium)
field.translatesAutoresizingMaskIntoConstraints = false
return field
}()
override init(frame frameRect: NSRect) {
super.init(frame: frameRect)
// wantsLayer = true
// layer?.backgroundColor = NSColor.yellow.withAlphaComponent(0.2).cgColor
addSubview(indexLabel)
addSubview(appIconImage)
addSubview(titleField)
addSubview(progPathLabel)
// indexLabel.setContentHuggingPriority(.required, for: .horizontal)
NSLayoutConstraint.activate([
indexLabel.widthAnchor.constraint(equalToConstant: 25),
indexLabel.centerYAnchor.constraint(equalTo: centerYAnchor),
indexLabel.leadingAnchor.constraint(equalTo: leadingAnchor, constant: ViewConstants.spacing5),
appIconImage.widthAnchor.constraint(equalToConstant: 40),
appIconImage.heightAnchor.constraint(equalToConstant: 40),
appIconImage.topAnchor.constraint(equalTo: topAnchor),
appIconImage.bottomAnchor.constraint(equalTo: bottomAnchor),
appIconImage.leadingAnchor.constraint(equalTo: leadingAnchor, constant: ViewConstants.spacing5),
appIconImage.leadingAnchor.constraint(equalTo: indexLabel.trailingAnchor),
titleField.topAnchor.constraint(equalTo: appIconImage.topAnchor, constant: ViewConstants.spacing2),
titleField.leadingAnchor.constraint(equalTo: appIconImage.trailingAnchor, constant: ViewConstants.spacing5),
titleField.trailingAnchor.constraint(equalTo: trailingAnchor),
titleField.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -ViewConstants.spacing5),
progPathLabel.topAnchor.constraint(equalTo: titleField.bottomAnchor),
progPathLabel.leadingAnchor.constraint(equalTo: titleField.leadingAnchor),