Commit Graph

40280 Commits

Author SHA1 Message Date
Vadim Zeitlin
bdaca38904 Fix transferring unsigned values to the window too
In addition to not accepting "-1" as a valid unsigned value, we also
must not format unsigned values as signed ones, i.e. we need to use
wxNumberFormatter::ToString() overload taking unsigned for them.

Do it in wxIntegerValidatorBase::ToString(), used by TransferToWindow(),
and add more tests for the latter.

Also reorganize the tests in sections and use REQUIRE() for the checks
that should prevent the rest of the section from running if they fail.
2021-02-22 12:58:14 +01:00
Vadim Zeitlin
483856f3d3 Add wxIntegerValidatorBase::ULongestValueType typedef
Allow just writing ULongestValueType instead of writing #ifdefs in
several places.
2021-02-22 12:58:14 +01:00
Vadim Zeitlin
f1e6af089a Fix parsing unsigned numbers in wxIntegerValidatorBase
Use wxNumberFormatter::FromString() overload taking wxULongLong_t to
allow parsing numbers greater than LLONG_MAX.
2021-02-22 11:49:19 +01:00
Vadim Zeitlin
eb64202ad4 Add support for unsigned long long to wxNumberFormatter
This is necessary in order to deal with the numbers greater than
wxINT64_MAX that can't be represented in just long long.

It also allows to implement the intuitive handling of minus sign for the
unsigned numbers, i.e. not to accept it in FromString(), unlike the
standard functions which do (and parse -1 as 0xffff...fff).

Also extend the tests to check for more boundary cases.
2021-02-22 11:49:19 +01:00
Vadim Zeitlin
7371131f1e Fix confusion around '-' handling in numeric validators code
Actual implementation of IsCharOk() didn't correspond to the comments in
it or near the function declaration which stated that it's never called
with ch='-' as argument -- it was called with it and called IsMinusOk()
right before a comment saying that it doesn't need to do it, which was
very confusing.

Fix this by making the behaviour really correspond to the comments and
handling '-' at the base class level. This required introducing a new
pure virtual CanBeNegative() function, but it's going to be useful for
other things later too.

Still keep IsMinusOk() helper, but make it private now because it
doesn't need to be called from the derived class IsCharOk() any longer.
2021-02-21 15:13:10 +01:00
Lauri Nurmi
7eeab1bb7e Change capitalization of stock label "&CD-Rom" to "&CD-ROM"
Use standard upper case instead of strange mixed one.

Closes https://github.com/wxWidgets/wxWidgets/pull/2241
2021-02-21 00:02:06 +01:00
Artur Wieczorek
0631ee37d9 Use dedicated WIC methods to get sub-bitmap of IWICBitmap
Using IWICBitmapClipper it is possible to get a clipped version
of the source bitmap so it should be used instead of manual way
with extracting pixels to the memory.
2021-02-20 21:00:12 +01:00
Gary Allen
9b1829c300 Add wxRibbon panel border colour option
Add wxRIBBON_ART_PANEL_HOVER_BORDER_COLOUR and
wxRIBBON_ART_PANEL_HOVER_BORDER_GRADIENT_COLOUR to allow further
customization of wxRibbon panels.

Closes https://github.com/wxWidgets/wxWidgets/pull/2239
2021-02-20 13:29:33 +01:00
Artur Wieczorek
299f4543e3 Apply anti-alias mode to fonts with Direct2D
See #19049.
2021-02-19 20:22:00 +01:00
Artur Wieczorek
182cd25d7c Apply anti-alias mode to fonts with GDI+
See #19049.
2021-02-19 20:21:38 +01:00
Andriy Byelikov
ded4da5ce5 Add version suffix to gettext message catalog files
Change "make install" to install catalog files with version suffix and
modify the sources to look for suffixed catalog first, while still
falling back to just the base name if the variant with the version is
not found, because the message catalogs are copied manually in practice
under MSW/macOS systems and so won't have the version suffix there.

This allows to make message catalogs installed by different
wxWidgets versions to coexist on the same system, see
https://groups.google.com/g/wx-users/c/L9gC8UgrO6Y

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

Co-Authored-By: Vadim Zeitlin <vadim@wxwidgets.org>
2021-02-15 18:23:05 +01:00
utelle
62a760c225 Make wxStandardPaths::IgnoreAppBuildSubDirs() more permissive
Add some common architecture-dependent directories to the list of
subdirectories that should be ignored.

For Win32 the directory name x86 is also common.

For Win64 the directory names Win64 and x86_64 are frequently in use,
too.

Closes https://github.com/wxWidgets/wxWidgets/pull/2233
2021-02-15 00:36:15 +01:00
Vadim Zeitlin
d2c3c6a35b Merge branch 'msw_webview_edge4' of https://github.com/TcT2k/wxWidgets
Fix missing events for in-document navigation with wxWebViewEdge,
implement Find() for it and add wxEVT_WEBVIEW_FULLSCREEN_CHANGED for it
and wxGTK.

