Updated icon

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-08-16 19:24:00 +02:00
parent 27a30b0668
commit b9e2788d0d
15 changed files with 147 additions and 108 deletions
-2
View File
@@ -11,9 +11,7 @@
## New Items
- [ ] BUG: I can no longer move the main window unless it is in window-shade mode or until I've toggled window shade mode on/off.
- [ ] BUG: The main screen's un-window-shade button is not wired up.
- [ ] BUG: The windows take a long time to toggle window shade mode on/off.
- [ ] BUG: The main screen has 4 buttons on the top-right: the first one is currently bugged with the incorrect sprite, minimize (which doesn't work), window shade (works), and close (which doesn't work).
- [ ] BUG: Always-on-top doesn't apply to all windows
- [ ] BUG: Equalizer and playlist windows don't scale with the main window when the UI scale changes
+4 -1
View File
@@ -687,7 +687,9 @@ class _PlSongListPainter extends CustomPainter {
final listRight = paintSize.width - 20;
final listWidth = listRight - _listLeft;
final visibleRows = ((paintSize.height - _rowsLocalTop) / _rowStride)
.floor();
.floor()
.clamp(0, _playlist.length)
.toInt();
final rowsBottom = _rowsLocalTop + visibleRows * _rowStride;
canvas.drawRect(
Rect.fromLTWH(_listLeft, 0, listWidth, 3),
@@ -771,6 +773,7 @@ class _PlSongListPainter extends CustomPainter {
final pledit = skin.image("pledit.bmp")!;
final trackH = paintSize.height;
const slidH = 18;
if (trackH < slidH + _rowsLocalTop) return;
final visibleRows = ((trackH - _rowsLocalTop) / _rowStride).floor();
final t = _playlist.length - visibleRows;
int yp;
+21 -2
View File
@@ -184,6 +184,12 @@ class _SubWindowRootState extends State<SubWindowRoot> {
} else {
_windowBounds = newBounds;
}
if (!(_isEq ? _player.eqShade : _player.plShade)) {
_lastNormalSize = Size(
width / _player.uiScale,
height / _player.uiScale,
);
}
await windowManager.setSize(Size(width, height));
await windowManager.setPosition(Offset(x, y));
}
@@ -260,6 +266,13 @@ class _SubWindowRootState extends State<SubWindowRoot> {
} else {
_windowBounds = await windowManager.getBounds();
}
final readyBounds = _windowBounds;
if (readyBounds != null && !(_isEq ? _player.eqShade : _player.plShade)) {
_lastNormalSize = Size(
readyBounds.width / _player.uiScale,
readyBounds.height / _player.uiScale,
);
}
_windowReady = true;
final controller = await WindowController.fromCurrentEngine();
await controller.show();
@@ -398,6 +411,12 @@ class _SubWindowRootState extends State<SubWindowRoot> {
} else {
_windowBounds = nb;
}
if (!(_isEq ? _player.eqShade : _player.plShade)) {
_lastNormalSize = Size(
nb.width / _player.uiScale,
nb.height / _player.uiScale,
);
}
unawaited(windowManager.setSize(nb.size));
unawaited(windowManager.setPosition(nb.topLeft));
_reportSubBounds(nb);
@@ -409,14 +428,14 @@ class _SubWindowRootState extends State<SubWindowRoot> {
final current = _windowBounds?.size;
if (current != null) {
final width = current.width / _wasScale * useScale;
final height = current.height / _wasScale * useScale;
final minWidth = _mainSize.width * useScale;
final desiredWidth = useShade
? width
: (width < minWidth ? minWidth : width);
final normalHeight = _lastNormalSize?.height ?? _mainSize.height;
final desiredHeight = useShade
? _shadeSize.height * useScale
: (_lastNormalSize?.height ?? height) * useScale;
: normalHeight * useScale;
return Size(desiredWidth, desiredHeight);
}
final base = useShade ? _shadeSize : _mainSize;
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 247 247" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g>
<path d="M123.5,0L247,123.5L123.5,247L0,123.5L123.5,0Z"/>
<path d="M123.5,17L230,123.5L123.5,230L17,123.5L123.5,17Z" style="fill:url(#_Linear1);"/>
<path d="M122.5,217L214.984,125.016L122.5,28L27.105,122.895L122.5,217Z" style="fill:url(#_Linear2);"/>
</g>
<defs>
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,-213,213,0,123.5,230)"><stop offset="0" style="stop-color:white;stop-opacity:1"/><stop offset="1" style="stop-color:rgb(244,244,244);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,189,-189,0,123.5,28)"><stop offset="0" style="stop-color:white;stop-opacity:1"/><stop offset="1" style="stop-color:rgb(244,244,244);stop-opacity:1"/></linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

+35
View File
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 195 230" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-20,-12)">
<g>
<g>
<path d="M53,104L215,12L215,53L176,92L188,96L188,135L20,242L20,193L66,147L53,147L53,104Z"/>
<g>
<path d="M63,110L205,29L138,89L178,103L30,198L117,110L63,110Z" style="fill:url(#_Linear1);"/>
<path d="M205,29L205,49L158,96L138,89L205,29Z" style="fill:url(#_Linear2);"/>
<path d="M178,103L178,130L30,225L30,198L178,103Z" style="fill:url(#_Linear3);"/>
<path d="M63,110L63,137L90,137L118,109L63,110Z" style="fill:url(#_Linear4);"/>
</g>
</g>
<g>
<g>
<path d="M63,110L117,110L31,197L127,106L63,110Z" style="fill:rgb(255,242,222);"/>
<path d="M178,103L138,89L170,103.5L136,130L178,103Z" style="fill:rgb(255,242,222);"/>
<path d="M63,110L205,29L191.5,41L63,110Z" style="fill:rgb(255,242,222);"/>
</g>
<g>
<path d="M63,110L63,113L111,116L118,109L63,110Z" style="fill:rgb(237,95,28);"/>
<path d="M30,198L178,103L178,111L30,198Z" style="fill:rgb(237,95,28);"/>
<path d="M138,89L205,29L144,91.1L138,89Z" style="fill:rgb(237,95,28);"/>
</g>
</g>
</g>
</g>
<defs>
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(36,60,-60,36,114,69)"><stop offset="0" style="stop-color:rgb(255,197,44);stop-opacity:1"/><stop offset="0.5" style="stop-color:rgb(255,242,217);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(255,197,44);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,40,-40,1,197,37)"><stop offset="0" style="stop-color:rgb(255,194,30);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(255,132,19);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear3" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(11,18,-18,11,102,152)"><stop offset="0" style="stop-color:rgb(255,182,28);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(235,121,17);stop-opacity:1"/></linearGradient>
<linearGradient id="_Linear4" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-3,26,-26,-3,92,110)"><stop offset="0" style="stop-color:rgb(255,186,29);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(255,132,19);stop-opacity:1"/></linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

