Commit Graph

72301 Commits

Author SHA1 Message Date
Artur Wieczorek
198bd1fe1f Fix setting categorized/alphabetic mode for inserted wxPropertyGridPage
State of the newly added wxPropertyGridPage should have the same
categorized/alphabetic mode like associated wxPropertyGrid.
2021-11-07 21:59:47 +01:00
Vadim Zeitlin
ddb3b4a80a Use wxWithImages in wxTreeCtrl
Replace direct use of wxImageList with the use of wxWithImages, which
will make adding support for using wxBitmapBundle later simpler.

In fact, this already somewhat simplifies the code by removing the need
to manually take care of m_ownsImageListXXX flags.
2021-11-07 17:52:35 +00:00
Vadim Zeitlin
34a730f89c Small cleanup of wxGenericTreeCtrl-specific parts of the sample
Use HAS_GENERIC_TREECTRL for testing whether we're actually using it or
not instead of checking for USE_GENERIC_TREECTRL and then port names
with a native control, which was done inconsistently, as it included
wxQt in one place, but not the other one.

Also avoid repeating CreateButtonsImageList() declaration twice, as this
resulted in having unbalanced curly braces in this file, which was just
unpleasant.

No real changes.
2021-11-07 16:36:43 +00:00
Vadim Zeitlin
725c3d5608 Update images when DPI changes in wxBookCtrlBase-derived classes
Just pretend that the images themselves have changed, this should be
enough to recreate wxImageList from the bundle using the new scale
factor in UpdateImageListIfNecessary().
2021-11-07 16:06:55 +00:00
David Costanzo
20208cc81f Fix loading bitmaps with malformed biClrUsed field
Stop throwing std::bad_alloc when BMP has large/negative biClrUsed by
checking that biClrUsed has a reasonable value before attempting to
allocate however much memory it indicates.

Add unit tests showing the loading such invalid bitmaps now correctly
returns an error rather than throwing an exception.

Closes https://github.com/wxWidgets/wxWidgets/pull/2583

Closes #19295.
2021-11-06 16:12:04 +01:00
Vadim Zeitlin
58d2243f7b Improve wxTE_RICH(2) styles documentation
Mention that wxTE_RICH2 should be used instead of wxTE_RICH and that it
can now be turned out automatically if the initial text is too long.

See #19303.
2021-11-06 16:00:49 +01:00
Lauri Nurmi
aace36b17f Add static SetNameForCurrent for setting name of non-wxThreads
Co-authored-by: PB <PBforDev@gmail.com>
2021-11-05 16:11:56 +02:00
Lauri Nurmi
fc756d06a6 Add wxThread::SetName for naming threads for debugging purposes
Such thread names can be shown by some debuggers, and depending on
the OS and compiler versions used, they can be visible in process
lists and crash dumps.

Co-authored-by: PB <PBforDev@gmail.com>
2021-11-05 16:11:55 +02:00
Vadim Zeitlin
590d3f1b75 Merge branch 'macos_versionname12' of https://github.com/TcT2k/wxWidgets
Recognize Windows 11 and macOS 12 in wxGetOsDescription().

See https://github.com/wxWidgets/wxWidgets/pull/2580
2021-11-05 13:58:09 +01:00
Lauri Nurmi
7c6b041469 Simplify function pointer syntax in GetPreferredUILanguage()
No need for (*func)(args), just call func(args).

No real changes.

This commit is best viewed ignoring whitespace-only changes.

Closes https://github.com/wxWidgets/wxWidgets/pull/2579
2021-11-05 13:56:55 +01:00
PB
d7e33a5291 Extend wxMSW contributor guide
List useful wrapper classes for Windows API provided by wxWidgets.

Closes https://github.com/wxWidgets/wxWidgets/pull/2578
2021-11-05 13:56:10 +01:00
Vadim Zeitlin
cce8e41b20 Merge branch 'gtk_unknown_keys' of https://github.com/martinetd/wxWidgets
Generate wxKeyEvents even for unknown keys in wxGTK.

See https://github.com/wxWidgets/wxWidgets/pull/2576
2021-11-05 13:55:12 +01:00
Vadim Zeitlin
de3d95a7b3 Merge branch 'gtk-launch-keys'
Generate events for GDK_KEY_LaunchX keys too in wxGTK.

See https://github.com/wxWidgets/wxWidgets/pull/2575
2021-11-05 13:53:30 +01:00
Vadim Zeitlin
089b72b762 Merge branch 'msw-long-text'
Fixes for creating wxTextCtrl with long text in wxMSW.

See https://github.com/wxWidgets/wxWidgets/pull/2570

