# DJ Player — ikony pro Windows a Python

Balíček obsahuje dvě vícevelikostní Windows ikony. Původní výtvarný návrh zůstává zachován.

## Soubory

- `dj_player.ico` – hlavní ikona programu a EXE, rozlišení 16 až 256 px v jednom ICO.
- `dj_player_tray.ico` – kompaktnější varianta pro systémovou lištu (systray), 16 až 256 px.
- `dj_player_1024.png` a `dj_player_256.png` – hlavní motiv s průhlednými rohy.
- `dj_player_tray_64.png` / `dj_player_tray_32.png` / `dj_player_tray_16.png` – tray PNG.
- Ostatní PNG soubory – další rozměry pro použití v GUI.

## PyInstaller – ikona výsledného .exe

Ulož ikony například do složky `assets/` projektu a zavolej:

```bash
pyinstaller --noconsole --onefile --name "DJ Player" --icon=assets/dj_player.ico --add-data "assets;assets" main.py
```

`--icon` nastaví ikonu EXE; není totéž jako ikona v titulku okna ani systray.
Parametr `--add-data` platí pro Windows (oddělovač středník). Pokud ikony
načítáš za běhu ze souboru, musí být do balíčku přidané (nebo použij `.spec`).

## PySide6 (Qt): ikona okna a tray

```python
import sys
from pathlib import Path
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QApplication, QMainWindow, QSystemTrayIcon

def asset(name):
    root = Path(getattr(sys, '_MEIPASS', Path(__file__).resolve().parent))
    return str(root / 'assets' / name)

app = QApplication(sys.argv)
app.setWindowIcon(QIcon(asset('dj_player.ico')))
window = QMainWindow()
window.setWindowTitle('DJ Player')
window.setWindowIcon(QIcon(asset('dj_player.ico')))
tray = QSystemTrayIcon(QIcon(asset('dj_player_tray.ico')), window)
tray.setToolTip('DJ Player')
tray.show()
window.show()
sys.exit(app.exec())
```

Poznámka: pro běžný produkční tray přidej také kontextovou nabídku (`QMenu`)
a chování při zavření okna.

## tkinter + pystray

```python
import sys
from pathlib import Path
import tkinter as tk
import pystray
from threading import Thread
from PIL import Image

def asset(name):
    root = Path(getattr(sys, '_MEIPASS', Path(__file__).resolve().parent))
    return str(root / 'assets' / name)

root = tk.Tk()
root.title('DJ Player')
root.iconbitmap(asset('dj_player.ico'))
icon = pystray.Icon('DJPlayer', Image.open(asset('dj_player_tray_64.png')),
                    title='DJ Player')
# Ve Windows může ikona běžet ve vlastním vlákně.
Thread(target=icon.run, daemon=True).start()
try:
    root.mainloop()
finally:
    icon.stop()
```

Průhledné PNG se hodí i jako podklad pro více platforem. Windows ikony
ICO obsahují více velikostí, takže Windows sám vybere správné rozlišení.
