Commit Graph

83 Commits

Author SHA1 Message Date
Vadim Zeitlin
a95f35b07a Remove font scaling from wxMSW wxGraphicsContext.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-09 22:07:25 +00:00
Vadim Zeitlin
0a470e5ea5 Allow creating wxGraphicsBitmap and wxGraphicsContext from wxImage.
Provide a way to use wxGraphicsContext to draw on wxImage.

This is implemented internally by drawing on wxGraphicsBitmap which can be now
also created from wxImage.

Add a test of the new functionality to the image sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-09 22:07:22 +00:00
Vadim Zeitlin
12493a5fb8 Refactor wxGDIPlusFontData ctor to allow using it without wxGDIPlusContext.
wxGDIPlusFontData only needs wxGDIPlusContext to get the font unit to use, so
pass the font unit directly to the ctor to allow also using it when there is
no context at hand.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69357 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-09 22:07:18 +00:00
Vadim Zeitlin
645f9bd377 Simplify and rationalize wxGDIPlusContext class constructors.
Remove the now unnecessary default ctor from wxGDIPlusContext and
wxGDIPlusMeasuringContext and add a ctor taking just wxGraphicsRenderer that
can be useful to the derived classes instead.

Merge Init() and SetDefaults() and initialize everything at once in the new
Init() now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69356 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-09 22:07:16 +00:00
Vadim Zeitlin
364197e882 Don't make private wxGraphicsContext-derived classes dynamically creatable.
This doesn't make any sense because classes such as wxGDIPlusContext,
wxGDIPlusMeasuringContext and wxMacCoreGraphicsContext are private and don't
need to be creatable by name (only renderers potentially need to be) and was
inconsistent with Unix/Cairo backend in which these classes were not dynamic.

So remove wxRTTI macros from them in wxMSW/wxOSX as well as this allows us to
get rid of unnecessary default ctors.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69355 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-09 22:07:13 +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
Vadim Zeitlin
5d0152c2b9 Use 0 instead of NULL to avoid g++ warning.
g++ (usefully) warns when assigning NULL to a non-pointer in wxGDIPlusRenderer.

Just use 0 instead of NULL to avoid the warning.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68586 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-07 19:31:52 +00:00
Vadim Zeitlin
401889f079 Don't try to pop from an empty stack in wxGDIPlusContext::PopState().
Using PopState() without a previous PushState() is an error but it shouldn't
result in a crash, so add an assert guarding against it.

Closes #13197.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-23 19:36:43 +00:00
Stefan Csomor
133cb28b21 adding placeholders for interpolation setting
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67909 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-09 21:38:08 +00:00
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Vadim Zeitlin
42604e44be Remove apparently erroneous -1 from DrawBitmap() in wxMSW wxGC code.
We didn't draw the last line and row of the image for some reason, simply
remove the -1 which prevented us from doing this.

Closes #12476.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-26 22:57:39 +00:00
Stefan Csomor
639e9c7d5b supprting flag for pixel offsetting for msw, see #11853
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-16 13:07:11 +00:00
Stefan Csomor
89db201aba see #9715
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-08 16:31:12 +00:00
Vadim Zeitlin
f645356813 Use wxPENSTYLE_XXX and wxBRUSHSTYLE_XXX instead of wxXXX constants.
Use non-deprecated constants in wxMSW wxGC code.

Closes #13109.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67371 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-02 16:37:44 +00:00
Vadim Zeitlin
b129eaa377 Implement wxGraphicsContext::GetSize() for Cairo.
As the implementation of this method is basically the same for all ports move
it to the base class itself instead of requiring the derived classes to
implement it. Now the derived classes need to fill in m_width and m_height
members instead.

