Commit Graph

39788 Commits

Author SHA1 Message Date
Pavel Tyunin
28823424e9 Add wxConvAuto::GetEncoding() 2020-10-03 19:10:17 +03:00
Paul Cornett
aef3976e13 Fix WriteText() not scrolling to bottom with GTK >= 3.14
The introduction of scrollbar animations broke scroll-to-end functionality when
large amounts of text are written, due to interactions with GtkTextView's
background layout. Work around this by scrolling after the layout has finished.
See #18864
2020-10-02 11:10:14 -07:00
Eric Raijmakers
ec8bfbebdc Fix wrong step size in wxImage::Paste()
Fix a bug with wrong size passed to memset() introduced in 1f0ade29f0
(Fix using mask colour even if there is no mask in wxImage::Paste,
2020-09-30) which caused memory corruption and add a test (the one with
the large negative vertical offset) allowing to reproduce this reliably.

Closes https://github.com/wxWidgets/wxWidgets/pull/2067
2020-10-02 14:54:40 +02:00
Vadim Zeitlin
123044c68c Merge branch 'fix-caret-default'
Fix using default-constructed wxCaret.

See https://github.com/wxWidgets/wxWidgets/pull/2007
2020-10-01 02:29:43 +02:00
oneeyeman1
61ef150044 Implement GetStringSelection() in generic wxBitmapComboBox
Also update the test to avoid assuming that wxBitmapComboBox inherits
from wxComboBox, which now allows it to build (and pass) on all
platforms.

Closes https://github.com/wxWidgets/wxWidgets/pull/2057
2020-10-01 02:19:12 +02:00
Eric Raijmakers
1f0ade29f0 Fix using mask colour even if there is no mask in wxImage::Paste
In case an image without alpha is pasted on top of an image with alpha,
the alpha blending gives wrong results. This is caused by the fact that
the final (if nothing has been pasted yet) pixel copying algorithm in
Paste() does not take into account whether the pasted image actually
uses a mask.

To fix this:

- Add the check for image.HasMask().
- In case there is no mask, simply copy the image via memcpy.
- Finally, update the alpha channel of the changed image (if present):
  whenever a pixel is copied, the alpha is set to fully opaque.

Closes https://github.com/wxWidgets/wxWidgets/pull/2065
2020-10-01 02:13:28 +02:00
Ian McInerney
bf7965a2d7 Add null check in wxAuiToolBar event handler
This also prevents the AUI_TOOLBAR_BEGIN_DRAG event from
being sent if there is no active toolbar item being dragged.

Closes https://github.com/wxWidgets/wxWidgets/pull/2062
2020-09-29 03:26:26 +02:00
Artur Wieczorek
2c3c841719 Implement platform-specific coordinate conversion functions
Generic wxDC::DeviceToLogicalRel{X|Y}() and wxDC::LogicalToDeviceRel{X|Y}()
functions don't take into account scaling applied with
wxDC::SetTransformMatrix().
We need to implement in wxDCImpl and its platform-specific derivates
new conversion functions that take all applied transformations into account.

See #18923.
2020-09-27 10:38:08 +02:00
Eric Raijmakers
6e8da8641c Add alpha blending for wxImage::Paste
Add test cases for wxImage::Paste.

Closes #12458.

Co-Authored-By: Rachel Mark <kramdar@gmail.com>
2020-09-25 01:04:49 +02:00
Vadim Zeitlin
1f1a9d52d6 Merge branch 'expose-radiogroup'
Add public functions for navigating in radio button groups.

Also introduce wxRadioButtonBase defining wxRadioButton API for all
ports.

See https://github.com/wxWidgets/wxWidgets/pull/2052
2020-09-24 00:11:15 +02:00
Vadim Zeitlin
808ff104dc Don't compile wxGetSelectedButtonInGroup() if it's unused
Now that this function is static, not using it results in warnings when
building the ports not using it (e.g. wxX11).
2020-09-21 20:37:37 +02:00
Vadim Zeitlin
09060ed262 Move radio group navigation functions to wxRadioButtonBase
Now that this class is not a template any longer, we can have the code
for radio button group navigation directly in it, without making it
inline, so move the existing functions bodies into the new methods and
remove the old functions entirely.

