New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changeable external icon sets #1817
Conversation
|
I am not all that convinced about the actual usefulness of this feature. To be fair it only adds to feature creep and doesn't provide any non-negligible benefits. |
- Remove icon functions from plat.h. - Fix some indentation problems. - Remove unused parameter from win_stbar.c - Rename win_lang.c to win_progsett.c - Remove stub functions from unix.c - Move win_load_icon_set() to ui_init() - Replace the translated texts to English, and let the translators translate them - Fix the control IDs in dialogs.rc. - Use the requested solution in win_icon.c for setting the array variables.
… into changeable_icon_set
Marked some slight oversights, otherwise the PR seems to be fine code-wise. I still don't agree with the feature as whole though
|
I have to agree with @dhrdlicka being critical about the usefulness of this feature to regular users and the worry about feature creep. I understand it could make testing icons easier, but I don't think it's justified only to avoid having to recompile. |
Summary
This PR extends 86Box's capabilities by adding dynamically changeable external iconsets.
How to use it:
Open > Tools > Program Settings... > Iconset:
How it saves it:
To 86Box.cfg [General] iconset =
How to add iconset:
1, Convert your icons to .ICO format. You should have 16x16, 20x20, 24x24, and 32x32 sizes at least for DPI-scaling.
2, Name your icons as in src\win\icons. Be sure that you have a replacement for every single icon.
3, Create a new txt file named
iconset.txt, and write a single line into it - the name you want to see in the combobox.4, Choose a short name for your iconset and copy the files to
roms\icons\<your chosen name>\.5, The new iconset should show up in the combobox.
Why
roms\icons\folder?Because the romset has to be downloaded for every 86Box instances, so this is the easiest way to share extra icons drawn by the community, without compiling them into the program. Also this allows the check and approve any new icon sets, and the path can be redirected with all the existing infrastructure (e.g. command line parameters) for the rom directory. The rom path currently is well definied for Unix too, but introducing a new path for this could lead to complications in this case.
Do we have examples?
For example I'll open two PR's on the romset side to show how these iconsets could be created.
The Legacy iconset is identical to the current one, which hopefully will became really legacy when v3.0 is complete.
The Inspired by WinBox iconset is the one, used in the ImGui branch currently.
Since the extra sets does not have hard infrastructure, hopefully there will be more in the future.
Under the hood:
plat_get_icons_path(), where a FindFirstFile-FindNextFile-FindClose loop will automatically recognizes all the directoriesNotes:
Checklist
86Box/roms#144
86Box/roms#143
References
N/A