mirror of
https://github.com/morgan9e/macos-stats
synced 2026-04-14 00:04:15 +09:00
feat: small cleanup in the popup views
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user