Closes #19303.
2021-11-05 13:50:20 +01:00
Tobias Taschner
69aedae382 Include Windows 11 in wxGetOsVersion() table 2021-11-05 13:07:32 +01:00
Tobias Taschner
6cef0c0464 Include Windows 11 name in wxGetOsDescription()
The major version is not changed for Windows 11 from
Windows 10, but the build number 22000 can be used to
determine it's Win 11.
2021-11-05 11:55:51 +01:00
Tobias Taschner
2c6651ef12 Include macOS 12 name in wxGetOsDescription() 2021-11-05 11:19:06 +01:00
Tobias Taschner
ab7098b33b Add note to RunScript() to recommend RunScriptAsync() 2021-11-05 10:04:45 +01:00
Tobias Taschner
04e4b57a05 Remove unused m_runScriptCount
This was no longer used after the changes to the javascript wrapper
2021-11-05 09:54:44 +01:00
Tobias Taschner
9f9ccf33e1 Initialize syncScriptResult and remove unused parameter 2021-11-05 09:52:53 +01:00
Tobias Taschner
8613f3aa6b Apply suggestions from code review
Co-authored-by: VZ <vz-github@zeitlins.org>
2021-11-05 09:41:39 +01:00
Dominique Martinet
5f0749f4fd Document generation of WXK_NONE key events for unknown keys
Add a paragraph for keys where GetUnicodeKey and GetKeyCode both return
WXK_NONE, that GetRawKeyCode is platform specific, and that such keys
generate no wxEVT_CHAR event.
2021-11-05 09:46:53 +09:00
Vadim Zeitlin
eb6e0289d6 Make WXK_LAUNCH_x constants consecutive
No real changes, but don't complicate the constants definitions
needlessly just to avoid changing the numeric value of WXK_LAUNCH_APP
constants as nobody should rely on them anyhow.

Not doing it simplifies things and allows to condense the mapping from
GDK keys to wx ones.
2021-11-05 00:43:39 +01:00
Vadim Zeitlin
77f81bae07 Improve multimedia key constants documentation
Add "since 3.1.0" for the constants introduced back in abd46cb99a (Add
support for multimedia keys to wxMSW and wxGTK, 2016-01-08) and also for
the new constants added in the previous commit.

Also document that WXK_LAUNCH_n keys are only generated by wxGTK.
2021-11-05 00:42:46 +01:00
Tobias Taschner
0921d0508a Add tests for wxWebView::RunScriptAsync() 2021-11-03 14:04:24 +01:00
Tobias Taschner
9114122837 Additional wxWebView::RunScriptAsync() documentation 2021-11-03 14:04:23 +01:00
Tobias Taschner
d31f1dc400 Add wxWebViewEvent::IsError() 2021-11-03 13:35:24 +01:00
Tobias Taschner
47833a6d24 Add RunScriptAsync() to webview sample 2021-11-03 11:19:09 +01:00
Tobias Taschner
d93db6bba5 Add initial RunScriptAsync() documentation 2021-11-03 11:19:09 +01:00
Tobias Taschner
93f7df50d5 Implement RunScriptAsync for webkit2 2021-11-03 11:19:08 +01:00
Tobias Taschner
e1bd17d883 Use new JS wrapper with webkit2 2021-11-03 11:19:08 +01:00
Tobias Taschner
7aa1d84e4a Implement RunScriptAsync for macOS 2021-11-03 11:19:08 +01:00
Tobias Taschner
e9dc74cb6d Add wxWebView::RunScriptAsync() 2021-11-03 11:19:07 +01:00
Tobias Taschner
cf6a947dab Use new JS wrapper with edge and IE 2021-11-03 11:19:00 +01:00
Tobias Taschner
2fe12ae6af Restructure javascript result wrapper 2021-11-03 11:18:53 +01:00
Tobias Taschner
fd2920ff22 Fix wxWebViewEdge tests
Edge does not support the about: URL using it in the test resulted
in various problems. Just use about:blank for now as the edge backend
does not merge them for the history checks.
2021-11-03 11:18:53 +01:00
Dominique Martinet
61d835d8b3 wxKeyCode: add WXK_LAUNCH_[0-9A-F] for gtk bindings
X11 defines Xf86Launch[0-9a-f], which are then also defined as
GDK_KEY_Launch[0-9A-F].

Unfortunately, keys which are not mapped are just plain ignored and the
application is then not able to receive these keyboard events at all.

The original PR https://github.com/wxWidgets/wxWidgets/pull/157 mapped
only LaunchA/B to WXK_LAUNCH_APP1/2, this patch adds the whole range of
keys and keeps LAUNCH_A/B as aliases for WXK_LAUNCH_APP1/2
2021-11-02 10:18:02 +09:00
Dominique Martinet
307aaf83d8 gtk/window: cleanup dead code around wxTranslateGTKKeyEventToWx
The previous commit made wxTranslateGTKKeyEventToWx never fail, so make it void
and remove all dead code resulting from the lack of failure.
2021-11-02 10:09:28 +09:00
Dominique Martinet
33553ed141 gtk/window: generate WXK_NONE key event for unknown keys
There are still plenty of X11 keys which have no WXK mapping and might be useful
for applications to act upon.

