Commit Graph

114 Commits

Author SHA1 Message Date
Artur Wieczorek
8349c4bf7f Fix AddLineToPoint() if no current point is set (macOS)
AddLineToPoint() should behave as MoveToPoint() if there is no current point.

See #18111.
2018-07-02 20:32:30 +02:00
Vadim Zeitlin
9b554c0974 Avoid narrowing conversion in wxMac struct initialization
Multiplying 2 float values is promoted to double, which is then narrowed
to float when initializing CGPoint with it, resulting in errors in C++11
build.

Fix this by initializing the CGFloat variable, which doesn't uniform
initialization, to the correct value instead, as this also seems more
clear ("height" is the height at which the strike is drawn).

Closes https://github.com/wxWidgets/wxWidgets/pull/793
2018-05-01 15:10:55 +02:00
Vadim Zeitlin
76fd05b147 Leave only wxGraphicsRenderer::CreatePen(wxGraphicsPenInfo) overload
It doesn't make much sense to require all the graphics backends to
create wxGraphicsPen from either wxPen or wxGraphicsPenInfo when the
former can be handled just once in the common code.

So do just this, leaving CreatePen() overload taking wxGraphicsPenInfo
where the real pen construction takes place and implementing
wxGraphicsPen creation from wxPen in the common wxGraphicsContext code.

This is not 100% backwards-compatible as any code inheriting from
wxGraphicsRenderer and overriding its CreatePen() will now be broken,
however this should be extremely rare (there is no good reason to
inherit from this class in the user code) and result in compile errors
if it does happen.
2017-09-10 01:48:30 +02:00
Vadim Zeitlin
cc91a7d6d4 Minor formatting and style changes in wxPenInfo code
Use more standard formatting, wrap some overlong lines.
2017-09-10 01:11:06 +02:00
Adrien Tétar
999c750ca7 Review feedback 2017-09-10 01:02:21 +02:00
Adrien Tétar
2305604565 Introduce wxGraphicsPenInfo class 2017-09-10 01:02:20 +02:00
Artur Wieczorek
3105134548 Don't attempt to get CTM if CGContext is NULL
When wxMacCoreGraphicsContext is constructed with CGContext==NULL, initial
transformation matrix can be assumed as an identity matrix.
2017-07-09 14:49:44 +02:00
Artur Wieczorek
796ffb3671 Initialize variable holding initial transformation matrix
When wxMacCoreGraphicsContext is created for wxGraphicsRenderer, initial transformation matrix is just an identity matrix.
2017-07-09 10:13:40 +02:00
arturs
715608fe6a Return (0,0,0,0) rectangle if clipping region is empty
When clipping region is empty, CGContextGetClipBoundingBox() returns (+Inf,+Inf,0,0) rectangle but we need to return (0,0,0,0) rectangle in this case.

See #17609.
2017-07-02 15:06:06 +02:00
Artur Wieczorek
a9fcfe1085 Fix getting/setting transformation matrix (wxOSX)
Transformation settings already applied to the source objects (CGContext, wxWindow) and inherited by wxGraphicsContext should be considered as a baseline transformation matrix for wxGC and shouldn't be exposed through e.g. GetTransform() function (like it's done in Cairo or Direct2D). To report only transformations explicitly applied to wxGC by calls to the corresponding wxGC functions, we need to store initial CTM (in a dedicated variable) and "subtract" it from the actual transformation settings.

See #17609.
2017-07-02 14:31:00 +02:00
Artur Wieczorek
214ed20697 Fix wxGCDC::Clear (wxOSX)
If underlying graphics context is rotated then drawing a rectangle with origin at (0,0) doesn't cover all the drawing area. To draw over entire area we need to get extents of the actual clipping region (with applied all transformations) and use it as coordinates of the drawn rectangle.
Solution for wxMSW and wxGTK was implemented in 12eaa61212eaa61930.

