Commit Graph

40684 Commits

Author SHA1 Message Date
Kvaz1r
0a241d2dfc Don't send events for non-item 2021-07-13 11:38:39 +03:00
Kvaz1r
c345205396 Fix wxListBox HitTest in wxUniv 2021-07-13 11:11:39 +03:00
Kvaz1r
9028ae74fc Fix and simplify wxRadioButton handling in wxUniv
Reuse common functions that work correctly, while wxUniv-specific
version of the code didn't pass RadioButton::Single unit test.

Closes https://github.com/wxWidgets/wxWidgets/pull/2430
2021-07-11 21:57:46 +02:00
Kvaz1r
4f7f7a9ce1 Don't send event when adding first page to wxNotebook in wxUniv
Make behaviour consistent with the other ports and fix failure in
wxNotebook::AddPageEvents unit test with wxUniv.

Closes https://github.com/wxWidgets/wxWidgets/pull/2426
2021-07-11 12:56:20 +02:00
Vadim Zeitlin
49d799fcd3 Merge branch 'renderer-fix'
Miscellaneous wxRenderer-related fixes, notably fixing regressions
introduced by 0112a2dd1b (Merge branch 'renderer', 2021-07-06).

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

Closes https://github.com/wxWidgets/wxWidgets/pull/2420
2021-07-10 23:59:09 +02:00
Maarten Bent
75d508b6e6 Fix regression in sizes of buttons with bitmaps in wxMSW
After changes in 53eff92ea7 (Call AdjustForBitmapMargins() only once in
wxAnyButton, 2021-04-24) only the margin was accounted for, not the
image size.

Closes https://github.com/wxWidgets/wxWidgets/pull/2421
2021-07-10 23:35:10 +02:00
Vadim Zeitlin
cd8fea8056 Fix infinite recursion when resizing a TLW in wxUniv/MSW
Don't use wxClientDC in WM_NCCALCSIZE handler as creating it results in
another WM_NCCALCSIZE in wxUniv due to the call to DoSetClippingRegion()
in its wxClientDCImpl::InitDC().

Using simple WindowHDC is also a small performance gain and is all that
we need as we just need some HDC for this window and should have
probably been done like this even back in a047aff270 (Added
wxBORDER_THEME..., 2007-08-07) in which handling WM_NCCALCSIZE was
added.

Closes #19221.
2021-07-10 13:03:46 +01:00
Maarten Bent
170631ff93 Renderer theme with EXPLORER::LISTVIEW is not always available
It works in the render sample, but not in the dataview sample.
Fallback to using LISTVIEW if EXPLORER::LISTVIEW results in an invalid hTheme.
2021-07-08 20:46:52 +02:00
Vadim Zeitlin
07e80803da Merge branch 'grid-resize-fixes'
Fix spurious asserts about invalid drag row/column index in wxGrid.

See https://github.com/wxWidgets/wxWidgets/pull/2413
2021-07-06 14:28:53 +02:00
Vadim Zeitlin
0685086a7b Merge branch 'univmenucapture19208' of https://github.com/Kvaz1r/wxWidgets
Fix handling mouse capture in wxUniv menus.

Avoid crashing on losing it unexpectedly.

See https://github.com/wxWidgets/wxWidgets/pull/2407
2021-07-06 14:23:36 +02:00
Marc Jessome
a052557af3 Add wxKeyEvent::IsAutoRepeat()
The new method is currently supported in Qt, Cocoa, MSW ports (i.e. all
major ones except for wxGTK).

Keyboard example updated with a "Repeat" column.

Closes https://github.com/wxWidgets/wxWidgets/pull/2414
2021-07-06 12:58:05 +01:00
Vadim Zeitlin
0112a2dd1b Merge branch 'renderer'
Preserve wxDC attributes (pen, brush, colours) in wxRenderer functions.

Also fix Explorer listview theme name in wxMSW renderer.