No real changes, this is just a refactoring.
2020-09-21 18:01:47 +02:00
Vadim Zeitlin
1a4f628e40 Make radio button navigation functions const
This requires adding a couple of const_cast<>s in their implementation
in order to still allow them returning non-const wxRadioButton pointers,
but this seems preferable to not being able to call them on a const
wxRadioButton in the first place.
2020-09-21 15:36:41 +02:00
Vadim Zeitlin
b5fb9bd8d6 Compile radio button group navigation functions on all platforms
Previously they were only used, and compiled, on the platforms without
wxHAS_NATIVE_TAB_TRAVERSAL, i.e. were not compiled at all in wxGTK, but
we now need them everywhere as they're used to implement public API.
2020-09-21 15:34:55 +02:00
Vadim Zeitlin
0edc9d7eda Just use wxPrivate namespace
Writing "wxPrivate::wxFoo()" is a bit ugly, so just add a using
directive for the namespace, it's not a problem to do it in this file.
2020-09-21 15:09:38 +02:00
Pavel Tyunin
2d8d1ad9d0 Fix cropping detection for cells with custom font 2020-09-21 11:27:42 +02:00
Pavel Tyunin
ca1e086225 Show units in tooltips 2020-09-21 11:27:42 +02:00
Pavel Tyunin
4c11ab63c1 Fix cropping detection for properties with choice item-specific images 2020-09-21 11:27:42 +02:00
Pavel Tyunin
3d41fa1ac4 Fix cropping detection when wxPG_BOLD_MODIFIED is enabled 2020-09-21 11:27:42 +02:00
Pavel Tyunin
949cda937d Improve cropping detection for properties with images
Take into account images in >2 columns and custom sized images
2020-09-21 11:27:42 +02:00
Pavel Tyunin
47d8299c70 Make wxPG_TOOLTIPS work for >2 columns too 2020-09-21 11:27:42 +02:00
Pavel Tyunin
7d83c6cfe0 Take wxPG_XBEFORETEXT and splitter into account for cropping detection 2020-09-21 11:27:42 +02:00
Pavel Tyunin
e4607a243e Take subgroup margin into account when checking for property label cropping 2020-09-21 11:27:42 +02:00
Pavel Tyunin
075d964eae Fix wxPropertyGrid string cropping detection (wxPG_TOOLTIPS)
splitterHitOffset is only initialized when the mouse is near the splitter.
2020-09-21 11:27:42 +02:00
PB
198635ad68 Fix linking issue with wxCmpNatural() in static build
wxCmpNatural() had "inline" function specifier in a .cpp file
which made the function inaccessible outside that file in static builds.

Fix this by removing "inline", the function character is such that the
overhead by a function call should have negligible impact on its
performance.

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

Closes #18919.
2020-09-20 18:21:23 +02:00
Vadim Zeitlin
43249151dd Merge branch 'aui-no-tooltips'
Hide tooltips when style wxAUI_TB_NO_TOOLTIPS is set.

See https://github.com/wxWidgets/wxWidgets/pull/2048
2020-09-20 18:19:30 +02:00
Vadim Zeitlin
466f72a16c Avoid claling FindToolByPositionWithPacking() needlessly
This is a micro-optimization after the previous commit: don't call
FindToolByPositionWithPacking() at all rather than calling it and then
ignoring its result if wxAUI_TB_NO_TOOLTIPS style is set.

