Commit Graph

70572 Commits

Author SHA1 Message Date
Artur Wieczorek
032c443c42 Report failure while creating generic wxImageList with invalid image size
Native wxMSW implementation reports failure if dimensions <= 0.
2021-04-04 21:05:06 +02:00
Artur Wieczorek
51ff4ec08b Dont allow to remove from wxImageList an images with index out of range
Since ImageList_Remove() accepts -1 index as a magic number to remove all
images, we need to explicitly prevent using indices < 0 in the call.
Because wxImageList::RemoveAll() uses the trick with -1 index
to call wxImageList::Remove(-1) we also need to refactor this mehod and
call ImageList_Remove() API directly instead.
2021-04-04 21:01:43 +02:00
Artur Wieczorek
882f0a4631 Don't return a valid image from wxImageList if its index is out of range 2021-04-04 21:00:05 +02:00
Artur Wieczorek
d6443e65ee Don't store negative dimensions for images in wxImageList 2021-04-04 20:59:00 +02:00
Artur Wieczorek
2ed7355d5c Add wxImageList tests with negative scenarios (invalid sizes, indices) 2021-04-04 20:53:02 +02:00
Andreas Falkenhahn
c9221fd538 Fix sizing of temporarily last columns in macOS wxDataViewCtrl
Update the column width if it used to be the last one but isn't last one
any longer.

Closes #14939.
2021-04-04 17:48:25 +02:00
Andreas Falkenhahn
36ea7ff4d6 Autosize the right columns in macOS wxDataViewCtrl
This is related to 7555d1b245 (Fix expansion of the last column in macOS
wxDataViewCtrl, 2021-01-26) which somehow didn't apply the patch fully,
so finish applying it now.

Closes #14939.
2021-04-04 17:32:41 +02:00
tamasmeszaros
60c620c28c Fix libraries names when cross compiling on Linux using CMake
This allows using wxWidgets libraries from CMake when cross-compiling
too.

Closes https://github.com/wxWidgets/wxWidgets/pull/2291
2021-04-04 17:06:45 +02:00
Vadim Zeitlin
802c81fff7 Merge branch 'mac-search-menu-check'
Fix check items state in wxSearchCtrl menu under macOS.

See https://github.com/wxWidgets/wxWidgets/pull/2304
2021-04-04 17:04:18 +02:00
Vadim Zeitlin
c41357ed22 Skip another test using /proc and /sys when using LXC
This should have been part of the previous commit.
2021-04-04 15:35:46 +02:00
Vadim Zeitlin
051fa788ad Skip all tests using /proc and /sys in LXC containers
These tests fail in S/390 Travis CI build, so just don't run them at all
there, as we already did for a couple of tests using /proc that also
failed in other LXC-based builds.
2021-04-04 15:07:29 +02:00
Vadim Zeitlin
0a5be41f8a Avoid using uninitialized static wxString in wxOSX code
Global "sCR" and "sLF" string objects could have been not yet
initialized when wxMacConvertNewlines{13To10,10To13}() were called as
these functions can be (implicitly) used when initializing other static
objects.

Fix the problem by avoiding the use of these objects, as well of
wxString::Replace(), entirely and just iterating over the string
directly using a simple, and more efficient, for loop.

Note the use of "auto&&": a more usual "auto&" can't be used with
temporary wxUniCharRef created by dereferencing wxString iterators.
Using just "auto" would have actually worked too, but modifying a value
via a copy would seem surprising, so use "auto&&" as a hopefully
slightly more clear alternative.

Closes #19110.
2021-04-04 15:06:06 +02:00
Vadim Zeitlin
9c1c4817db Remove unused senderWindow argument of wxMenu::HandleCommandXXX()
This parameter isn't used anywhere, so just remove it to simplify the
code.
2021-04-04 14:29:34 +02:00
Vadim Zeitlin
0f1d1d2ae9 Update wxSearchCtrl popup menu state after showing it
Fix the state of the check/radio items in the menu by updating the
template used by macOS to create the actual menu after showing it and
possibly changing the items state.

This is not ideal because changing the state from the program, e.g.
using wxMenuItem::Check(), still doesn't work correctly, i.e. isn't
reflected in the menu when it's shown, but better than nothing until a
better solution (which ideally would update the menu just before showing
it, but it's not clear how exactly can we do it, knowing that we don't
get wxEVT_MENU_OPEN for this menu neither) can be found.
2021-04-04 14:21:27 +02:00
Vadim Zeitlin
5f482e15ab Merge branch 'osx-set-color-without-font'
Set colour without changing font in wxOSX.

See https://github.com/wxWidgets/wxWidgets/pull/2278
2021-04-04 14:19:39 +02:00
Vadim Zeitlin
31bcf15209 Merge branch 'launch-httpbin'
Fix multiple problems with using "pip install httpbin".

Closes https://github.com/wxWidgets/wxWidgets/pull/2303
2021-04-04 14:18:22 +02:00
Ian McInerney
6c9f9af7fc Minor updates to the wxSizer docs
Don't mention inexistent "recursive" parameter of GetItem() overload not
taking it.

