Commit Graph

71104 Commits

Author SHA1 Message Date
Vadim Zeitlin
1799922d0e Implement EmptyUndoBuffer() for wxTextCtrl in wxMSW too
The relevant code was already present in MSWCreateText(), so just
extract it into its own function.
2021-08-20 16:58:38 +01:00
Dan Korn
3c9bb69d6e Add wxTextCtrl::EmptyUndoBuffer()
This is implemented for multi-line controls under macOS only currently.
2021-08-20 17:27:51 +02:00
Dan Korn
9b27eaad43 Handle standard Cmd-{Y,Z} key combinations in Mac wxTextCtrl
Use them to undo and redo, as expected.
2021-08-20 16:59:41 +02:00
Stefan Csomor
4fcd18e6ea Use a private undo manager for wxTextCtrl
This allows each control have its own undo history, independent of the
other ones, as expected by the wx API, rather than using an undo manager
shared by all controls in the same TLW.
2021-08-20 16:59:41 +02:00
Dan Korn
6c292d264c Implement undo and redo for wxTextCtrl under Mac
Use the parent undo manager to implement these functions.
2021-08-20 16:58:22 +02:00
Stefan Csomor
7501deb5fe removing erroneously readded plist files in last commit
841bc00f0c contained inadvertently the state before the harmonize plist PR was merged
2021-08-18 07:43:54 +02: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
6448a29e25 Always define old names for grid event constants and macros
It doesn't cost us anything to define the compatible names, and there is
no real advantage for the existing application code in using the new
names, so define them without WXWIN_COMPATIBILITY_X_Y checks around
them, to avoid forcing unnecessary changes in the application code when
upgrading to wx 3.2.0.

This commit is best viewed ignoring whitespace-only changes.
2021-08-17 23:47:43 +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
Maarten Bent
2e12779a21 CMake: update Info.plist variables
Use the same values as in build/bakefiles/mac_bundles.bkl.
Use the correct copyright year for in the Info.plist files.
2021-08-17 22:33:45 +02:00
Maarten Bent
4862cbd4c6 CMake: Allow to specify specific Info.plist.in file for samples 2021-08-17 21:50:48 +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
1fbda84306 Exclude Info.plist files from whitespace checks
These files use TABs for indentation, so the standard check doesn't work
for them (and it doesn't seem worth having a special check just for
them neither, so simply don't check them at all).
2021-08-15 18:39:34 +02:00
Vadim Zeitlin
d7e102f766 Reuse Info.plist used by configure for CMake too
The CMake-specific file is almost identical to the file used by
configure now, so don't keep both of them when just one could do.
2021-08-15 18:39:34 +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
518c04cd55 Add "Copyright" to CMake copyright variable
This is used for NSHumanReadableCopyright Info.plist field and should
have "Copyright" for consistency with the other Info.plist files.
2021-08-15 16:56:24 +02:00
Vadim Zeitlin
b7f2e4d423 Fix apparent typo in MACOSX_BUNDLE_BUNDLE_VERSION variable name
The documented name of the bundle version variable has BUNDLE twice, see

https://cmake.org/cmake/help/latest/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.html

and samples/Info.plist.in uses this variable, but we set
MACOSX_BUNDLE_VERSION instead, which seems wrong, so use the apparently
correct variable name instead.
2021-08-15 16:56:24 +02:00
Vadim Zeitlin
64de37cf9d Normalize whitespace in mac_bundles.bkl file
No real changes, just remove hard TABs and trailing spaces.
2021-08-15 16:56:24 +02:00
Vadim Zeitlin
77ba012141 Add NSPrincipalClass to docview sample Info.plist
This is needed for high DPI support.
2021-08-15 16:56:24 +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
bb767e0ebc Remove apparently unused Info.plist in docview sample
Only Info.plist.in is used by configure and it doesn't hardcode the
version, so there is no need to update it there.
2021-08-15 16:56:24 +02:00
Vadim Zeitlin
fc3eedd2c3 Use the same DOCTYPE for CMake Info.plist as for the others
Copy DOCTYPE used in Xcode template.
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
Blake Madden
cb6db10199 Small typos in docs 2021-08-15 08:03:37 -04:00
Vadim Zeitlin
7b5783e4f8 Restore accidentally removed EVT_GRID_CMD_RANGE_SELECT macro
This was removed in 415f080c80 (Split wxGrid RANGE_SELECT event into
SELECTING and SELECTED, 2020-07-27) without preserving it for
compatibility. Do define it now, just as it was done for the non-CMD
equivalent of this macro EVT_GRID_RANGE_SELECT.

Also update the documentation to fix a typo from e2f316b19d (Mention
that wxEVT_GRID_RANGE_SELECT{ED,ING} are new in 3.1.5, 2020-08-18).
2021-08-14 01:10:14 +02:00
Stefan Csomor
61b0b9f421 lifting deployment_target to correct supported minimal macOS version 2021-08-12 14:32:32 +02:00
Stefan Csomor
2eed2e3b12 adding PCRE2 to Xcode projects 2021-08-12 14:17:39 +02:00
Stefan Csomor
00277531ed Adapting to current Xcode template 2021-08-11 19:38:53 +02:00
Stefan Csomor
b0de14a614 modify according to current Xcode iOS templates 2021-08-11 19:33:51 +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
Artur Wieczorek
8ca8c01356 Run all clipping region tests against wxClientDC 2021-08-08 21:54:40 +02:00
Artur Wieczorek
3ca74039da Add test of setting size of the window client area 2021-08-08 21:42:38 +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