Eigenes Symbol für den Mixer in der Menüleiste
Die Datei lag im Projektstamm; von dort wird nichts mitgeliefert. Jetzt in Onyx/ und damit im Bundle. Gezeichnet wird sie in `labelColor`, nicht in Weiß: unter einer hellen Menüleiste wäre ein weißes Symbol unsichtbar. Auf dunklem Grund ist labelColor weiß, also genau das Gewünschte — und auf hellem Grund schwarz, statt zu verschwinden. Eigene Vorlagen lassen sich nicht wie SF-Symbole einfärben: dort greift die Symbolkonfiguration nicht, und `color.set()` allein färbt ein Template-Bild ohnehin nicht. Der Weg ist, das Bild zu zeichnen und die Farbe mit `sourceAtop` darüberzulegen — das trifft die deckenden Bildpunkte und lässt den Rest frei. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -108,8 +108,23 @@ private final class MixerStatusView: NSView {
|
||||
// liegt oft ein heller Schreibtischhintergrund, und ein zu 55 % blasses
|
||||
// Glyph ist dort praktisch weg. Ob der Mixer läuft, erfährt man beim
|
||||
// Klick — dafür muss man das Symbol aber erst finden.
|
||||
MenuBarText.drawSymbol("slider.horizontal.3", color: .labelColor,
|
||||
in: NSRect(x: bounds.midX - 7.5, y: bounds.midY - 7.5,
|
||||
width: 15, height: 15))
|
||||
let rect = NSRect(x: bounds.midX - 8, y: bounds.midY - 8, width: 16, height: 16)
|
||||
|
||||
if let glyph = Self.glyph {
|
||||
// `labelColor` und nicht Weiß: unter einer hellen Menüleiste wäre
|
||||
// ein weißes Symbol unsichtbar. Auf dunklem Grund ist labelColor
|
||||
// weiß, also genau das Gewünschte.
|
||||
MenuBarText.drawTemplate(glyph, color: .labelColor, in: rect)
|
||||
return
|
||||
}
|
||||
MenuBarText.drawSymbol("slider.horizontal.3", color: .labelColor, in: rect)
|
||||
}
|
||||
|
||||
/// Die eigene Vorlage aus dem Bundle. Einmal geladen und behalten — das
|
||||
/// Zeichnen läuft bei jeder Änderung, das Einlesen einer SVG nicht.
|
||||
private static let glyph: NSImage? = {
|
||||
guard let url = Bundle.main.url(forResource: "sound-waves", withExtension: "svg")
|
||||
else { return nil }
|
||||
return NSImage(contentsOf: url)
|
||||
}()
|
||||
}
|
||||
|
||||
1
Onyx/sound-waves.svg
Normal file
1
Onyx/sound-waves.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="Bahan_copy_2" height="512" viewBox="0 0 64 64" width="512" xmlns="http://www.w3.org/2000/svg" data-name="Bahan copy 2"><g fill="rgb(0,0,0)"><path d="m7.72 24.83a3.72574 3.72574 0 0 0 -3.72 3.72v6.9a3.715 3.715 0 1 0 7.43 0v-6.9a3.7172 3.7172 0 0 0 -3.71-3.72z"/><path d="m19.86 19a3.72575 3.72575 0 0 0 -3.72 3.72v18.56a3.715 3.715 0 1 0 7.43 0v-18.56a3.71725 3.71725 0 0 0 -3.71-3.72z"/><path d="m32 5.04a3.72579 3.72579 0 0 0 -3.72 3.72v46.48a3.72 3.72 0 1 0 7.43994 0v-46.48a3.72579 3.72579 0 0 0 -3.71994-3.72z"/><path d="m44.14 11.92a3.7173 3.7173 0 0 0 -3.71 3.72v32.72a3.715 3.715 0 1 0 7.43 0v-32.72a3.7258 3.7258 0 0 0 -3.72-3.72z"/><path d="m56.28 17.99a3.71721 3.71721 0 0 0 -3.71 3.72v20.58a3.715 3.715 0 1 0 7.43 0v-20.58a3.72575 3.72575 0 0 0 -3.72-3.72z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 790 B |
Reference in New Issue
Block a user