Commit Graph

40797 Commits

Author SHA1 Message Date
Vadim Zeitlin
214381c0cd Fix bug with having multiple default buttons in wxMSW dialogs
We need to reset the default button using DM_SETDEFID too, otherwise
calling DM_SETDEFID later, when setting the new default button, seems to
restore BS_DEFPUSHBUTTON on the previous default button (but only if its
ID is positive, which probably explains why this bug went unnoticed for
so long), resulting in having 2 buttons with BS_DEFPUSHBUTTON in the
dialog.

Closes #19245.

This commit is best viewed ignoring whitespace-only changes.
2021-08-19 18:10:36 +01:00
Stefan Csomor
841bc00f0c setting font name when using SetFamily on macOS
fixes https://trac.wxwidgets.org/ticket/19210
2021-08-18 07:23:04 +02:00
Tobias Taschner
a756ed93c2 wxWebViewEdge: Improve wxEVT_WEBVIEW_LOADED
Previously the edge event ContentLoading was used which was
triggered earlier than DOMContentLoaded. This event wasn't
available in earlier SDK versions.

Minimum required SDK version is now:
1.0.705.50 (Released 2021-01-25)

Fixes #19202

See https://github.com/wxWidgets/wxWidgets/pull/2468
2021-08-17 23:50:13 +02:00
Vadim Zeitlin
6f372ad18a Merge branch 'harmonize-info-plist'
Modernize and make consistent all the different Info.plist files in the
repository.

See https://github.com/wxWidgets/wxWidgets/pull/2466
2021-08-17 23:48:14 +02:00
Vadim Zeitlin
5d0b3c1129 Merge branch 'univ_textctrl_fixtest' of https://github.com/Kvaz1r/wxWidgets
Fix multiple problems in wxUniv wxTextCtrl, allowing it to pass more
unit tests.

See https://github.com/wxWidgets/wxWidgets/pull/2447
2021-08-17 23:47:03 +02:00
Vadim Zeitlin
b66656fbec Merge branch 'dvd-revert-performance-breaking-commits' of https://github.com/vslavik/wxWidgets
Revert recent changes to wxDataViewCtrl which resulted in unacceptable
performance regressions.

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

See #14939, #19003.
2021-08-15 19:00:45 +02:00
Vadim Zeitlin
14d8548349 Merge branch 'misc-render-fixes' of https://github.com/discnl/wxWidgets
Fixes for rendering text with bottom/right alignment for wxMSW and not
only.

See https://github.com/wxWidgets/wxWidgets/pull/2446
2021-08-15 18:57:04 +02:00
Vadim Zeitlin
a69af310ad Use CFBundleLocalizations in internant sample Info.plist only
Remove this bundle key from the generic Info.plist files as it's not
really useful there because none of our samples except "internat" is
localized.

So just add a special Info.plist for this sample and add values
corresponding to all the languages for which we have translations to its
CFBundleLocalizations.
2021-08-15 18:39:34 +02:00
Vadim Zeitlin
81c4fa449b Use CMake-compatible variable names in configure Info.plist files
This will allow reusing them for CMake as well, and is required in order
to be able to do it as CMake variables names are fixed.
2021-08-15 18:39:34 +02:00
Vadim Zeitlin
245e83f657 Add fields from Xcode iOS template to the file used by configure
Propagate the changes of b0de14a614 (modify according to current Xcode
iOS templates, 2021-08-11).
2021-08-15 16:56:24 +02:00
Vadim Zeitlin
1ca29b6721 Update copyright years in Info.plist files used by configure
Also update inc_year script to update them automatically the next time,
to prevent them from becoming 3 (for one, or 13 for the other one) years
out of date again.
2021-08-15 16:56:24 +02:00
Vadim Zeitlin
5965d08819 Remove obsolete keys from our Info.plist files
Don't use CFBundleSignature, it was only needed for Classic Mac OS
compatibility. Similarly, LSRequiresCarbon was used to distinguish the
"new" Carbon applications from the Classic ones and is not needed any
longer.

CSResourcesFileMapped might still be used, but it's just an optimization
and we don't need it and it's just a s gratuitous difference with the
template used by Xcode, so remove it too.
2021-08-15 16:56:24 +02:00
Vadim Zeitlin
d34bf409db Use plist version 1.0 for Info.plist used by configure too
Remove an inconsistency with the Info.plist used by Xcode and CMake.
2021-08-15 16:56:24 +02:00
Vadim Zeitlin
b769bd32e8 Reorder keys in Info.plist files used by configure
Just put the keys in the same order as the one used in Xcode template
and samples/minimal/Info_cocoa.plist based on it (which is almost
alphabetical order, except for LSMinimumSystemVersion which comes after
NSPrincipalClass at the very end for whatever reason).

