File: pyedit-products/unzipped/build/build-icons/_README.txt
This build folder creates icons shipped in ../icons.
Ths PNG images at the top of this folder are the originals, from
which resizes and icons are made. "images-*" subfolders are resizes
used for icon builds, and generated icons are moved to ../icons.
In this icon build folder:
The Windows .ico is made on any platform with:
py -3 iconify.py -win images pyedit
The Mac .icns is made on any platform with:
python3 iconify.py -mac images pyedit
or on a Mac with its built-in:
iconutil -c icns pyedit.iconset
The required iconify step are automatically from either:
- build.bat (on Windows)
- resize-and-build.sh (on Unix: Mac, Linux)
- ../build-app-exe build scripts if required or forced
Build details:
Before iconify is run, a 1024x1024 PNG image is first resized for icons
by resize-on-mac.sh on Mac using sips (or manually elsewhere). This makes
a folder with one image per scaled size (16, 32, 64, 128, 256, 512, and
1024), which is then used as input to iconify.py:
./resize-on-mac.sh pyedit.png images-pyedit
python3 iconify.py -mac images-pyedit pyedit
GIFs for Linux + Help are made manually from 1024 PNGs via Mac Preview:
Tools=>Adjust Size to 256, File=>Export+option-click to GIF no Alpha.
Paint works on Windows too, and this could be automated with sips on
Mac but it's a one-time task.
The tool iconify.py was also extended for Mac .icns as part of the
Mac OS X port work. Apple's iconutil is built-in on Macs, but must
also be run there only; iconify.py makes Windows and Mac icons,
on either. See iconify.py and learning-python.com/iconify.
Where icons appear:
On Mac, icons are used for Desktop aliases, Dock, common dialogs in Tk,
icons of associated files in Finder, the app itself in Finder, and the
app bundle itself in Lauchpad if it's been drug (copied) there or to
folder /Applications. They do not appear on windows themselves.
On Windows, icons are used for Desktop shortcuts, taskbar, icons of
associated files, and the executable itself in Explorer and Start.
Programs can also arrange to set them on the borders of windows.
On Linux, programs can arrange to set an icon on the app bar, from
a general image type. Other contexts may vary per window system.
Icons do not appear in some of these contexts for source-code based
programs - only for executables and Mac apps (a.k.a. app bundles).
Desktop icons can generally be set manually by users, though the
latest/current Macs require a security system to be disabled first.
UPDATE:
The PyEdit icon story has grown a bit richer:
- Windows now may use up to four icons : one for main window borders,
one for popup window borders to make them distinct (main window quits
close the program), one for the subprocproxy frozen exe on Windows
and Linux, and one for everthing else (e.g., frozen app and main exe).
- Linux may use two icons (main and popup window in app-bar), but uses
manually-ceated GIFs.
- Mac uses just one icon in all contexts (the app icon is general, and
border icons aren't supported, so Mac PyEdit uses Unicode characters
in titles to differentiate window types instead).
It's undecided whether main/popup icons will differ on Windows when
shipped: they seem too small to be much of a distinction. PyEdit's
code allows popups to differ if their shipped icon does.