diff options
Diffstat (limited to 'WebCore/platform/graphics/Path.h')
-rw-r--r-- | WebCore/platform/graphics/Path.h | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/WebCore/platform/graphics/Path.h b/WebCore/platform/graphics/Path.h deleted file mode 100644 index 423a792..0000000 --- a/WebCore/platform/graphics/Path.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (C) 2003, 2006, 2009 Apple Inc. All rights reserved. - * 2006 Rob Buis <buis@kde.org> - * Copyright (C) 2007-2008 Torch Mobile, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef Path_h -#define Path_h - -#include <wtf/FastAllocBase.h> -#include <wtf/Forward.h> - -#if PLATFORM(CG) -typedef struct CGPath PlatformPath; -#elif PLATFORM(OPENVG) -namespace WebCore { -class PlatformPathOpenVG; -} -typedef WebCore::PlatformPathOpenVG PlatformPath; -#elif PLATFORM(QT) -#include <qpainterpath.h> -typedef QPainterPath PlatformPath; -#elif PLATFORM(WX) && USE(WXGC) -class wxGraphicsPath; -typedef wxGraphicsPath PlatformPath; -#elif PLATFORM(CAIRO) -namespace WebCore { -class CairoPath; -} -typedef WebCore::CairoPath PlatformPath; -#elif PLATFORM(SKIA) -class SkPath; -typedef SkPath PlatformPath; -#elif PLATFORM(HAIKU) -class BRegion; -typedef BRegion PlatformPath; -#elif OS(WINCE) -namespace WebCore { - class PlatformPath; -} -typedef WebCore::PlatformPath PlatformPath; -#else -typedef void PlatformPath; -#endif - -#if PLATFORM(QT) -/* QPainterPath is valued based */ -typedef PlatformPath PlatformPathPtr; -#else -typedef PlatformPath* PlatformPathPtr; -#endif - -namespace WebCore { - - class AffineTransform; - class FloatPoint; - class FloatRect; - class FloatSize; - class GraphicsContext; - class StrokeStyleApplier; - - enum WindRule { - RULE_NONZERO = 0, - RULE_EVENODD = 1 - }; - - enum PathElementType { - PathElementMoveToPoint, - PathElementAddLineToPoint, - PathElementAddQuadCurveToPoint, - PathElementAddCurveToPoint, - PathElementCloseSubpath - }; - - struct PathElement { - PathElementType type; - FloatPoint* points; - }; - - typedef void (*PathApplierFunction)(void* info, const PathElement*); - - class Path : public FastAllocBase { - public: - Path(); - ~Path(); - - Path(const Path&); - Path& operator=(const Path&); - - bool contains(const FloatPoint&, WindRule rule = RULE_NONZERO) const; - bool strokeContains(StrokeStyleApplier*, const FloatPoint&) const; - FloatRect boundingRect() const; - FloatRect strokeBoundingRect(StrokeStyleApplier* = 0); - - float length(); - FloatPoint pointAtLength(float length, bool& ok); - float normalAngleAtLength(float length, bool& ok); - - void clear(); - bool isEmpty() const; - // Gets the current point of the current path, which is conceptually the final point reached by the path so far. - // Note the Path can be empty (isEmpty() == true) and still have a current point. - bool hasCurrentPoint() const; - FloatPoint currentPoint() const; - - void moveTo(const FloatPoint&); - void addLineTo(const FloatPoint&); - void addQuadCurveTo(const FloatPoint& controlPoint, const FloatPoint& endPoint); - void addBezierCurveTo(const FloatPoint& controlPoint1, const FloatPoint& controlPoint2, const FloatPoint& endPoint); - void addArcTo(const FloatPoint&, const FloatPoint&, float radius); - void closeSubpath(); - - void addArc(const FloatPoint&, float radius, float startAngle, float endAngle, bool anticlockwise); - void addRect(const FloatRect&); - void addEllipse(const FloatRect&); - void addRoundedRect(const FloatRect&, const FloatSize& roundingRadii); - void addRoundedRect(const FloatRect&, const FloatSize& topLeftRadius, const FloatSize& topRightRadius, const FloatSize& bottomLeftRadius, const FloatSize& bottomRightRadius); - - void translate(const FloatSize&); - - PlatformPathPtr platformPath() const { return m_path; } - - void apply(void* info, PathApplierFunction) const; - void transform(const AffineTransform&); - - private: - PlatformPathPtr m_path; - }; - -} - -#endif |