This commit is best viewed ignoring whitespace.
2020-09-20 18:18:36 +02:00
Paul Cornett
7d11dd20d4 Replace some floating point expressions with equivalent integer ones 2020-09-18 12:10:40 -07:00
Paul Cornett
7298070ab0 Avoid formatting integers as floating point 2020-09-18 10:57:23 -07:00
Paul Cornett
1912528acb Avoid formatting literal zeros as floating point 2020-09-18 10:53:14 -07:00
Stefan Csomor
200c1af697 Going private with the implementations
Although they’re still exported of course …
2020-09-17 23:13:44 +02:00
Paul Cornett
dcdcbbe078 Fix wxDataViewCheckIconTextRenderer icon size with GTK3 2020-09-17 09:29:30 -07:00
Artur Wieczorek
4b10b4f5e2 Use dedicated function to round values 2020-09-17 13:44:15 +02:00
Jouk
5274d2d647 Add src/gtk/image_gtk.cpp for compilation in OpenVMS makefile 2020-09-17 09:37:12 +02:00
Paul Cornett
b376d1402b Add support for HiDPI bitmaps to wxDataViewBitmapRenderer with GTK3 2020-09-16 11:33:13 -07:00
Paul Cornett
85d63c3150 Add a class derived from GtkImage to support HiDPI bitmaps
And use it to get HiDPI support wherever we use GtkImage. This extends and
consolidates support for custom drawing of images which has already been added
somewhat redundantly in several places.
2020-09-15 11:52:03 -07:00
Ian McInerney
cb04c35365 OSX: Fixes for readonly text fields (#2049) 2020-09-15 08:21:47 +02:00
Ian McInerney
932b9ca62f Hide tooltips when style wxAUI_TB_NO_TOOLTIPS is provided 2020-09-14 21:49:43 +01:00
Artur Wieczorek
014bd2ae54 Implement platform-specific coordinate conversion functions
Generic wxDC::DeviceToLogical{X|Y}() and wxDC::LogicalToDevice{X|Y}()
functions don't take into account transformations applied with
wxDC::SetTransformMatrix() so conversion results are invalid if wxDC is
transformed with both e.g. wxDC::SetUserScale() and
wxDC::SetTransformMatrix().
We need to implement functions in wxDCImpl and its platform-specific
derivates to do this conversion with taking into account all applied
transformations.

See #18916.
2020-09-13 23:47:26 +02:00
Stefan Csomor
bc9e7b71e7 macOS wxNativeFontInfo changes (#2045)
* adding native font descriptor serialization = v2

* remove common xml prefix from serialized string

* Update src/osx/carbon/font.cpp

Co-authored-by: VZ <vz-github@zeitlins.org>

* Update src/osx/carbon/font.cpp

Co-authored-by: VZ <vz-github@zeitlins.org>

* static string via accessor

* striping off xml preamble unconditionally

if we use a different format in the future, we will have to increase our version number

* applying italic directly to the font descriptor

thus preserving attributes in the native font descriptor which we don’t store explicitly yet

* Adding support for preserving font width

Although we don’t express this in the public API yet, we try to preserve eg condensed, when changing the font width

* Adding reference, bug fix

double checked the font weight constants,

Co-authored-by: VZ <vz-github@zeitlins.org>
2020-09-12 19:29:26 +02:00
Vadim Zeitlin
c2b1dbda83 Call GDK functions from main thread in wxGStreamerMediaBackend
This fixes another problem similar to the one fixed in be1854c617 (Avoid
UI functions in non-main thread in wxGStreamerMediaBackend, 2020-09-02)
and does it in a similar way: SetupXOverlay(), which calls gdk_flush(),
was called from gst_bus_sync_callback() which is executed in the worker
thread, so use CallAfter() to call it from the main thread later.
2020-09-02 23:24:05 +02:00
Vadim Zeitlin
e4333fdeac Fix recurrent typo in "usable"
This word has a single "e".
2020-09-02 20:49:39 +02:00
Vadim Zeitlin
bf71a70a12 Merge branch 'updateui-ischeckable'
Add a flag to wxUpdateUIEvent to tell if the item supports the check
action.

See https://github.com/wxWidgets/wxWidgets/pull/2027
2020-09-02 19:34:05 +02:00
Vadim Zeitlin
1db3751235 Merge branch 'macos11-preferences' of https://github.com/vslavik/wxWidgets
Update wxPreferencesEditor to add support for macOS 11.

See https://github.com/wxWidgets/wxWidgets/pull/2040
2020-09-02 19:26:41 +02:00
Vadim Zeitlin
eb8c48a481 Merge branch 'macos11-fix-ui-fonts-handling' of https://github.com/vslavik/wxWidgets
Fix system UI font handling on macOS 11.

See https://github.com/wxWidgets/wxWidgets/pull/2034
2020-09-02 19:24:26 +02:00
Scott Talbert
be1854c617 Avoid UI functions in non-main thread in wxGStreamerMediaBackend
In aa2cd42206 (Report video size changes to the media backend,
2016-02-22), a couple of calls to NotifyMovieSizeChanged() were added,
presumably for a good reason.  Unfortunately, NotifySizeChanged() makes
UI calls on wxGTK, so this resulted in UI calls happening on a non-main
thread because many of GStreamer's callbacks occur on arbitrary threads.
This is bad because it caused random X11 crashes.

Fix this by calling NotifyMovieSizeChanged() with CallAfter().

Closes https://github.com/wxWidgets/wxWidgets/pull/2042
2020-09-02 19:22:46 +02:00
Paul Cornett
05a134d985 Build fix for GDK_WINDOWING_WAYLAND not defined
Add some missing GDK_WINDOWING_WAYLAND wrappers.
Also some minor changes to includes.
2020-09-01 08:14:58 -07:00
Scott Talbert
7cd12a2bd6 Add EGL-based backend for wxGLCanvas
Among other things, this enables wxGLCanvas to be used natively on
Wayland.

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

Closes #17702.
2020-09-01 15:03:30 +02:00
Vadim Zeitlin
ed4b9e5f97 Merge branch 'mac-native-focus-ring' of https://github.com/vslavik/wxWidgets
Draw wxTextCtrl focus ring natively on Mac.

Add wxWindow::EnableVisibleFocus() to explicitly control the focus ring
visibility if necessary.

See https://github.com/wxWidgets/wxWidgets/pull/2037
2020-09-01 14:59:42 +02:00
Rob McKay
94e8129f3f Explicitly specify application class in wxiOS
Although @"UIApplication" is supposed to be used by default anyhow,
passing "nil" is reported to result in an assertion failure in
'_UIApplicationGetPrincipalClass' when running under the iOS 13.1
simulator, so pass this string explicitly.

Closes https://github.com/wxWidgets/wxWidgets/pull/2035
2020-09-01 14:57:29 +02:00