diff --git a/Kit/helpers.swift b/Kit/helpers.swift index e69673e6..0937cb7d 100644 --- a/Kit/helpers.swift +++ b/Kit/helpers.swift @@ -340,8 +340,8 @@ public func separatorView(_ title: String, origin: NSPoint = NSPoint(x: 0, y: 0) return view } -public func popupRow(_ view: NSView, n: CGFloat = 0, title: String, value: String) -> (LabelField, ValueField) { - let rowView: NSView = NSView(frame: NSRect(x: 0, y: 22*n, width: view.frame.width, height: 22)) +public func popupRow(_ view: NSView, title: String, value: String) -> (LabelField, ValueField) { + let rowView: NSView = NSView(frame: NSRect(x: 0, y: 0, width: view.frame.width, height: 22)) let labelWidth = title.widthOfString(usingFont: .systemFont(ofSize: 13, weight: .regular)) + 4 let labelView: LabelField = LabelField(frame: NSRect(x: 0, y: (22-16)/2, width: labelWidth, height: 16), title) @@ -384,8 +384,8 @@ public func portalRow(_ v: NSStackView, title: String, value: String = "", isSel return valueView } -public func popupWithColorRow(_ view: NSView, color: NSColor, n: CGFloat, title: String, value: String) -> (NSView, LabelField, ValueField) { - let rowView: NSView = NSView(frame: NSRect(x: 0, y: 22*n, width: view.frame.width, height: 22)) +public func popupWithColorRow(_ view: NSView, color: NSColor, title: String, value: String) -> (NSView, LabelField, ValueField) { + let rowView: NSView = NSView(frame: NSRect(x: 0, y: 0, width: view.frame.width, height: 22)) let colorView: NSView = NSView(frame: NSRect(x: 2, y: 5, width: 12, height: 12)) colorView.wantsLayer = true diff --git a/Modules/Battery/popup.swift b/Modules/Battery/popup.swift index 2fb22451..4849b7e5 100644 --- a/Modules/Battery/popup.swift +++ b/Modules/Battery/popup.swift @@ -19,10 +19,8 @@ internal class Popup: PopupWrapper { private let dashboardHeight: CGFloat = 90 - private var detailsHeight: CGFloat { - return (22 * 7) + Constants.Popup.separatorHeight - } - private let batteryHeight: CGFloat = (22 * 4) + Constants.Popup.separatorHeight + private var detailsHeight: CGFloat = (22 * 4) + Constants.Popup.separatorHeight + private let batteryHeight: CGFloat = (22 * 7) + Constants.Popup.separatorHeight private let adapterHeight: CGFloat = (22 * 4) + Constants.Popup.separatorHeight private let processHeight: CGFloat = (22 * 1) @@ -151,10 +149,6 @@ internal class Popup: PopupWrapper { self.levelField = popupRow(container, title: "\(localizedString("Level")):", value: "").1 self.sourceField = popupRow(container, title: "\(localizedString("Source")):", value: "").1 - self.healthField = popupRow(container, title: "\(localizedString("Health")):", value: "").1 - self.capacityField = popupRow(container, title: "\(localizedString("Capacity")):", value: "").1 - self.capacityField?.toolTip = localizedString("current / maximum / designed") - self.cyclesField = popupRow(container, title: "\(localizedString("Cycles")):", value: "").1 let t = self.labelValue(container, title: "\(localizedString("Time")):", value: "") self.timeLabelField = t.0 self.timeField = t.1 @@ -169,12 +163,19 @@ internal class Popup: PopupWrapper { private func initBattery() -> NSView { let view: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: self.batteryHeight)) let separator = separatorView(localizedString("Battery"), origin: NSPoint(x: 0, y: self.batteryHeight-Constants.Popup.separatorHeight), width: self.frame.width) - let container: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: separator.frame.origin.y)) + let container: NSStackView = NSStackView(frame: NSRect(x: 0, y: 0, width: view.frame.width, height: separator.frame.origin.y)) + container.orientation = .vertical + container.spacing = 0 - self.amperageField = popupRow(container, n: 3, title: "\(localizedString("Amperage")):", value: "").1 - self.voltageField = popupRow(container, n: 2, title: "\(localizedString("Voltage")):", value: "").1 - self.batteryPowerField = popupRow(container, n: 1, title: "\(localizedString("Power")):", value: "").1 - self.temperatureField = popupRow(container, n: 0, title: "\(localizedString("Temperature")):", value: "").1 + self.healthField = popupRow(container, title: "\(localizedString("Health")):", value: "").1 + self.capacityField = popupRow(container, title: "\(localizedString("Capacity")):", value: "").1 + self.capacityField?.toolTip = localizedString("current / maximum / designed") + self.cyclesField = popupRow(container, title: "\(localizedString("Cycles")):", value: "").1 + + self.temperatureField = popupRow(container, title: "\(localizedString("Temperature")):", value: "").1 + self.batteryPowerField = popupRow(container, title: "\(localizedString("Power")):", value: "").1 + self.amperageField = popupRow(container, title: "\(localizedString("Current")):", value: "").1 + self.voltageField = popupRow(container, title: "\(localizedString("Voltage")):", value: "").1 view.addSubview(separator) view.addSubview(container) @@ -185,12 +186,14 @@ internal class Popup: PopupWrapper { private func initAdapter() -> NSView { let view: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: self.adapterHeight)) let separator = separatorView(localizedString("Power adapter"), origin: NSPoint(x: 0, y: self.adapterHeight-Constants.Popup.separatorHeight), width: self.frame.width) - let container: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: separator.frame.origin.y)) + let container: NSStackView = NSStackView(frame: NSRect(x: 0, y: 0, width: view.frame.width, height: separator.frame.origin.y)) + container.orientation = .vertical + container.spacing = 0 - self.powerField = popupRow(container, n: 3, title: "\(localizedString("Power")):", value: "").1 - self.chargingStateField = popupRow(container, n: 2, title: "\(localizedString("Is charging")):", value: "").1 - self.chargingCurrentField = popupRow(container, n: 1, title: "\(localizedString("Charging current")):", value: "").1 - self.chargingVoltageField = popupRow(container, n: 0, title: "\(localizedString("Charging voltage")):", value: "").1 + self.chargingStateField = popupRow(container, title: "\(localizedString("Is charging")):", value: "").1 + self.powerField = popupRow(container, title: "\(localizedString("Power")):", value: "").1 + self.chargingCurrentField = popupRow(container, title: "\(localizedString("Current")):", value: "").1 + self.chargingVoltageField = popupRow(container, title: "\(localizedString("Voltage")):", value: "").1 self.adapterView = view diff --git a/Modules/CPU/popup.swift b/Modules/CPU/popup.swift index d0d80f08..ec7d3b8a 100644 --- a/Modules/CPU/popup.swift +++ b/Modules/CPU/popup.swift @@ -273,23 +273,23 @@ internal class Popup: PopupWrapper { container.orientation = .vertical container.spacing = 0 - (self.systemColorView, _, self.systemField) = popupWithColorRow(container, color: self.systemColor, n: 4, title: "\(localizedString("System")):", value: "") - (self.userColorView, _, self.userField) = popupWithColorRow(container, color: self.userColor, n: 3, title: "\(localizedString("User")):", value: "") - (self.idleColorView, _, self.idleField) = popupWithColorRow(container, color: self.idleColor.withAlphaComponent(0.5), n: 2, title: "\(localizedString("Idle")):", value: "") + (self.systemColorView, _, self.systemField) = popupWithColorRow(container, color: self.systemColor, title: "\(localizedString("System")):", value: "") + (self.userColorView, _, self.userField) = popupWithColorRow(container, color: self.userColor, title: "\(localizedString("User")):", value: "") + (self.idleColorView, _, self.idleField) = popupWithColorRow(container, color: self.idleColor.withAlphaComponent(0.5), title: "\(localizedString("Idle")):", value: "") if !isARM { - self.shedulerLimitField = popupRow(container, n: 1, title: "\(localizedString("Scheduler limit")):", value: "").1 - self.speedLimitField = popupRow(container, n: 0, title: "\(localizedString("Speed limit")):", value: "").1 + self.shedulerLimitField = popupRow(container, title: "\(localizedString("Scheduler limit")):", value: "").1 + self.speedLimitField = popupRow(container, title: "\(localizedString("Speed limit")):", value: "").1 } if SystemKit.shared.device.info.cpu?.eCores != nil { - (self.eCoresColorView, _, self.eCoresField) = popupWithColorRow(container, color: self.eCoresColor, n: 0, title: "\(localizedString("Efficiency cores")):", value: "") + (self.eCoresColorView, _, self.eCoresField) = popupWithColorRow(container, color: self.eCoresColor, title: "\(localizedString("Efficiency cores")):", value: "") } if SystemKit.shared.device.info.cpu?.pCores != nil { - (self.pCoresColorView, _, self.pCoresField) = popupWithColorRow(container, color: self.pCoresColor, n: 0, title: "\(localizedString("Performance cores")):", value: "") + (self.pCoresColorView, _, self.pCoresField) = popupWithColorRow(container, color: self.pCoresColor, title: "\(localizedString("Performance cores")):", value: "") } - self.uptimeField = popupRow(container, n: 0, title: "\(localizedString("Uptime")):", value: self.uptimeValue).1 + self.uptimeField = popupRow(container, title: "\(localizedString("Uptime")):", value: self.uptimeValue).1 self.uptimeField?.font = NSFont.systemFont(ofSize: 11, weight: .regular) view.addSubview(separator) @@ -301,11 +301,13 @@ internal class Popup: PopupWrapper { private func initAverage() -> NSView { let view: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: self.averageHeight)) let separator = separatorView(localizedString("Average load"), origin: NSPoint(x: 0, y: self.averageHeight-Constants.Popup.separatorHeight), width: self.frame.width) - let container: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: separator.frame.origin.y)) + let container: NSStackView = NSStackView(frame: NSRect(x: 0, y: 0, width: view.frame.width, height: separator.frame.origin.y)) + container.orientation = .vertical + container.spacing = 0 - self.average1Field = popupRow(container, n: 2, title: "\(localizedString("1 minute")):", value: "").1 - self.average5Field = popupRow(container, n: 1, title: "\(localizedString("5 minutes")):", value: "").1 - self.average15Field = popupRow(container, n: 0, title: "\(localizedString("15 minutes")):", value: "").1 + self.average1Field = popupRow(container, title: "\(localizedString("1 minute")):", value: "").1 + self.average5Field = popupRow(container, title: "\(localizedString("5 minutes")):", value: "").1 + self.average15Field = popupRow(container, title: "\(localizedString("15 minutes")):", value: "").1 view.addSubview(separator) view.addSubview(container) diff --git a/Modules/Net/popup.swift b/Modules/Net/popup.swift index ef1b32a2..21651c45 100644 --- a/Modules/Net/popup.swift +++ b/Modules/Net/popup.swift @@ -247,8 +247,8 @@ internal class Popup: PopupWrapper { container.addArrangedSubview(row) - let totalUpload = popupWithColorRow(container, color: self.uploadColor, n: 0, title: "\(localizedString("Total upload")):", value: "0") - let totalDownload = popupWithColorRow(container, color: self.downloadColor, n: 0, title: "\(localizedString("Total download")):", value: "0") + let totalUpload = popupWithColorRow(container, color: self.uploadColor, title: "\(localizedString("Total upload")):", value: "0") + let totalDownload = popupWithColorRow(container, color: self.downloadColor, title: "\(localizedString("Total download")):", value: "0") self.uploadColorView = totalUpload.0 self.totalUploadLabel = totalUpload.1 @@ -258,17 +258,17 @@ internal class Popup: PopupWrapper { self.totalDownloadLabel = totalDownload.1 self.totalDownloadField = totalDownload.2 - self.statusField = popupRow(container, n: 0, title: "\(localizedString("Status")):", value: localizedString("Unknown")).1 - self.connectivityField = popupRow(container, n: 0, title: "\(localizedString("Internet connection")):", value: localizedString("Unknown")).1 - self.latencyField = popupRow(container, n: 0, title: "\(localizedString("Latency")):", value: "0 ms").1 + self.statusField = popupRow(container, title: "\(localizedString("Status")):", value: localizedString("Unknown")).1 + self.connectivityField = popupRow(container, title: "\(localizedString("Internet connection")):", value: localizedString("Unknown")).1 + self.latencyField = popupRow(container, title: "\(localizedString("Latency")):", value: "0 ms").1 - self.interfaceField = popupRow(container, n: 0, title: "\(localizedString("Interface")):", value: localizedString("Unknown")).1 - self.ssidField = popupRow(container, n: 0, title: "\(localizedString("Network")):", value: localizedString("Unknown")).1 - self.standardField = popupRow(container, n: 0, title: "\(localizedString("Standard")):", value: localizedString("Unknown")).1 - self.channelField = popupRow(container, n: 0, title: "\(localizedString("Channel")):", value: localizedString("Unknown")).1 + self.interfaceField = popupRow(container, title: "\(localizedString("Interface")):", value: localizedString("Unknown")).1 + self.ssidField = popupRow(container, title: "\(localizedString("Network")):", value: localizedString("Unknown")).1 + self.standardField = popupRow(container, title: "\(localizedString("Standard")):", value: localizedString("Unknown")).1 + self.channelField = popupRow(container, title: "\(localizedString("Channel")):", value: localizedString("Unknown")).1 - self.macAddressField = popupRow(container, n: 0, title: "\(localizedString("Physical address")):", value: localizedString("Unknown")).1 - self.localIPField = popupRow(container, n: 0, title: "\(localizedString("Local IP")):", value: localizedString("Unknown")).1 + self.macAddressField = popupRow(container, title: "\(localizedString("Physical address")):", value: localizedString("Unknown")).1 + self.localIPField = popupRow(container, title: "\(localizedString("Local IP")):", value: localizedString("Unknown")).1 self.localIPField?.isSelectable = true self.macAddressField?.isSelectable = true diff --git a/Modules/RAM/popup.swift b/Modules/RAM/popup.swift index 88d8bfdb..07938ac2 100644 --- a/Modules/RAM/popup.swift +++ b/Modules/RAM/popup.swift @@ -182,14 +182,16 @@ internal class Popup: PopupWrapper { private func initDetails() -> NSView { let view: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: self.detailsHeight)) let separator = separatorView(localizedString("Details"), origin: NSPoint(x: 0, y: self.detailsHeight-Constants.Popup.separatorHeight), width: self.frame.width) - let container: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: separator.frame.origin.y)) + let container: NSStackView = NSStackView(frame: NSRect(x: 0, y: 0, width: view.frame.width, height: separator.frame.origin.y)) + container.orientation = .vertical + container.spacing = 0 - self.usedField = popupRow(container, n: 5, title: "\(localizedString("Used")):", value: "").1 - (self.appColorView, _, self.appField) = popupWithColorRow(container, color: self.appColor, n: 4, title: "\(localizedString("App")):", value: "") - (self.wiredColorView, _, self.wiredField) = popupWithColorRow(container, color: self.wiredColor, n: 3, title: "\(localizedString("Wired")):", value: "") - (self.compressedColorView, _, self.compressedField) = popupWithColorRow(container, color: self.compressedColor, n: 2, title: "\(localizedString("Compressed")):", value: "") - (self.freeColorView, _, self.freeField) = popupWithColorRow(container, color: self.freeColor.withAlphaComponent(0.5), n: 1, title: "\(localizedString("Free")):", value: "") - self.swapField = popupRow(container, n: 0, title: "\(localizedString("Swap")):", value: "").1 + self.usedField = popupRow(container, title: "\(localizedString("Used")):", value: "").1 + (self.appColorView, _, self.appField) = popupWithColorRow(container, color: self.appColor, title: "\(localizedString("App")):", value: "") + (self.wiredColorView, _, self.wiredField) = popupWithColorRow(container, color: self.wiredColor, title: "\(localizedString("Wired")):", value: "") + (self.compressedColorView, _, self.compressedField) = popupWithColorRow(container, color: self.compressedColor, title: "\(localizedString("Compressed")):", value: "") + (self.freeColorView, _, self.freeField) = popupWithColorRow(container, color: self.freeColor.withAlphaComponent(0.5), title: "\(localizedString("Free")):", value: "") + self.swapField = popupRow(container, title: "\(localizedString("Swap")):", value: "").1 view.addSubview(separator) view.addSubview(container)