Closes https://github.com/wxWidgets/wxWidgets/pull/2302
2021-04-04 14:17:41 +02:00
Vadim Zeitlin
0bc1dbf218 Use user mode for pip upgrade
This is default for some platforms, but not everywhere, so use it
explicitly.

This should fix the error in Travis CI S/390 build.
2021-04-04 14:16:30 +02:00
Vadim Zeitlin
7112582f18 Show events from wxSearchCtrl menu in the widgets sample
Verify that we get the expected events from the menu items.
2021-04-04 13:48:37 +02:00
Vadim Zeitlin
ee5a8096bd Install pip if it's not available at all
This is not supposed to happen, but somehow it does on Travis CI, so try
to remedy this by installing pip via apt if it's missing.
2021-04-04 01:53:29 +02:00
Vadim Zeitlin
21c97d155a Show pip version used for installing httpbin in the logs 2021-04-04 01:45:01 +02:00
Vadim Zeitlin
5498668514 Don't use broken pip version 20.0
Pip continues to impress with version 20 being completely broken and not
running at all.

Try the next one, which is supposed to fix this bug.
2021-04-04 01:43:50 +02:00
Vadim Zeitlin
c7961fa666 Don't upgrade pip to a version which is too new
Amazingly, updating a package has no problems with installing a newer
version incompatible with the current Python version, such as installing
pip 21 when using Python 3.5.
2021-04-04 01:43:50 +02:00
Vadim Zeitlin
d5d28e639e Attempt to make pip install actually work by upgrading it first
Old pip versions don't work when used with python3, so upgrade pip
before trying to use it.
2021-04-04 01:43:12 +02:00
Vadim Zeitlin
da0f6bd2a6 Use Python 3 for running httpbin in non-Trusty Linux CI builds
Even Ubuntu 16.04 has Python 3 and pip3, so just use them instead of
trying to work around problems with Python 2.
2021-04-04 01:25:04 +02:00
Vadim Zeitlin
2b89215eec Extract function for launching httpbin into its own file
Allow reusing it between GitHub and Travis CI.

Also show httpbin log in Travis CI logs too, not just on GitHub.
2021-04-04 01:00:35 +02:00
Vadim Zeitlin
996469115b Fix httpbin installation with Python 2 for GitHub CI too
This is the same as b78508615a (Explicitly install decorator 4.4.2 as
httpbin dependency, 2021-04-03) for Travis CI.
2021-04-03 23:42:54 +02:00
Vadim Zeitlin
9f1dc5ffff Merge branch 'macos_webview_clipboard' of https://github.com/TcT2k/wxWidgets
Improve/Fix web view clipboard handling under macOS.

See https://github.com/wxWidgets/wxWidgets/pull/2294
2021-04-03 23:23:52 +02:00
Vadim Zeitlin
d85d22c067 Merge branch 'msw-datepick-size'
Fix wxDatePickerCtrl best size in wxMSW when using wxDP_ALLOWNONE.

See https://github.com/wxWidgets/wxWidgets/pull/2297
2021-04-03 22:17:52 +01:00
Vadim Zeitlin
7603e2b7ce Another attempt to fix httpbin in Travis CI Trusty build
Somehow installing decorator==4.4.2 worked a few times, but then stopped
and now fails with

	Could not find a version that satisfies the requirement
	decorator==4.4.2 (from versions: )

	No matching distribution found for decorator==4.4.2

Try using explicit URL.
2021-04-03 23:17:39 +02:00
Vadim Zeitlin
0af8d6b95a Fix size of 0-width pen for wxPrinterDC in wxGTK
Don't apply scale to the fixed line width used for 0-width pens.

Closes #17056.
2021-04-03 23:17:39 +02:00
Stefan Csomor
41bf57fee3 guard against SDK < 10.12 2021-04-03 22:40:08 +02:00
Stefan Csomor
5452d7235e adding missing framwork to CMake 2021-04-03 22:32:34 +02:00
Paul Cornett
334cf1cc91 Take HiDPI scale into account for wxGCDC 0-width pen
See #19077, #19115
2021-04-03 13:03:56 -07:00
Stefan Csomor
5628a4a334 adding Big Sur update fix
see #19111
(include linking against QuartzCore which contains the kCAContentsFormatRGBA8Uint reference)
2021-04-03 21:12:54 +02:00
Vadim Zeitlin
78b272c1df Merge branch 'fix-httpbin-travis'
Fix Travis CI failures due to httpbin dependency update.