No real changes.
2021-08-15 16:56:24 +02:00
Václav Slavík
8d4ab94500 Use -1 as uninitialized value for m_expanderWidth
Use -1, not 0, for the not-yet-computed value. Prevents CPU-intensive
recomputation when the calculated size _is_ zero - e.g. because the
column is hidden.
2021-08-10 20:04:50 +02:00
Václav Slavík
8081477a43 Revert "Mac: Fix truncation of images in wxDataViewCtrl"
This reverts commit d2fc88c03d.
2021-08-10 19:18:35 +02:00
Václav Slavík
2d302cf143 Revert "Fix expansion of the last column in macOS wxDataViewCtrl"
This reverts commit 7555d1b245 and 2a4c52a414.
2021-08-10 19:18:03 +02:00
Václav Slavík
4d62a7a08f Revert "Autosize the right columns in macOS wxDataViewCtrl"
This reverts commit 36ea7ff4d6.
2021-08-10 19:13:16 +02:00
Václav Slavík
5f34d07bc1 Revert "Fix sizing of temporarily last columns in macOS wxDataViewCtrl"
This reverts commit c9221fd538.
2021-08-10 19:12:53 +02:00
Dimitri Schoolwerth
accd43d76e Remove unnecessary calls to wxRound from wxImage code
No real changes: In wxImage::Rotate() don't needlessly wxRound numbers
that are already whole after having called ceil/floor.

Occurred since inception in 7a632f1056 (Added rotation to wxImage,
2000-02-06).

See https://github.com/wxWidgets/wxWidgets/pull/2460
2021-08-09 16:30:57 +02:00
Dimitri Schoolwerth
90ba137f20 Work around text extent differences resulting in clipped text
Under at least some versions of Windows 10 with wxDVC themed text can be
clipped horizontally because of discrepancies between the text extent
as drawn by DrawThemeTextEx() and calculated with GetTextExtent()
earlier.

Work around the issue by always trying to use GetThemeTextExtent() in
DrawItemText(), not just for alignment of multi-line strings, and adjust
for any width differences similar to the existing adjustment for height.

See #18487.
2021-08-08 20:21:31 +02:00
Dimitri Schoolwerth
ebf1141db2 Improve text extent rounding in wxGCDCImpl::DoGetTextExtent()
Change wxGCDCImpl::DoGetTextExtent() from rounding to the nearest
integer to rounding up: if e.g. height is 15.3 then 16 pixels should be
used for height, and not 15. Rounding was previously improved from
casting (which appears to be the initial code) in 0417955ddb (adding
correct filling area to arc, correct rounding and clipping, 2007-10-21).

Issues with nearest rounding became more visible after off-by-one fixes
for wxDC::DrawLabel() with wxALIGN_RIGHT and wxALIGN_BOTTOM positioning.
When using e.g. wxALIGN_RIGHT with a width of 72.4 the text could now be
drawn beyond the extent on the right because the text is not offset by
one to the left any longer.
2021-08-08 20:21:31 +02:00
Dimitri Schoolwerth
9dd88e0159 Undo removal of text alignment for wxDataViewCtrl's RenderText()
Revert e2e7d3d391 (Fix wxELLIPSIZE_END with wxALIGN_RIGHT in wxMSW
wxDataViewCtrl, 2016-03-18). This fix is no longer needed after
the previous commit reverted b642747fd2.

Reverting also allows for text to be drawn vertically aligned again
instead of always using top-left alignment. While the difference in
appearance by not having alignment can be minor with default row
heights, it becomes more noticeable with taller rows:
a wxDataViewCheckIconText column with a tall icon will have its text
stuck to the top of a row while other columns have their text vertically
centered. This already occurs by default when not explicitly specifying
an alignment (wxDVR_DEFAULT_ALIGNMENT) which results in
wxALIGN_CENTRE_VERTICAL being used for row alignment when rendering.
2021-08-08 20:21:31 +02:00
Dimitri Schoolwerth
7a8b210dff Undo mimicking faulty wxDC::DrawLabel() wxALIGN_RIGHT positioning
Revert b642747fd2 (Fix right aligned text position in wxDVC on MSW with
system theme, 2015-09-30) which in wxRendererXP::DrawItemText() mimicks
the off-by-one with right alignment of wxDC::DrawLabel() that got fixed
by the previous commit.