See #17636.
2017-07-02 13:46:18 +02:00
Stefan Csomor
6dfa897b4a Adding a native implementation for clearing bitmap/window contexts
Filling a bitmap surface is filled with ARGB 0,0,0,0. This way eg buffered transparent layers can be properly cleared.
2017-06-25 22:48:58 +02:00
Stefan Csomor
81dfa2ae04 Removing unnecessary font related code
The bridging API for native fonts allow for further removal of code.
2017-06-25 11:38:16 +02:00
Stefan Csomor
8b1381f2b1 OSX use fontAttributes for better emulation of bold fonts (#501)
* using fontAttributes dictionary allows for better emulation of bold typefaces, also switch to using color from context, this allows keeping the same dict throughout, as a side effect fix font caching

* reverting in order to maintain crossplatform compatibility

* applying review suggestions

* applying review suggestions
2017-06-20 17:55:26 +02:00
Václav Slavík
c9b1ebf816 Remove ATSU-related dead code from wxOSX
ATSU was deprecated for a long time and was finally removed from OS X
SDK in 10.11. wxOSX_USE_ATSU_TEXT was unconditionally disabled already,
so the code was never used and can be safely removed.
2016-12-03 12:44:10 +01:00
Artur Wieczorek
a29e6922cf Implement wxGraphicsContext::GetClipBox for Core Graphics 2016-08-21 20:58:56 +02:00
ARATA Mizuki
cf000e7e02 Fix GetPartialTextExtents() to handle non-BMP chars under OS X
On OS X, wxString operates on UTF-32 code units, but CoreText API use UTF-16
code units. So we need to take care of surrogate pairs.

Closes https://github.com/wxWidgets/wxWidgets/pull/261
2016-03-28 21:25:56 +02:00
Vadim Zeitlin
ee486dba32 Fix build error in wxOSX clang C++11 build for i386
When building for i386 in C++11 mode clang warns about narrowing conversion
from double to CGFloat (== float) in the initialization.

Fix it by using explicit suffixes for the float literals.
2016-02-29 18:05:02 +01:00
Daniel Kulp
53a5806372 Create strike-through wxGraphicsFont objects in wxOSX
Honour wxFONTFLAG_UNDERLINED in wxGraphicsFont::CreateFont() overload taking
flags.

See https://github.com/wxWidgets/wxWidgets/pull/187
2016-02-22 22:51:59 +01:00
Daniel Kulp
38fabf7012 Adjust strike-through line position under OS X
It was too high, move it down to make it look better.

Closes #17339.
2016-02-22 22:21:47 +01:00
Paul Cornett
371ee79f88 Avoid wxGraphicsContext offsetting on HiDPI displays
For a typical scale factor of 2, there won't be any odd-width lines,
and for any factor greater than 1.0, it won't be doing what was intended,
so just don't do it. See #17375
2016-02-22 10:25:16 -08:00
Tobias Taschner
5ba67c67e4 Remove wxOSX/Carbon support.
Cocoa has been the default toolkit in wxWidgets for a long time. There is really no good reason to use Carbon in 2016 and this removes a lot of unused and unmaintained code.
2016-02-01 13:48:48 +01:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
9ecf317092 Implement strike-through support in wxFont in wxOSX.
Implement support for this attribute in wxOSX too.

Closes #16547.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-11 17:05:33 +00:00
Stefan Csomor
b79595df2d removing code for pre 10.6 systems
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-09 17:20:20 +00:00
Stefan Csomor
1d21bd0877 removing code for pre 10.6 systems
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77034 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-09 17:07:54 +00:00
Vadim Zeitlin
fb99672f62 Hopefully finish removing the old wxCocoa port.
Get rid of the rest of __WXCOCOA__ tests in the sources.

Drop configure option for using it.

Also remove the documentation for this port.

This should have also been part of r76735.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-03 22:03:21 +00:00
Václav Slavík
32084ab7ce Fix wxOSX warnings about unused variables.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-19 17:23:06 +00:00
Vadim Zeitlin
da4ca22383 Use non-deprecated pen and brush style constants in wxOSX code.
Use wx{PEN,BRUSH}STYLE_{SOLID,TRANSPARENT} instead of the old
wx{SOLID,TRANSPARENT}.

Closes #16269.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-17 12:29:41 +00:00
Vadim Zeitlin
7ab7ff693b Add wxGraphicsRenderer::GetName() and GetVersion() methods.
Allow the code to determine which underlying technology is used for
implementing wxGraphics API. This is needed by the unit tests to account for
the known differences between platforms and may be useful in other cases.

Closes #16154.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-20 12:45:10 +00:00
Vadim Zeitlin
33ad33d447 Add wxOVERRIDE and use it in common and wxOSX code.
Make overriding virtual methods more explicit and enable additional checks
provided by C++11 compilers when "override" is used.

Closes #16100.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-20 13:26:28 +00:00
Stefan Csomor
ffeba70599 adding 10.5 compatibility again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-13 17:09:00 +00:00
Stefan Csomor
bd45a79a99 using old code for carbon only, new code for cocoa, fixing doubly apply flip of y axis
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-24 08:17:15 +00:00
Stefan Csomor
64503e36f9 new DrawIcon implementation, turned off by default
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-23 19:14:49 +00:00
Vadim Zeitlin
3dd1d4d915 Fix memory leak in case of error in wxOSX graphics code.
Delete the pointer before returning from the function if we don't pass its
ownership to CGDataProviderCreateWithData().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-21 00:51:46 +00:00
Stefan Csomor
e39c9f5914 CoreText is always available on 10.5+, so using all this code unconditionally, committing Vadim's suggestions with two extensions, see #15580
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75050 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-19 19:27:29 +00:00
Vadim Zeitlin
853ee8bf12 Get rid of compile- and run-time checks for OS X < 10.5.
As 10.5 is the minimal supported version, it doesn't make sense to check for
it (or even earlier versions) during the build or run-time.

Closes #15580.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75028 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-17 12:34:12 +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
Vadim Zeitlin
14619f10b0 Support using GetTextExtent() with empty string to get descent in wxOSX.
Allow measuring the descent and external leading of an empty string by
measuring just a space instead in wxOSX. This makes the behaviour more
consistent with wxMSW and makes the unit test added in r74464 pass under OS X
too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-15 01:31:56 +00:00
Robin Dunn
07aaf32633 Ensure there is valid context for DrawRectangle
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-12 23:45:15 +00:00
Stefan Csomor
0ff0b78136 making sure we are using correct implementation for shades
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73266 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-23 18:42:34 +00:00
Stefan Csomor
ca77701441 activating DrawRectangle optimization
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-19 15:41:44 +00:00
Vadim Zeitlin
e10972f6c1 Use kCGBlendModeExclusion for wxCOMPOSITION_XOR operation.
The previously used kCGBlendModeXOR doesn't seem to be the right mode to use.

Closes #13095.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-04 23:53:29 +00:00
Vadim Zeitlin
e708cadacb No changes, just remove unneeded variable initialization.
Closes #14712, #14713.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72584 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-30 22:19:01 +00:00
Stefan Csomor
c0b301f4e5 cleanup for 10.5 minimum
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-14 22:29:07 +00:00
Stefan Csomor
ecbbb06b3b removing superfluous 10.5 checks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-14 21:37:08 +00:00
Stefan Csomor
3503581b33 having ONE set of raster-ops starting from 10.5
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-13 17:13:05 +00:00
Paul Cornett
f2c757c5cc mark virtual overrides as virtual
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-17 15:46:26 +00:00
Robin Dunn
8b180bded6 Enable access to the native bitmap object wrapped by wxGraphicsBitmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-11 22:06:50 +00:00
Vadim Zeitlin
2415cf6725 Remove support for MetroWerks CodeWarrior compiler.
This compiler doesn't exist any more and was probably unsupported even in 2.8,
let alone 2.9, so remove all the __MWERKS__ tests to simplify things.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 18:40:11 +00:00