See https://github.com/wxWidgets/wxWidgets/pull/2227
2021-02-14 19:37:44 +01:00
Vadim Zeitlin
a6f6f5de27 Merge branch 'owner-combo' of https://github.com/MaartenBent/wxWidgets
Improve wxComboCtrl popup position and add DPI change handling.

See https://github.com/wxWidgets/wxWidgets/pull/2231
2021-02-14 19:27:13 +01:00
Vadim Zeitlin
d89d3b6851 Remove harmless unused variables warnings in non-debug build
Suppress a few -Wunused-variable and -Wunused-parameter warnings when
using --disable-debug.
2021-02-14 12:43:30 +01:00
Artur Wieczorek
70793777b6 Add missing constants
These constants are not defined in some non-MSVC environments.
2021-02-14 11:02:23 +01:00
Artur Wieczorek
cd6548c80e Use dedicated helper function to get window client area size 2021-02-14 00:13:48 +01:00
Artur Wieczorek
bce6c0911e Don't call obsolete method
ID2D1Factory::GetDesktopDpi() is reported as deprecated.
2021-02-14 00:12:47 +01:00
Artur Wieczorek
418ca872ec Fix reference count in wxD2DDeviceContextResourceHolder 2021-02-14 00:11:40 +01:00
Artur Wieczorek
0723da5168 Return proper Direct2D version if using ID2D1DeviceContext is enabled
ID2D1DeviceContext is available since Direct2D 1.1.
2021-02-14 00:10:37 +01:00
Artur Wieczorek
3c7493a289 Optimize converting native GDI+ bitmap to wxImage
Iterate through source pixels with pointer instead of array index.
2021-02-14 00:07:15 +01:00
Artur Wieczorek
2eb3a0460d Create native GDI+ representation of wxGraphicsBitmap directly from wxImage
Skip the conversion from wxImage to wxBitmap.
2021-02-14 00:05:30 +01:00
Artur Wieczorek
b86878c272 Cleanup Direct2D renderer
Move shared code to convert between wxImage amd IWICBitmap to the separate
methods.
2021-02-14 00:04:02 +01:00
Artur Wieczorek
a25e66d479 Create native D2D representation of wxGraphicsBitmap directly from wxImage
Skip the conversion from wxImage to wxBitmap.
2021-02-14 00:01:53 +01:00
Maarten Bent
e3491fc537 Create a wxDisplay directly from wxWindow 2021-02-13 21:11:18 +01:00
Maarten Bent
1e17e8f500 Improve per-monitor DPI in wxVListBoxComboPopup
Adjust the default item height before the drawing size is calculated.
2021-02-13 01:59:23 +01:00
Maarten Bent
9365df2322 Improve wxPropertyGridEditor position with multiple displays 2021-02-13 01:59:23 +01:00
Maarten Bent
01d8c1bf8e Improve wxComboCtrl popup position with multiple displays 2021-02-13 01:59:21 +01:00
YuSanka
76354fbc8d Fixed wxComboCtrlBase::ShowPopup() to show a popup control in respect to the display of the provided window instead of primary display. See issue The "Show" Dropdown list goes out of the screen #2999 (https://github.com/prusa3d/prusaslicer/issues/2999) 2021-02-13 01:56:12 +01:00
Tobias Taschner
e09063186c Provide generic wxWebView::Find() implementation
This implementation is based on javascript 'window.find()'
https://developer.mozilla.org/en-US/docs/Web/API/Window/find
It's not standard, but implemented in most browsers.

It's not a complete implementation as it can't determine how
many search results can be found.

If the backends API provides a native find interface it should be
used instead of this implementation, but it's good fallback.
2021-02-10 23:55:18 +01:00
Tobias Taschner
5512089d5b Apply suggestions from code review
Co-authored-by: VZ <vz-github@zeitlins.org>
2021-02-09 23:35:01 +01:00
Tobias Taschner
a3f85e9cd5 Implement wxEVT_WEBVIEW_FULLSCREEN_CHANGED in GTK 2021-02-09 22:28:29 +01:00
Tobias Taschner
1aad333ab9 Don't send wxWebViewEdge cancel event on veto
When vetoing a wxEVT_WEBVIEW_NAVIGATING a wxEVT_WEBVIEW_ERROR was send
this was unexpected and unnecessary.
2021-02-09 22:28:29 +01:00
Tobias Taschner
f6a23a0431 Add wxEVT_WEBVIEW_FULLSCREEN_CHANGED event
The event is triggered by wxWebView when the page requests fullscreen view.

