blob: 59fd12e4559c241fc8b36e71c798d3c7c4e72f12 [file] [log] [blame]
reni@webkit.orgf0d767a2011-11-30 15:49:02 +00001/*
2 * Copyright (C) 2011 University of Szeged
3 * Copyright (C) 2011 Renata Hodovan <reni@webkit.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY UNIVERSITY OF SZEGED ``AS IS'' AND ANY
16 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UNIVERSITY OF SZEGED OR
19 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifndef RenderSVGRect_h
29#define RenderSVGRect_h
30
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000031#include "RenderSVGPath.h"
32#include "SVGRectElement.h"
33
34namespace WebCore {
35
andersca@apple.com16d2dd42014-01-16 23:08:24 +000036class RenderSVGRect final : public RenderSVGShape {
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000037public:
antti@apple.comde6dae7b2016-04-24 13:54:59 +000038 RenderSVGRect(SVGRectElement&, std::unique_ptr<RenderStyle>);
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000039 virtual ~RenderSVGRect();
40
akling@apple.com72849692013-09-13 15:54:53 +000041 SVGRectElement& rectElement() const;
42
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000043private:
commit-queue@webkit.orge7227452014-01-17 12:24:16 +000044 void graphicsElement() const = delete;
akling@apple.com72849692013-09-13 15:54:53 +000045
darin@apple.com11ff47c2016-03-04 16:47:55 +000046 const char* renderName() const override { return "RenderSVGRect"; }
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000047
darin@apple.com11ff47c2016-03-04 16:47:55 +000048 void updateShapeFromElement() override;
49 bool isEmpty() const override { return m_usePathFallback ? RenderSVGShape::isEmpty() : m_fillBoundingBox.isEmpty(); }
50 bool isRenderingDisabled() const override;
51 void fillShape(GraphicsContext&) const override;
52 void strokeShape(GraphicsContext&) const override;
53 bool shapeDependentStrokeContains(const FloatPoint&) override;
54 bool shapeDependentFillContains(const FloatPoint&, const WindRule) const override;
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000055
56private:
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000057 FloatRect m_innerStrokeRect;
58 FloatRect m_outerStrokeRect;
pdr@google.comf4a3b752012-07-09 03:57:03 +000059 bool m_usePathFallback;
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000060};
61
62}
63
reni@webkit.orgf0d767a2011-11-30 15:49:02 +000064#endif