Commit Graph

95 Commits

Author SHA1 Message Date
Vadim Zeitlin
8b72652a28 Make results of wxDC::DrawEllipticArc() consistent across all platforms.
And also consistent with wxGraphicsContext method with the same name.

Document the rules determining what is drawn.

Closes #4437.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-11 01:02:14 +00:00
Paul Cornett
c808bbb4d7 update code to match 3.0 branch after r78023
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-15 16:56:17 +00:00
Stefan Csomor
c69051e476 forwarding printing calls to graphics context as well
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-04 16:35:23 +00:00
Vadim Zeitlin
2098cafcad Implement bounding box computations for wxGDDC.
Update the bounding box in all the methods drawing something. This wasn't
done before in many of them, resulting in the bounding box remaining empty,
but it is updated now and a new test checking that it is was added.

Closes #12904.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-26 01:34:50 +00:00
Vadim Zeitlin
a380c1e46f Add public wxDegToRad() and wxRadToDeg() functions.
Define these functions just once in wx/math.h instead of duplicating them in a
dozen of places.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-17 12:29:15 +00:00
Stefan Csomor
012ccdf8a5 adding support for multi-line text in rotated text, fixes #16216
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-29 18:22:54 +00:00
Vadim Zeitlin
332952a18c Always initialize values returned from wxGDDC::GetChar{Width,Height}().
Don't return garbage in case of error.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-22 22:40:03 +00:00
Vadim Zeitlin
c4e312efb9 Exclude wxMSW-specific code from compilation under other platforms.
Compilation fix after r75648, see #13328.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-19 14:14:18 +00:00
Vadim Zeitlin
322fc32b82 Fix alpha channel values when using wxGCDC with wxMemoryDC in wxMSW.
Ensure that 32bpp bitmaps selected in wxMemoryDC use DIB for their internal
representation as GDI+ functions don't seem to work correctly with DDBs with
alpha channel.

Closes #13328.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-19 13:15:52 +00:00
Vadim Zeitlin
bd30752410 Just deprecate but don't schedule for removal wxNORMAL and friends.
Deprecate the use of the old untyped constants but don't schedule them from
removal in a future wx version by removing "#if WXWIN_COMPATIBILITY_3_0" tests
around their definition and use. Provoking deprecation warnings in the code
using these constants is worth it as they are unclear and it's easy to make
mistakes when using them, but breaking this code compilation outright can't be
justified -- even in the future.

Also use more informational wxDEPRECATED_MSG() instead of a simple
wxDEPRECATED() as it might not be obvious at all how should the code be
updated exactly.

Finally, avoid the use of deprecated constants inside the library itself.

As a side effect, this closes #15814.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-06 12:42:37 +00:00
Vadim Zeitlin
a49d3f4161 Fix tons of warnings in wxMSW after deprecating wxPen/wxBrush int styles &c.
Replacement of FUTURE_WXWIN_COMPATIBILITY_3_0 with WXWIN_COMPATIBILITY_3_0 in
r75532 resulted in tons of warnings as all code using wxSOLID and similar
constants now uses the deprecated methods taking int instead of the preferred
ones taking wx{Pen,Brush}Style (and similarly for wxFont{Style,Weight,Family}).

Fix all of them but this also would seem to mean that this change might not be
such a good idea at all.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-04 22:20:36 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Stefan Csomor
ec2df34e27 use correct scale when drawing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74299 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-27 05:54:51 +00:00
Stefan Csomor
d2bb4c8653 formatting
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-25 12:26:11 +00:00
Paul Cornett
4787c92d39 use const arrays for wxDC array parameters, closes #10712
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-18 17:27:51 +00:00
Vadim Zeitlin
332afcdb2f Make GetClippingBox() work for wxPrinterDC in wxGTK.
GetClippingBox() implementation relies on wxDCImpl::m_clip[XY][12] being
updated in DoSetClippingRegion() but this wasn't done here. Fix this by adding
the code to do this to the base class version of this method and calling it
from wxGtkPrinterDCImpl.