See https://github.com/wxWidgets/wxWidgets/pull/2412
2021-07-06 12:50:35 +01:00
Vadim Zeitlin
4bab6fe64f Preserve wxDC attributes in wxMac wxRenderer too
This is similar to the grand-parent commit which did the same thing for
MSW and generic renderer implementations.
2021-07-06 13:48:40 +02:00
Artur Wieczorek
7da2f989a0 Use wxPoint2DDouble in wxGCDC::DrawSpline
Code can be simplified by using wxPoint2DDouble in the calculations.
2021-07-04 22:02:20 +02:00
Artur Wieczorek
fb21a9096e Iterate over wxPointList with STL syntax in wxGCDC::DoDrawSpline
STL syntax is more readable than notation with legacy API.
2021-07-04 20:47:46 +02:00
Artur Wieczorek
07f54869cf Iterate over wxPointList with STL syntax in wxMSWDC::DoDrawSpline
STL syntax is more readable than notation with legacy API.
2021-07-04 20:43:02 +02:00
Artur Wieczorek
bdfdf82bcd Iterate over wxPointList with STL syntax in wxPostScriptDC::DoDrawSpline
STL syntax is more readable than notation with legacy API
2021-07-04 20:39:11 +02:00
Artur Wieczorek
1e2dbcbc24 Use wxPoint2DDouble in wxPostScriptDC::DrawSpline
We can simplify the code by using wxPoint2DDouble in the calculations.
2021-07-04 20:35:19 +02:00
Artur Wieczorek
9b542a965e Simplify drawing spline in wxPostScriptDC
We can produce simpler and more readable PostScript code by doing
the calculations of Bézier curve parameters in the code instead
of delegating this task to the PostScript processor.
2021-07-04 20:12:45 +02:00
Artur Wieczorek
819b11ff89 Iterate over wxPointList with STL syntax in wxDC::DoDrawSpline
STL syntax is more readable than notation with legacy API.
2021-07-04 20:06:44 +02:00
Artur Wieczorek
4423f6d256 Use wxStack instead of simulating a stack with array
We have a dedicated wxStack class so there is no need
to simulate a stack with array.
2021-07-04 19:35:48 +02:00
Artur Wieczorek
cc5bfc0fb1 Implement DrawSpline in wxSVGFileDC
Drawing Bézier curves is supported natively in SVG so these curves
should be used instead of generic wxDC implementation based on
polygonal approximation.
2021-07-04 19:22:02 +02:00
Kvaz1r
2f71702e4e Don't refresh unshown menu item 2021-07-04 18:34:39 +03:00
Vadim Zeitlin
f31a745909 Remove unnecessary c_str() from wx var arg functions arguments
Using c_str() for arguments to wxString::Printf(), Format() and
wxLogXXX() is useless since wx 2.9 days, so simply remove them.

No real changes, this is just a (long due) cleanup.
2021-07-04 15:08:13 +01:00
Vadim Zeitlin
5cac8a6918 Enforce valid drag column/row index in DoGridDragResize()
Add an assert to this function checking that the index is valid before
using it with wxGridOperations::GetLineStartPos(), and actually avoid
calling the function when this is not the case to avoid assertion
failures when wxEVT_GRID_CELL_LEFT_CLICK is handled in user code.

Also add comments clarifying the preconditions for calling various
drag-related functions.

Closes #19218.
2021-07-03 16:31:15 +01:00
Vadim Zeitlin
e70be8f82b Fix indentation in wxGrid mouse processing code
Indent "break" statements correctly and remove unnecessary braces.

No real changes.

This commit is best viewed ignoring whitespace-only changes.
2021-07-03 15:52:04 +01:00
Artur Wieczorek
b35d595e5d Check that number of points passed to wxDC::DrawSpline() is at least 2
DoDrawSpline() implementations for all ports work for the number of points
>= 2 (for 2 points there is drawn a straight line) so we need to add checks
whether this requirement is met.

See #19172.
2021-06-30 22:24:28 +02:00
Maarten Bent
46c8b608b6 Fix using LISTVIEW theme 2021-06-28 23:56:27 +02:00
Maarten Bent
d1ab1b218e Restore wxDC attributes after drawing with renderer 2021-06-28 23:56:23 +02:00
Kvaz1r
ef90e73e5a Properly refresh item after menu dismissing 2021-06-28 10:16:57 +03:00
Artur Wieczorek
a3988c8db6 Implement getting/releasing HDC in Cairo wxGraphicsContext (wxMSW) 2021-06-28 00:19:15 +02:00
Artur Wieczorek
dd7bcbd9eb Implement getting/releasing HDC in Direct2D wxGraphicsContext
See #19207.
2021-06-28 00:18:16 +02:00
Artur Wieczorek
0939130158 Refactor wxGCDC to delegate acquiring/releasing HDC to wxGraphicsContext
Instead of implementing MSW-specific code to handle HDC for GDI+ context
directly in wxGCDC delegate acquiring/releasing HDC to underlying
wxGraphicsContext. Decoupling GDI+-specific code from wxGCDC will allow
us to implement handling HDC in other graphics renderers in a clean way.
2021-06-27 23:46:21 +02:00
Kvaz1r
2209ec29f7 Add handling LEFT_UP 2021-06-27 21:50:09 +03:00
Kvaz1r
05875a76e9 Fix handling mouse capture 2021-06-26 17:11:41 +03:00
Ian McInerney
fd77020792 Fix wxChoice with items too long to fit into it in wxGTK3
Enable ellipsization to show the items reasonably well even if they're
too long to fit into the available space -- without this, just the tail
of the long items was shown and shorter items could have been not shown
at all, as only the blank part of their label was visible.

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

