File tree Expand file tree Collapse file tree 1 file changed +29
-2
lines changed Expand file tree Collapse file tree 1 file changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -51,8 +51,35 @@ public func menuBar(viewModel: TrayMenuModel) -> some Scene {
51
51
terminateApp ( )
52
52
} . keyboardShortcut ( " Q " , modifiers: . command)
53
53
} label: {
54
- // .font(.system(.body, design: .monospaced)) doesn't work unfortunately :(
55
- Text ( viewModel. isEnabled ? viewModel. trayText : " ⏸️ " )
54
+ if viewModel. isEnabled {
55
+ menuLabel ( viewModel: viewModel)
56
+ . id ( viewModel. trayText. hashValue)
57
+ } else {
58
+ Text ( " ⏸️ " )
59
+ }
60
+ }
61
+ }
62
+
63
+ struct menuLabel : View {
64
+ var viewModel : TrayMenuModel
65
+
66
+ var body : some View {
67
+ let renderer = ImageRenderer ( content: imageContent)
68
+ if let cgImage = renderer. cgImage {
69
+ Image ( cgImage, scale: 2 , label: Text ( viewModel. trayText) )
70
+ . resizable ( )
71
+ . aspectRatio ( contentMode: . fit)
72
+ } else {
73
+ // In case image can't be rendered fallback to plain text
74
+ Text ( viewModel. trayText)
75
+ }
76
+ }
77
+
78
+ // I used a largeTitle font and then use a scale of 2 to make the image look smoother
79
+ private var imageContent : some View {
80
+ Text ( viewModel. trayText)
81
+ . font ( . system( . largeTitle, design: . monospaced) )
82
+ . foregroundStyle ( Color . white)
56
83
}
57
84
}
58
85
You can’t perform that action at this time.
0 commit comments