Also, refactor wxGCDCImpl to reuse the same code instead of duplicating it.

Closes #14697.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-14 14:55:32 +00:00
Paul Cornett
38ae64e696 remove unused OSX includes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-02 16:37:09 +00:00
Paul Cornett
0c4438d26e Fix wxGCDC::Clear() for Cairo, and possibly MSW.
Maximum positive coordinate Cairo can handle is 2^23 - 1.
Also convert coordinates to logical so it works right with modified origin or scale.
See #14529


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-02 16:25:14 +00:00
Robin Dunn
9eefb5c14a Adding wxDC::GetHandle for wxOSX-cocoa and wxOSX-carbon
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-28 19:31:03 +00:00
Paul Cornett
f30b9eed38 avoid creating and immediately destroying a wxGraphicsContext when creating a wxDC with wxGTK3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72073 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-13 16:58:37 +00:00
Paul Cornett
8bcf695ecd remove code in SetFont which modifies font for no apparent purpose
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-11 07:05:55 +00:00
Paul Cornett
e7042ce73b Avoid creating and immediately destroying a wxGraphicsContext for most uses of wxGCDC.
This also causes the dummy "measuring context" to be properly initialized with a default font


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-11 06:36:38 +00:00
Vadim Zeitlin
12ca260575 Clear larger area in wxGCDC::Clear().
Clearing a rectangle of size 32000 was not always enough to clear the entire
DC, so use INT_MAX instead -- this is the best we can do with the current
approach.

Closes #13445.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-02 15:05:39 +00:00
Stefan Csomor
a9946c4e6b removing unnecessary - and incorrect - override, fixes #14319
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-19 14:24:13 +00:00
Stefan Csomor
38274d1de3 avoiding potential mismatch between true and expected state of wxGraphicsContext because it might have been changed through its direct API meanwhile, fixes #14226
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-17 16:57:12 +00:00
Vadim Zeitlin
be6b31f34f Restore the correct brush in wxGCDC::GradientFill() methods.
Both GradientFillLinear() and GradientFillConcentric() changed the brush on
the underlying wxGraphicsContext but didn't restore the default brush back.

Closes #14131.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-29 23:43:43 +00:00
Paul Cornett
be88fea9ea adjust Blit destination rect if source rect is clipped
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-08 17:06:06 +00:00
Stefan Csomor
9c17ca3fe6 avoid accepting an invalid color, ignore it, as other ports do, fixes #13720
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-09 15:23:37 +00:00
Robin Dunn
82614b1a72 Don't always use the Cairo context for wxGCDC(wxMemoryDC). If a Cairo context is wanted then the wxGCDC(wxGraphicsContext*) ctor should be used instead. (I thought I had removed this code with my last commit of this file...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69217 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-29 07:28:04 +00:00
Robin Dunn
932d0768aa * Implement dynamic loading of the Cairo DLL on Windows similar to how it was
done for GDI+.

* Enable the use of the wxCairoContext on MSW.

* Enable creating a wxGCDC from an exisiting wxGraphicsContext.

* Since it's possible for a DLL that is using wx to not be on the PATH nor in
  the same location as the .exe, change the wxDynamicLibrary::RawLoad method to
  explicitly look first in the same place as the main wx-using binary.  This way
  it will find DLLs that are in the same folder as the wx-using binary even if
  that would not be in the normal DLL search path.  

* Change wxDCImpl and wxDC::GetLogicalScale to be const methods.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-27 23:26:53 +00:00
Paul Cornett
d0f93bc7dc Avoid creating rect with negative size while clipping to DC size.
Also, don't convert result of wxDC::GetSize() to device coords, it's already device coords.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-16 07:02:37 +00:00
Vadim Zeitlin
2d770c4f82 Added wxGCDC(wxEnhMetaFileDC) ctor too.
Make it possible to create wxGCDC associated with a metafile DC in wxMSW too.