There's not a similar change copying wxDC::DrawLabel()'s former
off-by-one behaviour with wxALIGN_BOTTOM that would need reverting.

Both alignments now result in the same text positioning with both
drawing functions.
2021-08-08 20:21:31 +02:00
Dimitri Schoolwerth
d83d126959 Fix off-by-ones with bottom and right aligned positioning
wxDC::DrawLabel() positions the text one to the left with wxALIGN_RIGHT
alignment and one up with wxALIGN_BOTTOM alignment. The same occurs in
wxControlRenderer::DrawBitmap() for bitmaps. Both off-by-ones exist
since inception in respectively 4d3c4c2f94 and bc60c3d699.

This fix vertically aligns wxALIGN_BOTTOM drawing of wxDC::DrawLabel()
with themed text drawing through wxRendererXP::DrawItemText().
2021-08-08 20:21:31 +02:00
Dimitri Schoolwerth
b8af267bf9 Fix centered vertical and bottom aligned themed text drawing
When using non-TOP vertical alignment with wxRendererXP::DrawItemText()
either DT_VCENTER or DT_BOTTOM gets passed to DrawThemeTextEx() but
without the DT_SINGLELINE flag which is required for those alignment
flags to take effect, resulting in text always being top aligned.

Fix by passing DT_SINGLELINE when using either alignment, but only for
single lines as multi-lines are rendered as a single line with invisible
newline character. Draw multi-line text using top alignment and deal
with vertical alignment ourselves, using GetThemeTextExtent() to get
an accurate extent of the text.
2021-08-08 20:21:31 +02:00
Dimitri Schoolwerth
1eb7150309 Correct slightly misleading comment
Comment in wxRendererXP::DrawItemText() could be interpreted as
DrawThemeTextEx() being available for some XP editions but it is Vista+
only, so correct it.
2021-08-08 20:21:31 +02:00
Dimitri Schoolwerth
771ebfa9a9 Add wxDataViewCtrl debug option to display render bounds
For debugging convenience define DEBUG_RENDER_EXTENTS to draw a red
rectangle around a custom rendered cell's full rectangle, and a green
rect for the extent of the item appearing inside it. Custom renderers
ordinarily should not draw outside of the green rect. A notable
exception is drawn text, particularly multi-line ones.
2021-08-08 20:21:30 +02:00
Kvaz1r
656b0b85c6 Fix With wxTE_PROCESS_ENTER and wxTE_MULTILINE without skipping 2021-08-08 00:23:04 +03:00
Kvaz1r
15c5125572 Refactoring 2021-08-07 22:34:56 +03:00
Kvaz1r
b8d9ac9a32 Revert MSW-specific changes for wxTextCtrl tests in wxUniv 2021-08-07 11:03:03 +03:00
Kvaz1r
e3acc50fbc Improve wxTE_PROCESS_ENTER handling in wxUniv 2021-08-07 10:42:22 +03:00
Kvaz1r
5d1a936f73 Revert "Handle WM_GETDLGCODE in wxTextCtrl for wxUniv too"
This reverts commit af8b662868.
2021-08-07 09:40:26 +03:00
Vadim Zeitlin
b9261597bf Merge branch 'msw-combo-keys'
Fix behaviour of comboboxes in presence of accelerators in wxMSW.

See https://github.com/wxWidgets/wxWidgets/pull/2443
2021-08-06 20:29:20 +01:00
Vadim Zeitlin
1e37f6e5ff Provide information in wxListEvent for generic virtual wxListCtrl
This wasn't done since the changes of c1c4c5516c (fixed unwanted owner
data accesses in virtual list ctrl, 2001-08-07), but there doesn't seem
to be any reason to avoid accessing the item in SendNotify() (any more?)
and if we ever did generate events for all the items in a virtual list
control, this would be already a problem, even if we didn't access the
line info from here.

So just revert the check for !IsVirtual() and always fill the item in
the generated event to make the behaviour of the generic version
consistent with the MSW one and slightly more useful.

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

Closes #19235.
2021-08-06 21:28:24 +02:00
Vadim Zeitlin
c7ed88af7c Move comment in wxOSX wxToolBar code to a more logical place
No real changes, just move the comment in front of the line it
documents.
2021-08-06 21:22:08 +02:00
Vadim Zeitlin
ce48d01e8a Fix missing item labels in wxToolBar overflow menu under macOS
Always set the label, even when not using wxTB_TEXT style, as otherwise
the items shown in the native "overflow" menu use empty strings as
labels and so can't be distinguished at all.

