Commit Graph

313 Commits

Author SHA1 Message Date
Vadim Zeitlin
01871bf642 Add wxUSE_STD_CONTAINERS and turn it on by default.
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
2011-03-30 14:16:04 +00:00
Vadim Zeitlin
e29bf4b056 Add wxDC::GetFontMetrics() and implement it for wxMSW.
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
2011-02-27 12:48:13 +00:00
Vadim Zeitlin
e6777e6575 Add wx{Pen,Brush}::Is[Non]Transparent() methods and use them.
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
2010-10-15 23:46:46 +00:00
Vadim Zeitlin
a5bb451448 Allow passing multi-line strings to wxDC::DrawText(), even under MSW.
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
2010-07-23 23:32:52 +00:00
Vadim Zeitlin
247afab527 Only call GetTextMetrics() in wxDC::GetTextExtent() if necessary.
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
2009-12-18 14:47:18 +00:00
Vadim Zeitlin
1641cb376d Don't use possibly uninitialized pen in wxMSWDCImpl.
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
2009-10-05 22:56:27 +00:00
Vadim Zeitlin
7b8d24ad99 Don't query system option in every DrawBitmap() call under MSW.
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
2009-09-18 17:11:21 +00:00
Vadim Zeitlin
1dc39a1fb5 Set brush origin for hatch brushes too.
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
2009-08-05 17:25:33 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
43b2d5e7c3 Put braces around all calls to wxLogFunctions() inside an if statement.
This suppresses all the remaining g++ -Wparentheses warnings and uses consistent style everywhere.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-20 16:47:54 +00:00
Vadim Zeitlin
d8c89c487d no real changes, just extract private classes from msw/dc.cpp into a private header so that they could be reused from button owner drawing code too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-15 17:49:27 +00:00
Vadim Zeitlin
4f64fde785 no changes, just got rid of many __WXWINCE__ ifdefs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-06 22:07:03 +00:00
Vadim Zeitlin
eb72e9aa28 use COLORONCOLOR stretching mode in DrawBitmap() too (see #3400)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-05 14:58:11 +00:00
Vadim Zeitlin
4b6a582bef replace more __WXDEBUG__ occurrences with wxDEBUG_LEVEL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-22 12:53:48 +00:00
Vadim Zeitlin
36e5a9a7c4 fix (harmless) warnings in release mingw32 build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59108 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-23 21:15:45 +00:00
Vadim Zeitlin
4b87142167 correct the coordinates used for DIBs in StretchBlt() (closes #10501)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-22 23:54:05 +00:00
Vadim Zeitlin
068f78bc73 avoid integer overflow when computing the radius in DoDrawArc() (see #10494)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-22 23:49:15 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Vadim Zeitlin
088ef87dae fix MSVC warning about possibly unused variable in SetRop()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58037 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 11:56:21 +00:00
Francesco Montorsi
89efaf2b65 change generic ints to enums in wxDC (closes #9959)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-08 14:21:53 +00:00
Vadim Zeitlin
f57258724a added wxDC::GetHDC() for backwards compatibility with the existing wxMSW code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56162 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-08 16:09:09 +00:00
Vadim Zeitlin
45c6df33ec make ellipses drawn by wxDC more consistent with wxGC ones (closes #9887)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-21 22:51:31 +00:00
Vadim Zeitlin
fdaad94e75 deprecate wxDC::SetClippingRegion(wxRegion) overload and replace it with SetDeviceClippingRegion() to avoid confusion due to use of different kind of coordinates in this and other overloads of the same function; also rename wxDCImpl::DoSetClippingRegionAsRegion() to DoSetDeviceClippingRegion(); finally use bounding box of the region passed to wxDCClipper ctor to avoid interpreting coordinates differently for different ctors of the same class (see #8970)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-08 01:45:56 +00:00
Vadim Zeitlin
3fb1e0594a use wxHAS_RAW_BITMAP instead of wxHAVE_RAW_BITMAP
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-01 20:19:43 +00:00
Robert Roebling
d225267e66 Made the various logical 2 device transforms consistent with what's drawn on all platforms
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-19 12:42:11 +00:00
Vadim Zeitlin
3e9db38eaf don't override DoDrawSpline() under CE at all instead of overriding it and then always forwarding to the base class version
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53491 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-08 14:13:15 +00:00
Vadim Zeitlin
9effb77dbc removed a TODO comments, it actually doesn't seem necessary to optimize the use of MM_ANISOTROPIC
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-13 01:29:43 +00:00
Vadim Zeitlin
76f91e7741 no real changes but replace manual calls to Set{Text,Bk}Color() with matching calls to restore original colours with constructions of local wxTextColoursChanger objects which do this automatically; also renamed the old wxColourChanger class to wxBrushAttrsSetter to make it more clear what it does and reduce the risk of confusion with the new class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-12 21:48:47 +00:00
Vadim Zeitlin
23648cb34c test for pen validity before calling GetStyle() on it, this asserts now if the pen is invalid
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-12 21:07:19 +00:00
Francesco Montorsi
cb129171c2 further wxPenStyle/wxBrushStyle fixes for builds with compat off (partially by Marcin Wojdyr)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-19 18:28:04 +00:00
Vadim Zeitlin
c73e37e26b added DFCS_CHECKED to DrawCheckMark() (part of patch 1890974)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52166 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-28 02:48:51 +00:00
Vadim Zeitlin
025f7d775c don't include wx/msw/dc.h from wx/msw/private.h, this results in circular inclusion of wx/stream.h from wx/filefn.h before wxFileOffset is defined which results in compilation errors under WinCE and is bad/confusing anyhow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-24 22:32:23 +00:00
Vadim Zeitlin
2261baf7a4 restore generic DrawEllipticArc() used by CE which was lost during the great wxDC refactoring somehow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-21 16:13:39 +00:00
Vadim Zeitlin
a619d8c959 fix compilation error for wxUSE_DC_CACHEING==0; use more descriptive variables names
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-28 15:25:21 +00:00
Paul Cornett
ef94049fb7 remove unused variables, tabs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-20 06:08:35 +00:00
Robert Roebling
87d3576fdc Use IsOk() instead of Ok()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-18 10:58:56 +00:00
Vadim Zeitlin
1ee280b728 don't use FillRect() in DoDrawRectangle() but always Rectangle(); minor code cleanup in this function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-09 00:21:42 +00:00
Robert Roebling
888dde65f4 DC reorganization
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-30 13:48:22 +00:00
Vadim Zeitlin
60b0c3b4c6 unload msimg32.dll earlier (before static cleanup time) to avoid lockups when wx is used as DLL; don't use wxOnceOnlyDLLLoader for gdi32.dll as we don't need to keep this DLL loaded, it will stay in memory anyhow as we link to it statically
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-26 21:27:17 +00:00
Robin Dunn
e6d18909c9 Patch [ 1816051 ] MSW DrawEllipticArc inconsistent with other platforms
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-22 18:06:57 +00:00
Robert Roebling
b0d7707bc4 Use wxPointList instead of wxList in wxDC code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-19 14:53:55 +00:00
Vadim Zeitlin
a8ff046ba9 fixes for building wxMSW with --disbale-all-features
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-21 02:05:03 +00:00
Václav Slavík
e0a050e347 more changes to make wx compile without implicit wxString->char* conversion (for STL build)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46553 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-20 07:44:45 +00:00
Robert Roebling
04ab8b6ddf Moved all the coordinate system calculation to wxDCBase
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
2007-05-02 11:05:45 +00:00
Robert Roebling
621b83d9b3 Made device to logical and vv conversion methods
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
2007-05-01 21:28:29 +00:00
Vadim Zeitlin
c94f845b16 changed wxDC::GetTextExtent() and related methods to take const wxFont pointer, for consistency with wxWindow::GetTextExtent() and because it generally doesn't need a non-const font
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-25 01:49:47 +00:00
Václav Slavík
47b378bd88 removed extra semicolons (patch #1700459; fixes compilation with gcc's -pedantic flag)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-14 09:58:37 +00:00
Vadim Zeitlin
e3b81044ee wxDC::StretchBlit() for wxMac and wxMSW (patch 1611973)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-18 15:32:27 +00:00
Benjamin Williams
e6c46ffefb GradientFillLinear() on wxMSW now draws on the rectangle border as well, making it consistent with the gernaic version as well as wxDC::DrawRectangle()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-19 13:31:15 +00:00
Vadim Zeitlin
fea35690f1 Added wxMemoryDC::SelectObjectAsSource() and make SelectObject() unshare
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
2006-10-30 19:41:46 +00:00