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.
Use the standard container directly instead of using a wx synonym for
it, this is more clear.
Use the same hack here as in e13dbd4278 (Use std::unordered_map<> in
wxMsgCatalog and related classes, 2023-04-12) to allow the existing code
including this header keep using the functions from wx/wxcrt.h without
including it explicitly.
This symbol is similar to the existing wxNO_IMPLICIT_WXSTRING_ENCODING
and can be defined when building the application (as opposed to when
building the library) to disable implicit wxString conversions to
pointer types, i.e. char*, wchat_t* and void*.
This makes the just added wxUSE_CHAR_CONV_IN_WXSTRING library build
option unnecessary, so remove it.
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.
Use std::list<> instead.
Also use std::unique_ptr<> instead of managing memory manually. As this
makes wxArtProvidersList non-copyable, don't export it from the DLL any
longer, as DLL-exported classes apparently must have a copy ctor, or at
least MSVS (all versions up to 2022) try to generate it even if it's
explicitly deleted in the class declaration and fail, due to the base
class being non-copyable. And because there was never any reason to
export neither this class nor wxArtProviderCache from the DLL, stop
exporting the latter one too.
Note that this implies that the only way to delete a wxArtProvider
registered in the global provider list is by removing it from it,
instead of deleting it directly, which was apparently allowed before,
even though it shouldn't have ever been actually done -- but make this
even more clear in the documentation now.
These classes can also be potentially used in the user code, as they are
used for the protected members of wxAuiTabContainer, so don't replace
them with just std::vector, but do, at least, use wxBaseArray template
for them instead of the macro-based object arrays.
Note that this required the check for the button presence in m_buttons
in wxAuiTabContainer::TabHitTest() as wxBaseArray::Index() relies on
object comparison, whereas the original version relied on object address
comparison, so keep it like this, even though we probably could compare
the buttons IDs instead (and, possibly, not compare anything at all but
just return the result of the button we found from ButtonHitTest()
directly).
Also document these container classes.
This class is part of the public API, as it is used by the public
wxAuiToolBar functions, so we can't make it just a vector, but we can
still make it a wxBaseArray instead of using the old macro-based object
array for it.
Also document it.
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.
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.
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.
Add wxPrintDialogData::EnableCurrentPage() and implement support for it
under MSW, where it enables selecting the "Current page" radio button in
the pages selection area of the native dialog.
Update the sample to show the new function.
Now that we use C++11 there is no need to have our own Shrink()
implementation when we can just use the standard function.
Also mention that it's the same as shrink_to_fit() in Shrink()
documentation.
No real changes, just simplify the code and make it more efficient.
This replaces the previously implemented wxWebViewWindowInfo.
It explicitly breaks the previous API to enable WebKitGTK
integration and to make the usage in application code less error prone.
A new event wxEVT_WEBVIEW_NEWWINDOW_FEATURES is added to allow
access to the window features and the child web view.
This function must be called to be able to re-create the EGL drawing
surface after the window layout have changed, such as after a reparent
of the canvas or of it's grandparents.
Make it suitable for use in this case by re-creating the surface if
there already was one and document this function to make it part of the
public API.
Closes#23366.
While the user could select to print only the selection in the dialog,
there was no way for the program to specify which pages were selected,
making this choice impossible to handle.
Add new IsPageSelected() function which is now used to query which pages
are selected and should actually be printed.
Update the printing sample to show how this function is used.
Make it clear that the scale factor comes from the bitmap selected into
the device context and not from the "compatible" wxDC, as this is how
the code currently behaves (and this behaves arguably does make sense,
but also can't be changed without breaking the existing code in any
case).