Go to file
Dimitri Schoolwerth a7b9dc121b Fix recent regression with drawing themed multi-line text
Remove conditions from MSW themed text drawing that prevent multi-lines
from being rendered properly and instead always use DT_TOP alignment
for multi-lines.

This fixes a regression occurring since 90ba137f20 (Work around text
extent differences resulting in clipped text, 2021-07-26) with themed
Vista+ :

Non-top aligned multi-line text gets rendered as a single line because
of DT_SINGLELINE being used if the height of the drawing rect and
multi-line text happen to be equal. This occurs on the "Variable line
height" page of the dataview sample, which calculates its cell height
by multiplying the text extent by the number of lines in the text (a
requirement with wxMSW, not wxGTK).

Removing the conditions also exposes top aligned multi-line themed text
to drawing beyond the drawing rect, which actually makes it behave more
like wxGTK and wxOSX as well as wxMSW non-themed drawing as they try to
render text fully without regard for the bounds of the drawing rect.

Closes https://github.com/wxWidgets/wxWidgets/pull/2470
2021-08-20 21:29:57 +02:00
.github Expand self-hosted Mac M1 CI build workflow 2021-08-20 19:42:35 +02:00
3rdparty Fix tests compilation with glibc >= 2.34 2021-08-05 23:03:20 +02:00
art
build CMake: update Info.plist variables 2021-08-17 22:33:45 +02:00
demos Use CMake-compatible variable names in configure Info.plist files 2021-08-15 18:39:34 +02:00
distrib Remove setup0.h files 2021-01-31 19:02:56 +01:00
docs Merge branch 'generic-initial-state-fixes' 2021-08-20 21:28:35 +02:00
include Merge branch 'generic-initial-state-fixes' 2021-08-20 21:28:35 +02:00
interface Merge branch 'generic-initial-state-fixes' 2021-08-20 21:28:35 +02:00
lib Add support for PCRE2 for OpenVMS 2021-08-20 10:00:17 +02:00
locale Fix errors and inconsistent terms in zh_TW translations 2021-07-19 14:46:51 +02:00
misc CMake: update Info.plist variables 2021-08-17 22:33:45 +02:00
samples removing erroneously readded plist files in last commit 2021-08-18 07:43:54 +02:00
src Fix recent regression with drawing themed multi-line text 2021-08-20 21:29:57 +02:00
tests Merge branch 'generic-initial-state-fixes' 2021-08-20 21:28:35 +02:00
utils Use CMake-compatible variable names in configure Info.plist files 2021-08-15 18:39:34 +02:00
.editorconfig
.gitattributes Remove mention of .travis.yml in Git attributes file 2021-07-15 19:59:11 +02:00
.gitignore Remove obsolete libraries from .gitignore 2021-04-18 21:03:02 +01:00
.gitmodules Add PCRE submodule containing PCRE2 with wx-specific changes 2021-07-24 19:17:59 +02:00
.mailmap Use consistent name for Konstantin S. Matveyev in git log 2020-05-25 01:48:43 +02:00
acinclude.m4 Remove obsolete wxUSE_IOSTREAMH option 2019-10-21 20:46:21 +02:00
aclocal.m4 Pass options needed by it to libtiff configure only 2020-07-18 16:59:48 +02:00
appveyor.yml Remove TravisCI mentions from build scripts 2021-07-15 13:53:12 +02:00
autoconf_inc.m4 Make wxrc independent from GUI support 2021-08-06 21:51:11 +02:00
autogen.sh
CMakeLists.txt CMake: update Info.plist variables 2021-08-17 22:33:45 +02:00
config.guess Update config.{guess,sub} scripts to latest versions 2021-03-17 09:53:58 -07:00
config.sub Update config.{guess,sub} scripts to latest versions 2021-03-17 09:53:58 -07:00
configure Make wxrc independent from GUI support 2021-08-06 21:51:11 +02:00
configure.in Make wxrc independent from GUI support 2021-08-06 21:51:11 +02:00
descrip.mms workaround for which is probably a compiler-bug on OpenVMS-AXP 2021-01-07 09:47:46 +01:00
install-sh
Makefile.in Make wxrc independent from GUI support 2021-08-06 21:51:11 +02:00
mkinstalldirs
README-GIT.md Remove setup0.h files 2021-01-31 19:02:56 +01:00
README.md Use master for AppVeyor badge status instead of latest build 2021-07-28 01:30:19 +02:00
regen
setup.h_vms Don't bother checking for size_t, mode_t and off_t neither 2021-07-28 21:09:32 +02:00
setup.h.in Make wxrc independent from GUI support 2021-08-06 21:51:11 +02:00
version-script.in
wx-config-inplace.in
wx-config.in Replace hard TABs in wx-config with spaces 2020-10-06 02:14:27 +02:00
wxwidgets.props Use nicer labels for wxWidgets property sheets in MSVS UI 2021-04-14 15:44:09 +01:00
wxwin.m4 Allow specifying optional libraries with WX_CONFIG_CHECK 2019-03-11 00:44:10 +01:00

About

wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls.

wxWidgets Logo

wxWidgets allows you to write native-looking GUI applications for all the major desktop platforms and also helps with abstracting the differences in the non-GUI aspects between them. It is free for the use in both open source and commercial applications, comes with the full, easy to read and modify, source and extensive documentation and a collection of more than a hundred examples. You can learn more about wxWidgets at https://www.wxwidgets.org/ and read its documentation online at https://docs.wxwidgets.org/

Platforms

AppVeyor Github OSS-Fuzz

This version of wxWidgets supports the following primary platforms:

  • Windows XP, Vista, 7, 8 and 10 (32/64 bits).
  • Most Unix variants using the GTK+ toolkit (version 2.6 or newer or 3.x).
  • macOS (10.10 or newer) using Cocoa under both amd64 and ARM platforms.

Most popular C++ compilers are supported including but not limited to:

  • Microsoft Visual C++ 2005 or later (up to 2019).
  • g++ 4 or later, including MinGW/MinGW-64/TDM under Windows.
  • Clang under macOS and Linux.
  • Intel icc compiler.
  • Oracle (ex-Sun) CC.

Licence

wxWidgets licence is a modified version of LGPL explicitly allowing not distributing the sources of an application using the library even in the case of static linking.

Building

For building the library, please see platform-specific documentation under docs/<port> directory, e.g. here are the instructions for wxGTK, wxMSW and wxOSX.

If you're building the sources checked out from Git, and not from a released version, please see these additional Git-specific notes.

Further information

If you are looking for community support, you can get it from

Commercial support is also available.

Finally, keep in mind that wxWidgets is an open source project collaboratively developed by its users and your contributions to it are always welcome. Please check our guidelines if you'd like to do it.

Have fun!

The wxWidgets Team.