fix(mac): tweak menu icons

This commit is contained in:
Peter Steinberger
2025-12-26 19:23:53 +00:00
parent 9317eccfc8
commit 5892bd45d8
2 changed files with 9 additions and 34 deletions

View File

@@ -37,12 +37,15 @@ struct MenuContent: View {
Divider() Divider()
Toggle(isOn: self.heartbeatsBinding) { Toggle(isOn: self.heartbeatsBinding) {
VStack(alignment: .leading, spacing: 2) { HStack(spacing: 8) {
Text("Send Heartbeats") Label("Send Heartbeats", systemImage: "waveform.path.ecg")
Spacer(minLength: 0)
self.statusLine(label: self.heartbeatStatus.label, color: self.heartbeatStatus.color) self.statusLine(label: self.heartbeatStatus.label, color: self.heartbeatStatus.color)
} }
} }
Toggle(isOn: self.voiceWakeBinding) { Text("Voice Wake") } Toggle(isOn: self.voiceWakeBinding) {
Label("Voice Wake", systemImage: "mic.fill")
}
.disabled(!voiceWakeSupported) .disabled(!voiceWakeSupported)
.opacity(voiceWakeSupported ? 1 : 0.5) .opacity(voiceWakeSupported ? 1 : 0.5)
if self.showVoiceWakeMicPicker { if self.showVoiceWakeMicPicker {

View File

@@ -192,10 +192,6 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate {
menu.insertItem(topSeparator, at: cursor) menu.insertItem(topSeparator, at: cursor)
cursor += 1 cursor += 1
let header = self.makeNodesHeaderItem(width: width, count: entries.count)
menu.insertItem(header, at: cursor)
cursor += 1
guard self.isControlChannelConnected else { guard self.isControlChannelConnected else {
menu.insertItem( menu.insertItem(
self.makeMessageItem(text: "No connection to gateway", symbolName: "wifi.slash", width: width), self.makeMessageItem(text: "No connection to gateway", symbolName: "wifi.slash", width: width),
@@ -221,7 +217,7 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate {
menu.insertItem(self.makeMessageItem(text: title, symbolName: "circle.dashed", width: width), at: cursor) menu.insertItem(self.makeMessageItem(text: title, symbolName: "circle.dashed", width: width), at: cursor)
cursor += 1 cursor += 1
} else { } else {
for entry in entries.prefix(5) { for entry in entries.prefix(8) {
let item = NSMenuItem() let item = NSMenuItem()
item.tag = self.nodesTag item.tag = self.nodesTag
item.target = self item.target = self
@@ -234,12 +230,12 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate {
cursor += 1 cursor += 1
} }
if entries.count > 5 { if entries.count > 8 {
let moreItem = NSMenuItem() let moreItem = NSMenuItem()
moreItem.tag = self.nodesTag moreItem.tag = self.nodesTag
moreItem.title = "More Nodes..." moreItem.title = "More Nodes..."
moreItem.image = NSImage(systemSymbolName: "ellipsis.circle", accessibilityDescription: nil) moreItem.image = NSImage(systemSymbolName: "ellipsis.circle", accessibilityDescription: nil)
let overflow = Array(entries.dropFirst(5)) let overflow = Array(entries.dropFirst(8))
moreItem.submenu = self.buildNodesOverflowMenu(entries: overflow, width: width) moreItem.submenu = self.buildNodesOverflowMenu(entries: overflow, width: width)
menu.insertItem(moreItem, at: cursor) menu.insertItem(moreItem, at: cursor)
cursor += 1 cursor += 1
@@ -601,31 +597,7 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate {
} }
} }
private func makeNodesHeaderItem(width: CGFloat, count: Int) -> NSMenuItem {
let view = AnyView(
HStack(spacing: 6) {
Image(systemName: "network")
.font(.caption)
.foregroundStyle(.secondary)
Text("Nodes")
.font(.caption.weight(.semibold))
.foregroundStyle(.secondary)
Spacer(minLength: 8)
Text("\(count)")
.font(.caption.monospacedDigit())
.foregroundStyle(.secondary)
}
.padding(.leading, 18)
.padding(.trailing, 12)
.padding(.vertical, 6)
.frame(minWidth: 300, alignment: .leading))
let item = NSMenuItem()
item.tag = self.nodesTag
item.isEnabled = false
item.view = self.makeHostedView(rootView: view, width: width, highlighted: false)
return item
}
// MARK: - Views // MARK: - Views