Closes https://github.com/wxWidgets/wxWidgets/pull/2301
2021-04-03 20:01:35 +02:00
Vadim Zeitlin
b78508615a Explicitly install decorator 4.4.2 as httpbin dependency
The latest version doesn't work with Python 2 any more and installing it
breaks Travis CI builds still using Python 2.
2021-04-03 19:41:55 +02:00
Vadim Zeitlin
6aac8fcf1f Don't use lsb_release under non-Linux platforms in Travis script
Avoid the error about command not being found.
2021-04-03 19:36:44 +02:00
Artur Wieczorek
ba588fd072 Take into account scale actor while resizing the image in generic wxImageList
Too small image needs to be resized to the required physical size first
and next converted to wxBitmap with actual scale factor.
2021-04-03 18:56:29 +02:00
Artur Wieczorek
b6d305e4f2 Assure that all images in the generic wxImageList have the same scale factor
Mixing images with various scale factors could be misleading and error
prone.
2021-04-03 18:54:32 +02:00
Daniel Kulp
eb52e86553 Take into account scale factor of images added to wxImageList
Closes #19114.
2021-04-03 18:54:32 +02:00
Stefan Csomor
767de514c1 fixing update area being to big
see #19111
2021-04-03 18:30:57 +02:00
Ian McInerney
ae902a88ef Add doc section on wxFileName symlink behavior 2021-04-01 20:32:55 +01:00
Ian McInerney
53bd1391f4 Add a new wxFileName function to resolve symlinks to absolute paths 2021-04-01 20:32:08 +01:00
PB
152a2079b4 Fix example code in wxArtProvider docs
Add a missing ampersand to the third parameter of overridden
CreateBitmap(), to make it clear it is a reference.

Also add semicolons after methods declarations.

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

Closes #19125.
2021-03-31 03:04:49 +02:00
PB
b9f22fc633 Replace wxEvtHandler::Connect() with Bind() in the docs
In the docs, replace mentions of wxEvtHandler::Connect() with
wxEvtHandler::Bind(), mostly to match the actual code but also
because Bind() is the recommended way to dynamically bind events.

Closes https://github.com/wxWidgets/wxWidgets/pull/2298
2021-03-31 03:04:49 +02:00
Gérard DURAND
41d36f7011 Update French translations
Closes #19123.
2021-03-28 03:30:17 +02:00
Vadim Zeitlin
a244059934 Avoid using DTM_GETIDEALSIZE with DTS_SHOWNONE
This message is completely broken when DTS_SHOWNONE is used, it returns
wrong result (less than the size without DTS_SHOWNONE) initially and
completely wrong results after a DPI change.

Create a temporary date time picker control without DTS_SHOWNONE and
call DTM_GETIDEALSIZE for it instead. This is wasteful, but at least
returns correct results.

This commit is best viewed ignoring whitespace-only changes.
2021-03-28 03:22:17 +02:00
Ian McInerney
da8c851949 Don't document wxSysColourChangedEvent as being MSW-only
The docs mentioned this event as being Windows only, but it is also
generated on macOS and GTK now.

Closes https://github.com/wxWidgets/wxWidgets/pull/2296
2021-03-28 03:06:28 +02:00
Vadim Zeitlin
aa50c6d829 Further improve best size of wxDatePickerCtrl with wxDP_ALLOWNONE
Compute the best size more precisely to be exactly compatible with the
control appearance when not using wxDP_ALLOWNONE. This unfortunately
requires hardcoding an arbitrary constant in DoGetBestSize().

Patch used for testing this code for future reference:

diff --git a/samples/minimal/minimal.cpp b/samples/minimal/minimal.cpp
index 470e765423..a1d5fb9938 100644
--- a/samples/minimal/minimal.cpp
+++ b/samples/minimal/minimal.cpp
@@ -26,6 +26,8 @@
     #include "wx/wx.h"
 #endif

+#include "wx/datectrl.h"
+
 // ----------------------------------------------------------------------------
 // resources
 // ----------------------------------------------------------------------------
@@ -175,6 +177,28 @@ bool MyApp::OnInit()
     CreateStatusBar(2);
     SetStatusText("Welcome to wxWidgets!");
 #endif // wxUSE_STATUSBAR
+
+    auto sz = new wxBoxSizer(wxVERTICAL);
+    auto addDPC = [this, sz](int style)
+    {
+        sz->Add(new wxDatePickerCtrl(this, wxID_ANY, wxDefaultDateTime,
+                                     wxDefaultPosition, wxDefaultSize, style),
+                wxSizerFlags().Right());
+    };
+
+    addDPC(wxDP_DROPDOWN | wxDP_ALLOWNONE | wxDP_SHOWCENTURY);
+    addDPC(wxDP_DROPDOWN | wxDP_SHOWCENTURY);
+    addDPC(wxDP_DROPDOWN | wxDP_ALLOWNONE);
+    addDPC(wxDP_DROPDOWN);
+
+    sz->AddSpacer(10);
+
+    addDPC(wxDP_SPIN | wxDP_ALLOWNONE | wxDP_SHOWCENTURY);
+    addDPC(wxDP_SPIN | wxDP_SHOWCENTURY);
+    addDPC(wxDP_SPIN | wxDP_ALLOWNONE);
+    addDPC(wxDP_SPIN);
+
+    SetSizerAndFit(sz);
 }
2021-03-27 21:55:13 +01:00