Hello,
I've been looking at the way wxWidgets handles the macOS "default" items like "About" and "Preferences," and I'm a bit confused by it, stepping through the code with a debugger a bit.
I see CreateAppleMenu() and MacInstallMenuBar() in menu_osx.cpp, where in the former the About and preferences items are added unconditionally (if the static item ids are set) to a menu added to all menu bars (afaics).
CreateAppleMenu() creates "About %s" with the GetAppDisplayName() and "Preferences..." with the correct accelerator (although "Preferences..." is outdated, and macOS uses "Settings..." now, but that's an aside).
In MacInstallMenuBar() though, whenever these menu items are found, the item labels are replaced with the labels from the `wxItem`. This ends up replacing the labels created in `CreateAppleMenu()` (which were what I'd expect a macOS app to have, more or less).
For these menu items, I don't provide a label, so it just replaces it with the stock label and accelerator.
Is the intent that a non-stock item id should be set (in the macOS-specific static fields in wxApp, e.g. `s_macAboutMenuItemId`) for About in order to circumvent wxWidget's default handling, and instead the macOS specific default handling labels to persist?
If that's intentional, I suppose it is what it is, but it just seems rather awkward, so I thought I'd ask.
Thank you,
Ryan Ogurek