It's currently only implemented for the edge backend.
2021-02-09 22:28:29 +01:00
Tobias Taschner
fea23a0be4 Handle in-document navigation with wxWebViewEdge
Send EVT_WEBVIEW_NAVIGATING, EVT_WEBVIEW_NAVIGATED and EVT_WEBVIEW_LOADED
when an anchor is clicked within a document. This kind of navigation
cannot be vetoed.

Fixes: #19074
2021-02-09 17:55:37 +01:00
Gary Allen
2da5129e13 Allow customizing all tool colours in wxRibbonMSWArtProvider
A number wxRIBBON_ART_TOOOL_XXX constants were not taken into account by
GetColour() and SetColour() for some reason, even though the class did
have the corresponding member colour variables.

Fix this by simply adding cases for them to the existing switch.

Closes https://github.com/wxWidgets/wxWidgets/pull/2225
2021-02-09 15:03:34 +01:00
Artur Wieczorek
279ee715fd Fix creating wxCairoBitmapData from wxImage with mask
If source wxImage has a mask we need to create ARGB32 Cairo surface (even
for RGB image) and based on the mask values set the alpha values to fully
transparent or retain original values.
2021-02-09 00:14:12 +01:00
Artur Wieczorek
e74cc53775 Fix creating CGImage from wxBitmap
For internal purposes wxBitmap with mask should be converted to CGImage
with alpha values only (with no mask). This is i.a. needed to assure
compatibility of wxGraphicsBitmap format with other ports where these
bitmaps are in pure ARGB format.
2021-02-08 18:56:10 +01:00
Vadim Zeitlin
d4e5adf5d6 Merge branch 'webview_misc' of https://github.com/TcT2k/wxWidgets
More wxWebView miscellaneous improvements.

See https://github.com/wxWidgets/wxWidgets/pull/2221
2021-02-08 13:50:25 +01:00
Vadim Zeitlin
26eb738562 Merge branch 'drop-msw-it.po'
Remove platform-specific translations.

This is unnecessarily complicated for the single string that we
currently use this for, so just handle it specially.

Also some other minor translation-related improvements.

See https://github.com/wxWidgets/wxWidgets/pull/2213
2021-02-08 12:50:43 +01:00
Tobias Taschner
1cd0904260 Fix mixed line breaks in webview sources 2021-02-08 11:27:49 +01:00
Dimitri Schoolwerth
3123c76394 Fix grid multicell integrity after inserting/deleting rows/columns
Deal with possible size changes of a multicell (both main and inside
cells) when inserting or deleting rows or columns and, in the case of
deletion only, the disappearing of a multicell's main cell.

Closes #4238.
2021-02-07 22:59:02 +01:00
Dimitri Schoolwerth
04a3dda5c5 Refactor common wxGridCellAttrData::UpdateAttrRows/Cols code
Move two symmetrical functions into one and clean up, preparing it for
multicell support.
2021-02-07 22:59:02 +01:00
Tobias Taschner
8a9db461ff Implement wxWebView::GetVersionInfo() for macOS
Return the operating system version as the WebKit
version used by WKWebView is bound to the OS.
(Also works for iOS)
2021-02-07 22:14:18 +01:00
Tobias Taschner
334872e726 Notify WebView2 API when minimizing a window with wxWebView
As suggested by the ICoreWebView2Controller documentation
call put_isVisible() when the window containing the
wxWebViewEdge is minimized/restored.
2021-02-07 21:48:02 +01:00
PB
623e6a4fc3 Make wxWebViewEdge visible after creating
Fixes: #18851
2021-02-07 21:33:28 +01:00
Vadim Zeitlin
e539cb69bb Remove platform-specific translations support
As shown by the fact that no other platform-specific translations were
ever added since the initial version of locale/msw/it.po added way back
in 4d931bcca0 (Translate '&Help' to '&' for italian Windows only,
2005-08-12), this is not especially useful, so just handle this
particular case specially in wxGetStockLabel() and remove support for
platform-specific translations.

This allows to simplify the makefiles and the catalog loading code as
there is no need to deal with the files in subdirectories any more.
2021-02-07 00:06:21 +01:00
Artur Wieczorek
5b52a8646b Use IWICBitmap to cache bitmap in wxD2DBitmapResourceHolder (Direct2D)
IWICBitmap is more native than wxBitmap so it should better represent
the internal state of D2DBitmap.
2021-02-06 21:43:46 +01:00
Paul Cornett
28d1ddec90 Set layout direction for wxClientDC
Should have been part of
62c119fa1e (Fix RTL mirroring for wxClientDC, etc with GTK3, 2021-02-06)
2021-02-06 12:31:14 -08:00
Paul Cornett
62c119fa1e Fix RTL mirroring for wxClientDC, etc with GTK3
The changes to the Cairo context must be done before wxGC::CreateFromNative()
is called, otherwise they will be overwritten
2021-02-06 08:28:13 -08:00