Filesystem monitor and refactor.

This commit is contained in:
2025-02-06 17:03:16 -08:00
parent 6557993214
commit 5ed67e0cef
15 changed files with 777 additions and 481 deletions

View File

@@ -7,8 +7,7 @@ final class ProgramsTableView: NSTableView {
class ProgramsTableRowView: NSTableRowView {
override func drawSelection(in dirtyRect: NSRect) {
if self.selectionHighlightStyle != .none {
let selectionColor = NSColor.controlAccentColor
.withAlphaComponent(0.8)
let selectionColor = NSColor.controlAccentColor.withAlphaComponent(0.8)
selectionColor.setFill()
self.bounds.fill()
}
@@ -22,8 +21,7 @@ class ProgramsTableViewCell: NSTableCellView {
public var appIconImage: NSImageView = {
let image = NSImageView()
image.image =
NSWorkspace.shared.icon(forFile: Bundle.main.bundlePath)
image.image = NSWorkspace.shared.icon(forFile: Bundle.main.bundlePath)
image.imageScaling = .scaleAxesIndependently
image.translatesAutoresizingMaskIntoConstraints = false
return image
@@ -40,9 +38,7 @@ class ProgramsTableViewCell: NSTableCellView {
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.font = NSFont.systemFont(ofSize: NSFontDescriptor.preferredFontDescriptor(forTextStyle: .caption1).pointSize, weight: .medium)
textField.translatesAutoresizingMaskIntoConstraints = false
return textField
}()
@@ -59,23 +55,15 @@ class ProgramsTableViewCell: NSTableCellView {
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: leadingAnchor, constant: ViewConstants.spacing5),
titleField.topAnchor.constraint(
equalTo: appIconImage.topAnchor,
constant: ViewConstants.spacing2),
titleField.leadingAnchor.constraint(
equalTo: appIconImage.trailingAnchor,
constant: ViewConstants.spacing5),
titleField.topAnchor.constraint(equalTo: appIconImage.topAnchor, constant: ViewConstants.spacing2),
titleField.leadingAnchor.constraint(equalTo: appIconImage.trailingAnchor, constant: ViewConstants.spacing5),
titleField.trailingAnchor.constraint(equalTo: trailingAnchor),
progPathLabel.topAnchor.constraint(
equalTo: titleField.bottomAnchor),
progPathLabel.leadingAnchor.constraint(
equalTo: titleField.leadingAnchor),
progPathLabel.trailingAnchor.constraint(
equalTo: titleField.trailingAnchor),
progPathLabel.topAnchor.constraint(equalTo: titleField.bottomAnchor),
progPathLabel.leadingAnchor.constraint(equalTo: titleField.leadingAnchor),
progPathLabel.trailingAnchor.constraint(equalTo: titleField.trailingAnchor),
])
}