Closes #13326.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-19 22:35:41 +00:00
Vadim Zeitlin
53d4bdbc15 Add wxDCImpl::MSWApplyGDIPlusTransform() to formalize wxRendererMSW hack.
Replace the dynamic_cast<> used in wxMSW wxRenderer implementation code with a
virtual function call.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-07 13:05:22 +00:00
Vadim Zeitlin
6c0e710f00 Make wxGCDC::GetGraphicsContext() const.
There is no reason for this accessor to not be const and it prevents other
methods using it from being const too, so change this.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68179 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-07 13:05:16 +00:00
Vadim Zeitlin
fec4e45897 Add wxCOMPOSITION_INVALID mode and use it to simplify the code.
Having an invalid element in wxCompositionMode enum allows to directly return
it from TranslateRasterOp() function instead of needing a separate bool
parameter to indicate that a ROP couldn't be translated.

This also incidentally fixes warnings about possibly uninitialized variables
in optimized g++ builds.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-02 10:29:11 +00:00
Stefan Csomor
a6afde630c support multiline strings using the same workaround as msw, fixes #13019
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-01 19:07:16 +00:00
Dimitri Schoolwerth
d13b34d3f2 No code changes, fixed various typos.
Applied patch by snowleopard2 fixing typos in interface/. Extended the fixes throughout trunk.

Closes #13076.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67384 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-03 20:31:32 +00:00
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
Dimitri Schoolwerth
4c51a665c6 Fixed various typos.
Applied patch by snowleopard2 fixing a bunch of typos such as misspellings and double words in the documentation. Combined the patch with some local queued typos waiting to be committed as well as adding new typo fixes inspired by the patch.

Function names with American spelling were not changed nor was third-party code touched. The only code changes involve some changes in strings that are translated ("Can not" -> "Cannot").

Closes #13063 (again).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 14:17:38 +00:00
Dimitri Schoolwerth
80fdcdb90e No changes, synchronised source names that appear commented at the top of files with the actual path to the files.
Fixed commented names (path, filename, and extension) of files in include/ and src/. Prepended the names in src/ with "src/" everywhere, while starting those in include/wx/ with "wx/".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-20 00:14:35 +00:00
Dimitri Schoolwerth
6636ef8ddf Use wxString's empty() when checking if the string is (non-)empty throughout wx.
Instead of constructs such as if "( s.length() )" and "if (s.length() > 0)" use "if ( !s.empty() )" instead. Similarly for "if (s.length() == 0)" or "if ( s.IsNull() )", use "if ( s.empty() )".
No code changes intended except for a few instances where a construct like "if ( s.length() && wxFileExists(s) )" was changed to not check the length of the string and let wxFileExists handle such cases.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-22 14:38:36 +00:00
Stefan Csomor
cb98e78b1e fixing iterator comparison
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-01 11:06:16 +00:00
Stefan Csomor
954c66fafc changing compositing mode for Clear, see #12756
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-11 11:48:38 +00:00
Vadim Zeitlin
584be856d1 Don't test possibly uninitialized variable in wxGCDC::SetLogicalFunction().
The variable "mode" is not filled by TranslateRasterOp() function if the input
function is not supported, so don't compare it with wxCOMPOSITION_XOR later.
Just compare "function" itself with wxXOR as this works in any case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-22 14:16:22 +00:00
Kevin Ollivier
d9edff064d Create a text measuring context until a real context is assigned, this allows things like text measurement code using wxMemoryDC to work on Mac.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63050 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-03 22:52:04 +00:00
Kevin Ollivier
c0e69d720d Forward port of r60190 (wxMSW Cairo support) to trunk.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-18 19:05:42 +00:00
Stefan Csomor
502113941d switching to explicit flush mode, otherwise clientdc destruction lead to contention in customrenderers in osx
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-24 19:22:40 +00:00
Vadim Zeitlin
8462a84b2c Removed wxFont::Set/GetNoAntiAliasing() implementations.
Most of them were dummy and didn't do anything and this API was never meant to
be used anyhow.

Keep just the declarations in wxFontBase but mark them as deprecated.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-09 13:04:59 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +00:00
Stefan Csomor
65bd7f79c8 supporting SetFont(wxNullFont), fixes #10980
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-10 14:24:01 +00:00