Do fill them when creating wxGraphicsContext in Cairo version.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-31 09:38:03 +00:00
Vadim Zeitlin
cdcc1edaf2 Tentative compilation fix for wxMSW with MinGW after STL changes.
Include wx/stack.h, which includes the standard <stack> header, before
<windows.h> as the latter redefines min and max as macros conflicting with the
standard headers.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-31 09:37:59 +00:00
Vadim Zeitlin
b1bf7dc722 Add a simple wxStack<> template class based on wxVector<>.
This is still simpler than std::stack<> which can be used with any container
and not just wxVector<> but better than the WX_DECLARE_STACK() macro which was
all that we had before.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67047 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:46:34 +00:00
Jaakko Salli
eb40c2d836 Changed wxMSW wxGraphicsContext font rendering and extent calculation to take into the account that the page scale has been manually changed when using print contexts (fixes #12830)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-17 10:11:49 +00:00
Dimitri Schoolwerth
e38f5435fb compilation fixes for wxMSW compilation with wxUSE_PALETTE set to 0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 19:00:10 +00:00
Jaakko Salli
7fa3cf6a64 Revert unintended commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66498 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-31 15:23:19 +00:00
Jaakko Salli
4f320d7c57 Try to better revert to the original string value in wxBitmapComboBox::RecreateControl()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66497 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-12-31 15:20:32 +00:00
Vadim Zeitlin
c929ad9141 Correct checks for wxUSE_PRINTING_ARCHITECTURE and wxUSE_ENH_METAFILE.
Compilation fixes for building without one or both of these symbols.

See #12664.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66172 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:38:32 +00:00
Francesco Montorsi
6f32f3cea2 fix bug in wxGDIPlusMatrixData::Rotate: it must take radians for coherency with docs and other ports but GDI+ wants degrees.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-09 17:58:13 +00:00
Jaakko Salli
8371a35340 Added wxGraphicsContext::Create(const wxEnhMetaFileDC& dc) so that wxPrintPreview can work with wxMSW's wxGraphicsContext (closes #12028)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-13 08:22:36 +00:00
Jaakko Salli
465642da29 In wxGDIPlusContext::GetTextExtent(), return more accurate text height if possible
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64272 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-10 13:54:20 +00:00
Jaakko Salli
a53b5e867b Set wxGraphicsContext page scale, which is required for printing to work properly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-10 13:52:12 +00:00
Vadim Zeitlin
4ee4c7b948 Add support for gradient stops to wxGraphicsContext.
Allow specifying a set of gradient stops instead of just the beginning and
ending colours. Add the new wxGraphicsGradientStop(s) classes and new
wxGraphicsContext::Create{Linear,Radial}GradientBrush() overloads. Also change
the same methods of wxGraphicsRenderer to take wxGraphicsGradientStops instead
of a pair of colours.

Implement the new API for MSW and Cairo. OS X still uses just the two colours
for now.

Closes #11897.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-05 12:15:11 +00:00
Vadim Zeitlin
f49c80c105 Use helper wxColourToColor function in wxMSW wxGraphicsContext code.
Don't repeat Color ctor from wxColour all the time.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-05 11:44:28 +00:00
Stefan Csomor
918df9d264 fixing typo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-08 06:54:20 +00:00
Stefan Csomor
c315587c21 fixing gdiplus implementation, see #11282
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-07 05:53:19 +00:00
Vadim Zeitlin
942d5e2d72 Replaced GraphicsHDC from src/msw/renderer.cpp with wxDC::GetTempHDC().
wxDC::GetTempHDC() method provides a convenient and safe way to retrieve HDC
from a wxDC object, whether it is using GDI or GDI+. It is implemented using
(MSW-specific) virtual functions in wxDC and so doesn't need ugly hacks like
wxDynamicCast which were used in src/msw/renderer.cpp to achieve the same
effect.

Also, we now use GetTempHDC() consistently in all wxMSW rendering methods as
the old GraphicsHDC was only used in some of them meaning that many methods
didn't work at all with wxGCDC.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:56:58 +00:00
Stefan Csomor
2986eb869c adding construction from native bitmaps
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-02 19:45:03 +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
Vadim Zeitlin
b4715d08bf correct Borland #pragma hdrstop position
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-01 20:54:03 +00:00
Vadim Zeitlin
5aac6f3f95 remove MSVC warnings about DLL-exported class inheriting from non DLL-exported one by not exporting private classes at all
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-11 13:16:45 +00:00
Vadim Zeitlin
c496d8fa88 suppress unused parameter warning
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-17 12:01:07 +00:00
Stefan Csomor
bf02a7f976 switching to compositing operators (fixes #9881), adding layers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-15 16:52:05 +00:00
Francesco Montorsi
94a007ece4 a few more int/wxPolygonFillMode substitutions in wxRegion and wxGraphicsContext code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-08 16:43:56 +00:00
Vadim Zeitlin
091111d693 fix compilation after r56753 (closes #10218)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-22 22:40:13 +00:00
Vadim Zeitlin
0b7dce5480 fix warnings about hiding virtual wxGraphicsContext::DrawText() overloads by using different names for the implementation functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-13 12:16:39 +00:00
Stefan Csomor
81e0b3d978 copying sizes upon construction, HDC doesn't deliver these values reliably for things like memory dcs, fixes #10012
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-01 09:38:33 +00:00
Stefan Csomor
4fff14c955 fixing release handling of dc
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-01 08:09:45 +00:00
Stefan Csomor
fbd5416f60 supporting GetSize, fixes #9969
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55828 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-24 09:18:38 +00:00
Stefan Csomor
1011fbebdb guarding all text methods against unset font
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-02 06:40:21 +00:00
Stefan Csomor
f772729b7c adding missing include for non-precomp builds, and grouping headers, solves #9744
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-16 08:59:27 +00:00
Václav Slavík
e75c685a46 revert part of r54233 that was included by accident
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-15 13:15:44 +00:00
Václav Slavík
bce82a758f if gdiplus.dll cannot be loaded, return NULL from wxGraphicsContext::Create() instead of silently pretending to render the output, but do nothing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54233 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-15 13:14:32 +00:00
Robert Roebling
0b822969a6 Added new wxGraphicsContext:Create( wxPrinterDC ) instead of wxDC:CreateGraphicsContext
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-28 20:39:57 +00:00
Stefan Csomor
bce28872ac graphics bitmap implementation, fix for bitmap scaling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52845 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-27 08:30:30 +00:00
Stefan Csomor
623cf1fa93 moving things to private headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-18 13:26:19 +00:00