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
Vadim Zeitlin
6ae7410f55
added wxDC::Set/GetLayoutDirection() and implemented it for wxMSW (patch from Tim Kosse)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-10 08:31:23 +00:00
Robin Dunn
dbe6f5f00b
Applied second part of patch #1570448 , use the device origin for where
...
to clear
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-06 00:31:18 +00:00