This undoes part of the changes of 1f7cd4807f (Don't show labels for
toolbars showing icons only in wxOSX, 2016-02-23), but they don't seem
necessary any longer, i.e. calling SetToolShortHelp() doesn't show the
toolbar label when using non-native toolbars, so #16669 remains fixed.

Closes #19226.
2021-08-06 21:17:51 +02:00
Vadim Zeitlin
d8fe06891e Avoid bool argument in wxListMainWindow::RecalculatePositions()
Use 2 separate functions instead to make the code more clear, as passing
false for indicate the refresh shouldn't be done was quite confusing.

Also get rid of a separate RefreshAll() which was called only from
RecalculatePositions().

No real changes.
2021-08-06 21:09:29 +02:00
Vadim Zeitlin
36e9576d42 Fix not refreshing wxListCtrl properly under macOS
Refresh() called from inside wxEVT_PAINT handler doesn't seem to have
any effect, so use CallAfter() to call it slightly later instead.

Closes #19139.
2021-08-06 21:05:49 +02:00
David Connet
233c487dfd Fix direction of mouse wheel zoom in print preview
Make zooming work the same as in all the other programs rather than
zooming in/out in the reverse direction.

Closes #19215.
2021-08-06 19:34:19 +02:00
Vadim Zeitlin
09cbec0373 Allow calling wxListCtrl::SetImageList() before Create() in wxMSW
This already worked with the generic version, but silently failed with
wxMSW, so make it work with wxMSW too as it doesn't cost much and makes
wxListCtrl behave in the same way under all platforms.

Also document that SetImageList() can be used before the window is
created.
2021-08-04 21:09:04 +01:00
Vadim Zeitlin
232a3ab577 Allocate more space for the wxRegEx error message buffer
We need to account for the trailing NUL explicitly here, so add 1 to the
length returned by the first call to wx_regerror() to avoid chopping off
the last character of the error message.
2021-08-04 01:29:44 +02:00
Kvaz1r
af8b662868 Handle WM_GETDLGCODE in wxTextCtrl for wxUniv too 2021-08-02 10:05:37 +03:00
Kvaz1r
f7f6575bfb Fix positions tests 2021-08-01 11:33:03 +03:00
Vadim Zeitlin
a4d06b6c88 Explicitly include wx/scopedptr.h when using wxScopedPtr
Don't rely on it being implicitly included from other headers.
2021-08-01 00:43:31 +01:00
Dimitri Schoolwerth
a4cdbdb779 Fix disappearing wxDVC cell items if cell background is set
With both GTK 2 and 3 if a wxDVC cell has a background colour attribute
set then wxDataViewCustomRenderer::RenderText() sets the cell's
background property. With wxDataViewCheckIconText this results in items
drawn prior to the text to be painted over.

Reproducible using the dataview sample which on the MyListModel page
uses a background cell colour for the first column of odd-indexed rows.

Fix by drawing the text first, followed by the checkbox and possible
icon as before. There appear to be no other custom renderers in wx which
draw multiple items and may have needed fixing as well.

This commit is best viewed with git --color-moved option.

Closes https://github.com/wxWidgets/wxWidgets/pull/2449
2021-07-30 00:50:55 +02:00
Vadim Zeitlin
62c776c17c Merge branch 'regex-pcre'
Implement wxRegEx using PCRE2.

See https://github.com/wxWidgets/wxWidgets/pull/2438
2021-07-27 17:47:31 +02:00
Artur Wieczorek
ea04c72754 Revert "Store clipping box coordinates in device units in wxWindowDCImpl, wxGTKDCImpl"
This reverts commit 95f1b262a4 ("Store clipping box coordinates in
device units in wxWindowDCImpl, wxGTKDCImpl", 2021-07-26) because
device coordinates can be used to determine final clipping box
coordinates more accurately only if current logical coordinates
are not stored directly in the corresponding variables of the base
class wxDCImpl.
2021-07-27 17:25:30 +02:00
Artur Wieczorek
eb055dba71 Store clipping box in device units only if it's set with wxDCImpl::DoSetClippingRegion
If derived class sets clipping region in a legitimate way by call to
DoSetClippingRegion() instead of directly storing logical coordinates
of the box in the internal variables we can store coordinates in
device units to determine final logical coordinates more reliably even
in case when coordinate transformations were applied to DC
in the meantime.
2021-07-27 17:14:50 +02:00
Kvaz1r
5bc725f505 Set insertion point to 0 in SetValue for multiline 2021-07-27 10:50:24 +03:00