+74
View File
@@ -0,0 +1,74 @@
{
"fill" : {
"linear-gradient" : [
"display-p3:0.87891,0.53516,0.21277,1.00000",
"display-p3:0.99072,0.93750,0.81445,1.00000"
],
"orientation" : {
"start" : {
"x" : 0.5,
"y" : 0
},
"stop" : {
"x" : 0.5,
"y" : 0.7
}
}
},
"groups" : [
{
"layers" : [
{
"glass" : false,
"image-name" : "winamp_main.svg",
"name" : "winamp_main",
"position" : {
"scale" : 3.5,
"translation-in-points" : [
0,
0
]
}
}
],
"shadow" : {
"kind" : "neutral",
"opacity" : 0.5
},
"translucency" : {
"enabled" : true,
"value" : 0.5
}
},
{
"layers" : [
{
"glass" : false,
"image-name" : "winamp_background.svg",
"name" : "winamp_background",
"position" : {
"scale" : 3.5,
"translation-in-points" : [
0,
0
]
}
}
],
"shadow" : {
"kind" : "neutral",
"opacity" : 0.5
},
"translucency" : {
"enabled" : true,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}
@@ -1,68 +0,0 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_16.png",
"scale" : "1x"
},
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "1x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_64.png",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_128.png",
"scale" : "1x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "1x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_1024.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

@@ -1,35 +0,0 @@
{
"fill" : "automatic",
"groups" : [
{
"layers" : [
{
"glass" : false,
"image-name" : "WinampIcon.png",
"name" : "WinampIcon",
"position" : {
"scale" : 3.5,
"translation-in-points" : [
0,
0
]
}
}
],
"shadow" : {
"kind" : "neutral",
"opacity" : 0.5
},
"translucency" : {
"enabled" : true,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}