Previously, wxUSE_STL enabled both implicit conversion of wxString to
std::[w]string and use of standard containers for the implementation of their
wx equivalents. Split up the two roles now by allowing to enable the use of
the standard containers independently of (backwards incompatible) implicit
conversion in wxString and actually enable wxUSE_STD_CONTAINERS by default.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add a new wxDC method allowing to retrieve the font characteristics not
available from GetTextExtent(), notably the internal leading (and also the
average font width).
Currently this is implemented for wxMSW only, the internal leading is always 0
in the other ports.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Using GetStyle() == wx{PEN,BRUSH}STYLE_TRANSPARENT doesn't work for
uninitialized pen or brush objects so add convenient helpers which do work for
them.
Use the new helper functions everywhere instead of explicitly checking for
style. This makes the code shorter and more clear and also fixes some bugs (at
least those in GTK printing code).
Notice that this patch removes the main reason for explicitly initializing
m_pen and m_brush in wxGTKDCImpl ctor but this initialization still can't be
removed, at least for the latter, as doing this somehow breaks GetPixel(). It
would be nice to understand why and do remove this initialization so that a
newly created DC doesn't have any non-default pen nor brush.
Closes#12522.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Native wxMSW wxDC::DrawText() implementation doesn't support multi-line
strings so use the generic wxDC::DrawLabel() code instead. Drawing multi-line
strings now works at least in wxGTK and wxMSW, to be tested for the other
platforms.
Closes#12239.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65058 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
A micro-optimization: avoid ::GetTextMetrics() call if we don't use its
results (as is the case if neither descent nor external leading were
requested).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Check that m_pen is valid before checking if it is transparent in
DoDrawRoundedRectangle() too (this was already done in DoDrawRectangle() in
r53150).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Doing this had noticeable (and bad) performance implications so cache the
value of the option during the first call. This doesn't allow changing its
value during the program execution so we may want to provide some way to
update its value later if really needed.
Closes#11172.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
They don't explicitly use a bitmap but MSDN still says that their origin
should be set to align brushes used on different windows.
Closes#11072.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
and thus removed all the duplicated code in all wxDC
classes.
Problematic is that wxSVGFileDC and wxPostscriptDC inherit
from wxDC and therefore include platform specific code
(also before this change) so I chose to override all
SetLogicalOrigin() etc. methods in these classes and
call their wxDCBase methods thereby circumventing the
platform dependent code.
I'm afraid the Mac code will require updating, too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
virtual and implement them like any other method
in the wxDC classes, not only in the their files
but somehow belonging to the wxDCBase class.
This is required for plugging in differnt DC backends
with different conversions.
Ideally (and absolutely possible ) all these methods
should be removed and just the one in wxDCBase
should stay using values set in the various
derived classes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
the bitmap to ensure that no other bitmaps are modified; also remove some code
duplication by introducing wxMemoryDCBase (patch 1580745)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42755 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775