Co-Authored-By: Kent Tessman <kent@generalcoffee.com>
Co-Authored-By: Paul Cornett <paulcor@users.noreply.github.com>
Co-Authored-By: Vadim Zeitlin <vadim@wxwidgets.org>
2021-06-25 11:32:42 +02:00
Artur Wieczorek
ffc7c036f1 Fix acquiring HDC from wxGCDC with non-GDI+ graphics context
HDC can be acquired/released only when wxGCDC is associated with GDI+
graphics context.

Closes #19207.
2021-06-24 19:50:29 +02:00
Artur Wieczorek
36f84d0257 Add missing reference to dynamically loaded Cairo API 2021-06-24 19:48:19 +02:00
Vadim Zeitlin
2d9c9d9689 Fix handling of ampersands in wxCheckListBox under MSW
They were incorrectly interpreted as mnemonics when drawing
wxCheckListBox items, which didn't make sense and was inconsistent with
the other ports and even wxListBox in wxMSW itself.

It also affected wxRearrangeCtrl under MSW, which uses wxCheckListBox
for its implementation.

Closes #19201.
2021-06-24 14:49:08 +01:00
Vadim Zeitlin
c59ed10c2a Fix DPI change handling in wxGrid with hidden row/column labels
Don't reset the labels windows size to the default value, it should stay
as 0 because otherwise we break the invariants

	m_rowLabelWidth  != 0 <=> m_rowLabelWin->IsShown()
	m_colLabelHeight != 0 <=> m_colLabelWin->IsShown()

that the rest of the code relies on.

Closes #18904.
2021-06-24 14:40:35 +01:00
Kvaz1r
a0d67a3ca5 Remove redundant code 2021-06-14 15:10:46 +03:00
Kvaz1r
c452930615 Fix floating for resizable auitoolbars 2021-06-14 15:06:48 +03:00
Tomay
b52f00492e Fix checks for wxPalette index validity
Consistently check that the index is valid in all ports, instead of
using hard-coded 255 rather than the actual number of colours in some of
them and forgetting to check that the index is positive in others.

Closes #19198.
2021-06-11 00:23:46 +02:00
Andreas Falkenhahn
527bcb246b Fix item position in sorted generic wxDataViewCtrl
Compare the item whose value has changed with both the previous and the
next items, if any.

Closes #19194.
2021-06-11 00:16:12 +02:00
Vadim Zeitlin
80b3348c39 Use real wxAuiNotebook base class in its wxBEGIN_EVENT_TABLE()
This shouldn't really change anything, but is more appropriate and might
matter in the future if other event handlers are added to wxBookCtrlBase
event table.
2021-06-10 14:23:13 +02:00
Vadim Zeitlin
b17e7a7640 Merge branch 'aui-notebook-rtti'
Fix down-casting from wxAuiNotebook to wxBookCtrlBase.

See https://github.com/wxWidgets/wxWidgets/pull/2388
2021-06-10 01:02:01 +02:00
Vadim Zeitlin
9324c7bfdd Fix sending wxEVT_GRID_RANGE_SELECTED from Select{All,Col,Row}()
This was broken in to 682cb8355c (Replace "sendEvent" parameter in
wxGridSelection with "eventType", 2020-08-21) which changed Select() to
take wxEventType argument but still passed it "true" in a few places.

Fix this and add a unit test verifying that this works as expected.

Ideal would, of course, be to avoid implicit conversions from bool to
wxEventType but making wxEventType anything other than int, for which
such conversions are unavoidable, is too backwards-incompatible to
seriously consider.
2021-06-09 16:09:55 +02:00
Dominique Martinet
e3db863a0e wxMediaCtrl wayland support: resize video in expose_event_callback
the Move handler apparently misses some resize events, so move the
gst_player_video_overlay_video_renderer_set_render_rectangle call
to expose_event_callback.
This is kept as a separate commit because it would be more efficient
to keep it in Move once we can catch that initial size change, so
this commit can get reverted then.
2021-06-09 15:38:33 +09:00
Dominique Martinet
0080aa6086 wxMediaCtrl wayland support: disable xvimagesink on wayland
gstreamer is known to crash on xvimagesink if the main window is
wayland-native and DISPLAY is set: try to make it not load.

Also do the same for ximagesink just in case.
2021-06-09 15:38:33 +09:00
Dominique Martinet
b16aba57b1 wxMediaCtrl wayland support: place window where we want it
without this call gstreamer + gtk wayland would just draw the video over the whole window.
There might be a better way to do that
2021-06-09 15:38:33 +09:00