The primary motivation for this is to resolve a licensing issue with
these files (the files have been relicensed with a Debian-approved
license), but there were a few minor fixes/additions since the previous
update. The generation code/scripts required some modernization to get
it working on a current system, as well as needing to handle the format
of CP866.TXT, which is a bit different than the other files.
Update the whitespace check to exclude these files from it as we prefer
not to modify them to avoid any divergences with the upstream copies
(even trivial ones).
Closes#26700.
The primary documented way of using a .natvis, in the Microsoft
documentation linked to, is to add it to one's project, not to copy
it under %USERPROFILE%.
Closes#26452.
Fix the visualizer to display full Unicode string.
Previously, only the first character was shown in recent versions of
Visual Studio. This was due to the use of "sb" format specifier meaning
an ANSI string.
Use condition expressions to cover both wchar_t and UTF-8 builds.
Correct the specifier for UTF-8 case to be "s8b" so that it interprets
and displays UTF-8 correctly.
Closes#25684.
Using wxWindow::SetClientSize() can be more convenient than using
wxWindow::SetSize() and is guaranteed to work under all platforms, even
when the window decorations size may be unknown, so allow setting the
client size of floating wxAUI panes directly too.
Closes#25483.
Fix another validation error in our own samples/xrc/rc/controls.xrc.
This should have been part of 652d37ea61 (Add "pressed" and "current"
wxBitmapButton XRC properties, 2022-02-20) but was forgotten there.
Make sure this class is recognized when validating, otherwise running
validator on our own samples/xrc/rc/controls.xrc failed.
This should have been part of 12b09a5e5e (Provide wxXmlResourceHandler
for wxVListBox, 2024-10-08) but was forgotten there.
See #24361, #24867.
Now that this class is based on std::vector, having a pretty printer for
it is not really useless, but actively counterproductive, as it doesn't
have the fields used by this printer and so displaying it in gdb doesn't
work at all with it, while it works just fine without it.
This commit improves the best locale match algorithm by prioritizing
closer matches and add many new tests verifying that this works as
expected.
In order to do this, new information had to be added to the language
database, which was extended with it and updated to use the latest
Unicode CLDR data and latest Windows 11 locale list.
Further, add a set of scripts for maintaining the language database up
to date and a GitHub workflow `genlangdb.yml` which can be run manually
to regenerate the wxWidgets language-related source and header files
from the underlying Windows and Unicode data. It produces 2 artifacts:
- wxLanguageDatabaseDist.zip allows to easily update the
language-related files in the wxWidgets repository by simply copying
all files.
- the normal workflow log and wxLanguageDatabaseLog.zip allow to check
all temporary files of the regeneration process and to detect
potential issues, before the language-related files are actually
replaced by the new ones.
Finally, fix wxUILocaleImplName::GetPreferredUILanguages: Under Windows
10 and above the Windows API function ::GetUserPreferredUILanguages()
returns only the primary UI language plus US English. Additional
preferred UI languages installed by the user are ignored, so instead of
using this function read the list of user preferred languages from the
Windows registry.
Closes#24855.
This is just a hack because we handle "feature" as part of "platform"
when it's not really related to it, but as it has to be treated in the
same way, it's the simplest way to allow it.
This should also have been done in 3fdebc96cd (Add support for XRC
"feature" attribute, 2023-01-29) but was forgotten there.
array.tostring() was removed in 3.9, so use tobytes() instead.
This makes the script incompatible with Python 2, but this shouldn't be
much of a concern any more these days.
Fix some issues and streamline regeneration process:
- A few glitches (like duplicate language symbols, wrong Windows
language ids etc) were fixed.
- Scripts were added to allow to regenerate the list of supported
locales from the list of known Windows locales.
- Version info when language symbols became available was added to the
documentation of the language symbol enum.
- Synonyms are no longer hard-coded in the script genlang.py.
See #23453.
Closes#23437.
Update the list of known languages/locales to match the list of known
locales in Windows 11, adding support for a number of new locales.
Additionally, the issues mentioned in #23419 are fixed, except the
native descriptions of Northern Luri (Luri translations of the
territories are not known).
Closes#23419.
Closes#23426.
They were not used anyhow and could conflict with the other packages
defining them.
We also don't need to update the version in this file now.
See #23162.
This is a combination of running clang-tidy with modernize-use-nullptr
check for some ports (GTK, X11, OSX) and manual changes to the ports for
which it couldn't be used easily (MSW, DFB) and also manually updating
the docs.
Also replace NULL with null or nullptr in the comments as this is more
consistent with the use of nullptr in the code and makes it simpler to
grep for the remaining occurrences of NULL itself.
And also use null in the assert messages.
Only a few occurrences of "NULL" are still left in non-C files, mostly
corresponding to unclear comments or string output which it might not be
safe to change.
Remove the port files and references to it from the common headers and
elsewhere.
Also remove GPE (GNOME PDA Environment) support as libgpewidget is
unmaintained since 2006 or so and has never been really used.
Use __WXGTK__ to test for any version of wxGTK now. Still define
__WXGTK20__ for compatibility, but always define it now and don't test
for it in the library code.
This port hasn't been updated for ages and is not used by anybody any
longer, so remove its code to facilitate maintenance.
Also remove references to this port from the documentation and most of
the other places (VMS-specific descrip.vms files still check for it
because it's not clear how to update them all), including configure.
Regenerate the latter and rebake all makefiles.
Finally document that this port is not available any longer.
Remove autoexp.inc, this format is no longer supported by MSVC.
Merge wxWidgets.2013.natvis with wxWidgets.natvis.
Remove wxVector<> visualizer as it's not used any more and is just a
synonym for std::vector<> now.
This should have been done in 8293dcedef (Factor out platform detection
from XRC code into wxPlatformId, 2021-02-02) which added "msw" as an
alternative to "win".
Including the recently added docs/changes_32.txt one.
This should have been in 304f173924 (Rename the existing changelog to
changes_32.txt and add a new one, 2022-07-11) but was forgotten there.
Import the theme files into a subdirectory without any changes, even not
removing the trailing whitespace, to facilitate updating them in the
future. Do not add the theme as a submodule as it's surprisingly big
(~12MB) and we don't want to spend extra time on cloning it in each of
our CI builds.
Using this theme gives a nicer appearance and supports the often
requested dark mode.
Remove all colour-related options from the existing custom CSS file as
they don't work well in dark mode.
Also switch to using SVGs with transparent background, rather than PNGs,
for the class diagrams, to avoid background colour mismatch in dark
mode.
Allow selecting between the "default" and "simple" providers for now, we
might want to extend this to allow user-defined providers in the future.
Closes#22515.