wxString is always based on std::[w]string since 2c0c727f49 (Remove wx
own wxStringImpl implementation, 2022-11-16) and all containers use
standard containers by default too now -- and there is a separate
wxUSE_STD_CONTAINERS for this anyhow.
The only remaining use of wxUSE_STL was as the default value for
wxUSE_STD_STRING_CONV_IN_WXSTRING option, but it's not really needed
for this neither, and this option can just be set to 0 by default.
Also add wxUSE_CHAR_CONV_IN_WXSTRING which can now be set to 0 too to
disable all unwanted implicit conversions (even "safe" ones, to wide
strings, in addition to the unsafe ones to narrow strings that could be
already disabled with wxUSE_UNSAFE_WXSTRING_CONV) to allow people who
don't want to have any implicit conversions at all to do it.
Keep --enable-stl configure option for compatibility, but warn if it is
used to tell people that it is not needed any longer.
This function doesn't exist any longer since 5e2da5a106 (Get rid of v2.8
code, 2022-08-01).
Remove documentation of this function and its UngetWriteBuf()
counterpart and don't refer to them in wxStringBuffer[Length]
documentation.
Document that it returns the same value as GetDPIScaleFactor() wxWindow
method and _not_ the wxWindow method with the same name.
This is very confusing, but there doesn't seem to be anything to be done
about it by now.
See #23441.
This was accidentally broken in fb4f0b590c (Remove wxGTK1 port and GPE
support, 2022-10-16): even though the commit message explicitly said
that __WXGTK20__ was still defined, it actually wasn't any more.
Fix this now by just doing it always when using wxGTK. This allows to
drop WXGTK2 variable entirely, as it's not used any longer and we don't
need to set it.
Closes#23444.
Instead of having a special function for this, collapse it down into the
DoInsertItems function to allow for only querying the model once from
the combobox.
This function is considered private because of the GTK prefix, so its
removal isn't API-breaking.
There is a lot of overhead in the gtk_combo_box_text_insert_text
function, so adding a lot of items to a choicebox can be an expensive
operation when it is used. Instead directly access the underlying data
model and add the items to it.
Experiments show that for adding 10000 items to a wxChoice, the amount
of time spent in wxChoice::DoInsertItems for each method are:
gtk_combo_box_text_insert_text: 6.75s
gtk_list_store_insert_with_values: 438.2ms
Somewhat incredibly, this file, added back in 2bda0e1738 (added some
wxMSW stuff, 1998-05-20), never contained anything but some commented
out code and so was always totally useless.
Finally remove it.
This was used by wxGTK 1, which is not supported any longer, and wxX11,
which now always uses Pango instead, so all this code became completely
unused and can be removed to simplify things.
Closes#23442.
Previously, the taskbar icon could remain shown in the taskbar after
wxNotificationMessage was destroyed, as wxEVT_TASKBAR_BALLOON_TIMEOUT
handler was called on an already dead object.
Weirdly enough this didn't result in the crashes, but it definitely
didn't work correctly neither.
Fix this by binding a separate handler for this event, not using the
wxNotificationMessage object at all, which is responsible for destroying
the icon when it times out.
This also seems to make it completely unnecessary to have a separate
m_active flag in wxNotificationMessageImpl, as we can now just delete
the "impl" object too directly when the main object itself is deleted.
Closes#23432.
Explain that the legacy container classes now inherit from the standard
classes by default and also how to update the existing code to compile
when using standard library-based implementations.
Due to a bug in gcc 4.8 standard library, inheriting from the standard
class doesn't work, so we can't use it as the base class for our own
containers with this compiler.
This is mostly, even if not completely, compatible with the previous
default build using wxUSE_STD_CONTAINERS=0, so try enabling this by
default again. Hopefully it should work better now than the last time we
tried it, see 01871bf642 (Add wxUSE_STD_CONTAINERS and turn it on by
default., 2011-03-30) and the subsequent 7311debd0d (Don't use the
standard containers by default., 2011-05-13).
See #22718.
This is just a trivial wrapper for wxList, which is itself obsolete, so
deprecate it and schedule for removal in wx 3.6.
Also move it entirely inline and don't export it from the DLL any longer
both because this avoids generating any code for it if it's not used (as
should be the case for 99.99% of wx applications) and because we
currently can't use wxDEPRECATED_MSG() and WXDLLIMPEXP_CORE together in
the same declaration.
Explain that it's only needed in order to pass a bunch of strings to the
existing function and also mention that it doesn't even need to be
created explicitly in most cases.
Replace it with member initialization in declaration.
This simplifies the code and allows to get rid of several conditional
compilation directives.
No real changes.
It seems to be completely unnecessary, just use wxBaseArray<wxString>
directly.
Also remove some very old mention of wxArrayStringBase from ifacecheck
which is surely not needed any longer now (and probably wasn't since
quite some time already).
No real changes.
Don't use isalpha() in it as this was potentially incorrect, both
because the key code could be not in the supported range and because
isalpha() might return unexpected result in non C locale, and also
inconsistent with AdjustCharEventKeyCodes().
Just check that the code is in a..z or A..Z range explicitly instead.
See #23379.
Add a convenient @since_wx alias which is more appropriate for
single-line comments than the standard @since, which would expand into
two paragraphs.
See #23426.
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.
This didn't work correctly if the global C locale was changed without
passing by wxUILocale and also was slower than just falling back on
using comma if the current locale doesn't use period as decimal
separator.
Now just try both period and comma as, de facto, these are the only
possible decimal separators.
Closes#23287.