Instead of trying to remap all of them, generate a WXK_NONE key event and let
applications deal with it using GetRawKeyCode() if appropriate.
2021-11-02 10:09:28 +09:00
Vadim Zeitlin
b0d9465921 Add wxWithImages::SetImages() and update wxMSW wxNotebook for it
This new function will allow selecting the bitmap of the most suitable
size and automatically react to DPI scale changes (although this hasn't
been implemented yet) in all controls using image lists.

For now, only wxNotebook in wxMSW has been updated to work with it, the
other classes and ports will be updated to override OnImagesChanged()
instead of SetImageList() later.

Also update the notebook sample to use SetImages() rather than
SetImageList() -- which means that it doesn't show the icons any longer
in non-MSW ports, which haven't been updated yet.
2021-10-31 20:54:58 +01:00
Vadim Zeitlin
55819925dc Add wxBitmapBundle::GetConsensusSizeFor()
Move the code for determining the size preferred by a bunch of bitmap
bundles from wxToolBar to wxBitmapBundle itself to allow reusing it from
other classes.

No real changes, this is just a refactoring.

This commit is best viewed with --color-moved git option.
2021-10-31 20:40:06 +01:00
Vadim Zeitlin
0df49f0a54 Add wxWithImages::GetImageCount() and HasImages() helpers
These functions allow avoiding using wxImageList explicitly in a couple
of places.

No real changes, this just prepares for adding new API not based on
wxImageList.
2021-10-31 17:34:44 +01:00
Vadim Zeitlin
9cc0c9a082 Only check sizer elements if there is valid containing window
This is another correction to the changes of 62c3d921b2 (Check that all
windows in a sizer use associated window as parent, 2021-10-20): we need
to restrict the part of this check in wxSizer::SetContainingWindow() to
the case when this function argument is non-null, otherwise the check
would always fail.

Notice that it is perfectly valid to call SetContainingWindow(NULL) and
wxWrapSizer does it for every re-layout, for example.

This commit is best viewed ignoring whitespace-only changes.

See #19308.
2021-10-29 16:33:10 +01:00
Vadim Zeitlin
34f430a016 Relax the sizer parent check to account for wxStaticBoxSizer
The check added in 62c3d921b2 (Check that all windows in a sizer use
associated window as parent, 2021-10-20) didn't work correctly when
using wxStaticBoxSizer, as the windows in this sizer are grandchildren
(or possibly even further descendants, in case of nested sizers) of the
window that the sizer is associated with, with the static box being the
immediate parent.

Relax the check to account for this and to avoid triggering for any use
of wxStaticBoxSizer.

Closes #19308.
2021-10-29 01:33:48 +01:00
Vadim Zeitlin
e2a0c87f1d Merge branch 'cmake-lib-dir-fix' of https://github.com/MaartenBent/wxWidgets
CMake: Fix library directory and don't use symlinks when using MinGW.

See https://github.com/wxWidgets/wxWidgets/pull/2569
2021-10-27 23:28:23 +01:00
Vadim Zeitlin
6e96c6dda0 Add "Show build environment" step
Show version of compiler and ccache being used.
2021-10-27 23:32:16 +02:00
Vadim Zeitlin
9320aeb28b Enable use of ccache for Unix CI builds
This should speed up build step for the common case when not too many
files have to be recompiled.
2021-10-27 22:58:19 +02:00
Vadim Zeitlin
b744e271e3 Create multiline controls with wxTE_RICH2 in wxTextEntryDialog
While wxMSW now turns this style on automatically if necessary, it's
still better to avoid the failure during the initial control creation,
so enable wxTE_RICH2 from the beginning in wxTextEntryDialog, where it
shouldn't result in any incompatibilities.
2021-10-27 21:41:30 +01:00
Vadim Zeitlin
d585bb1ebd Automatically turn wxTE_RICH2 for wxMSW wxTextCtrl if necessary
When creating a wxTextCtrl with the initial text which is too long to
fit into a plain EDIT, automatically create RICHEDIT instead.

This is not perfect, e.g. it still doesn't make calling SetValue() with
long text later work, but it seems to still be preferable to failing to
create the window completely, which results in many other more difficult
to diagnose problems later.
2021-10-27 21:39:37 +01:00
Vadim Zeitlin
a8c05945b4 Log the length of the window label if creating it fails in wxMSW
This can be useful in case of unexpected window creation failure, so log
it because it doesn't cost much for something that is supposed to
practically never happen anyhow.
2021-10-27 21:38:41 +01:00