18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 2dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> 3dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 4dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * This library is free software; you can redistribute it and/or 5dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * modify it under the terms of the GNU Library General Public 6dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * License as published by the Free Software Foundation; either 7dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * version 2 of the License, or (at your option) any later version. 8dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 9dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * This library is distributed in the hope that it will be useful, 10dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * but WITHOUT ANY WARRANTY; without even the implied warranty of 11dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Library General Public License for more details. 13dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * 14dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * You should have received a copy of the GNU Library General Public License 15dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * along with this library; see the file COPYING.LIB. If not, write to 16dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 17dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch * Boston, MA 02110-1301, USA. 18dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch */ 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef PatternAttributes_h 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define PatternAttributes_h 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) 2421939df44de1705786c545cd1bf519d47250322dBen Murdoch#include "SVGLength.h" 25ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch#include "SVGPreserveAspectRatio.h" 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochnamespace WebCore { 2821939df44de1705786c545cd1bf519d47250322dBen Murdoch 2921939df44de1705786c545cd1bf519d47250322dBen Murdochclass SVGPatternElement; 3021939df44de1705786c545cd1bf519d47250322dBen Murdoch 3121939df44de1705786c545cd1bf519d47250322dBen Murdochstruct PatternAttributes { 3221939df44de1705786c545cd1bf519d47250322dBen Murdoch PatternAttributes() 3321939df44de1705786c545cd1bf519d47250322dBen Murdoch : m_x() 3421939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_y() 3521939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_width() 3621939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_height() 37ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch , m_viewBox() 38ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch , m_preserveAspectRatio() 3921939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_boundingBoxMode(true) 4021939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_boundingBoxModeContent(false) 4121939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_patternContentElement(0) 4221939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_xSet(false) 4321939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_ySet(false) 4421939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_widthSet(false) 4521939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_heightSet(false) 46ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch , m_viewBoxSet(false) 47ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch , m_preserveAspectRatioSet(false) 4821939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_boundingBoxModeSet(false) 4921939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_boundingBoxModeContentSet(false) 5021939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_patternTransformSet(false) 5121939df44de1705786c545cd1bf519d47250322dBen Murdoch , m_patternContentElementSet(false) 5221939df44de1705786c545cd1bf519d47250322dBen Murdoch { 5321939df44de1705786c545cd1bf519d47250322dBen Murdoch } 5421939df44de1705786c545cd1bf519d47250322dBen Murdoch 5521939df44de1705786c545cd1bf519d47250322dBen Murdoch SVGLength x() const { return m_x; } 5621939df44de1705786c545cd1bf519d47250322dBen Murdoch SVGLength y() const { return m_y; } 5721939df44de1705786c545cd1bf519d47250322dBen Murdoch SVGLength width() const { return m_width; } 5821939df44de1705786c545cd1bf519d47250322dBen Murdoch SVGLength height() const { return m_height; } 59ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch FloatRect viewBox() const { return m_viewBox; } 60ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch SVGPreserveAspectRatio preserveAspectRatio() const { return m_preserveAspectRatio; } 6121939df44de1705786c545cd1bf519d47250322dBen Murdoch bool boundingBoxMode() const { return m_boundingBoxMode; } 6221939df44de1705786c545cd1bf519d47250322dBen Murdoch bool boundingBoxModeContent() const { return m_boundingBoxModeContent; } 6321939df44de1705786c545cd1bf519d47250322dBen Murdoch AffineTransform patternTransform() const { return m_patternTransform; } 6421939df44de1705786c545cd1bf519d47250322dBen Murdoch const SVGPatternElement* patternContentElement() const { return m_patternContentElement; } 6521939df44de1705786c545cd1bf519d47250322dBen Murdoch 6621939df44de1705786c545cd1bf519d47250322dBen Murdoch void setX(const SVGLength& value) 6721939df44de1705786c545cd1bf519d47250322dBen Murdoch { 6821939df44de1705786c545cd1bf519d47250322dBen Murdoch m_x = value; 6921939df44de1705786c545cd1bf519d47250322dBen Murdoch m_xSet = true; 7021939df44de1705786c545cd1bf519d47250322dBen Murdoch } 7121939df44de1705786c545cd1bf519d47250322dBen Murdoch 7221939df44de1705786c545cd1bf519d47250322dBen Murdoch void setY(const SVGLength& value) 7321939df44de1705786c545cd1bf519d47250322dBen Murdoch { 7421939df44de1705786c545cd1bf519d47250322dBen Murdoch m_y = value; 7521939df44de1705786c545cd1bf519d47250322dBen Murdoch m_ySet = true; 7621939df44de1705786c545cd1bf519d47250322dBen Murdoch } 7721939df44de1705786c545cd1bf519d47250322dBen Murdoch 7821939df44de1705786c545cd1bf519d47250322dBen Murdoch void setWidth(const SVGLength& value) 7921939df44de1705786c545cd1bf519d47250322dBen Murdoch { 8021939df44de1705786c545cd1bf519d47250322dBen Murdoch m_width = value; 8121939df44de1705786c545cd1bf519d47250322dBen Murdoch m_widthSet = true; 8221939df44de1705786c545cd1bf519d47250322dBen Murdoch } 8321939df44de1705786c545cd1bf519d47250322dBen Murdoch 8421939df44de1705786c545cd1bf519d47250322dBen Murdoch void setHeight(const SVGLength& value) 8521939df44de1705786c545cd1bf519d47250322dBen Murdoch { 8621939df44de1705786c545cd1bf519d47250322dBen Murdoch m_height = value; 8721939df44de1705786c545cd1bf519d47250322dBen Murdoch m_heightSet = true; 8821939df44de1705786c545cd1bf519d47250322dBen Murdoch } 89ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 90ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch void setViewBox(const FloatRect& value) 91ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch { 92ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch m_viewBox = value; 93ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch m_viewBoxSet = true; 94ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch } 95ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch 96ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch void setPreserveAspectRatio(const SVGPreserveAspectRatio& value) 97ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch { 98ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch m_preserveAspectRatio = value; 99ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch m_preserveAspectRatioSet = true; 100ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch } 10121939df44de1705786c545cd1bf519d47250322dBen Murdoch 10221939df44de1705786c545cd1bf519d47250322dBen Murdoch void setBoundingBoxMode(bool value) 10321939df44de1705786c545cd1bf519d47250322dBen Murdoch { 10421939df44de1705786c545cd1bf519d47250322dBen Murdoch m_boundingBoxMode = value; 10521939df44de1705786c545cd1bf519d47250322dBen Murdoch m_boundingBoxModeSet = true; 10621939df44de1705786c545cd1bf519d47250322dBen Murdoch } 10721939df44de1705786c545cd1bf519d47250322dBen Murdoch 10821939df44de1705786c545cd1bf519d47250322dBen Murdoch void setBoundingBoxModeContent(bool value) 10921939df44de1705786c545cd1bf519d47250322dBen Murdoch { 11021939df44de1705786c545cd1bf519d47250322dBen Murdoch m_boundingBoxModeContent = value; 11121939df44de1705786c545cd1bf519d47250322dBen Murdoch m_boundingBoxModeContentSet = true; 11221939df44de1705786c545cd1bf519d47250322dBen Murdoch } 11321939df44de1705786c545cd1bf519d47250322dBen Murdoch 11421939df44de1705786c545cd1bf519d47250322dBen Murdoch void setPatternTransform(const AffineTransform& value) 11521939df44de1705786c545cd1bf519d47250322dBen Murdoch { 11621939df44de1705786c545cd1bf519d47250322dBen Murdoch m_patternTransform = value; 11721939df44de1705786c545cd1bf519d47250322dBen Murdoch m_patternTransformSet = true; 11821939df44de1705786c545cd1bf519d47250322dBen Murdoch } 11921939df44de1705786c545cd1bf519d47250322dBen Murdoch 12021939df44de1705786c545cd1bf519d47250322dBen Murdoch void setPatternContentElement(const SVGPatternElement* value) 12121939df44de1705786c545cd1bf519d47250322dBen Murdoch { 12221939df44de1705786c545cd1bf519d47250322dBen Murdoch m_patternContentElement = value; 12321939df44de1705786c545cd1bf519d47250322dBen Murdoch m_patternContentElementSet = true; 12421939df44de1705786c545cd1bf519d47250322dBen Murdoch } 12521939df44de1705786c545cd1bf519d47250322dBen Murdoch 12621939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasX() const { return m_xSet; } 12721939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasY() const { return m_ySet; } 12821939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasWidth() const { return m_widthSet; } 12921939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasHeight() const { return m_heightSet; } 130ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch bool hasViewBox() const { return m_viewBoxSet; } 131ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch bool hasPreserveAspectRatio() const { return m_preserveAspectRatioSet; } 13221939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasBoundingBoxMode() const { return m_boundingBoxModeSet; } 13321939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasBoundingBoxModeContent() const { return m_boundingBoxModeContentSet; } 13421939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasPatternTransform() const { return m_patternTransformSet; } 13521939df44de1705786c545cd1bf519d47250322dBen Murdoch bool hasPatternContentElement() const { return m_patternContentElementSet; } 13621939df44de1705786c545cd1bf519d47250322dBen Murdoch 13721939df44de1705786c545cd1bf519d47250322dBen Murdochprivate: 13821939df44de1705786c545cd1bf519d47250322dBen Murdoch // Properties 13921939df44de1705786c545cd1bf519d47250322dBen Murdoch SVGLength m_x; 14021939df44de1705786c545cd1bf519d47250322dBen Murdoch SVGLength m_y; 14121939df44de1705786c545cd1bf519d47250322dBen Murdoch SVGLength m_width; 14221939df44de1705786c545cd1bf519d47250322dBen Murdoch SVGLength m_height; 143ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch FloatRect m_viewBox; 144ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch SVGPreserveAspectRatio m_preserveAspectRatio; 14521939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_boundingBoxMode; 14621939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_boundingBoxModeContent; 14721939df44de1705786c545cd1bf519d47250322dBen Murdoch AffineTransform m_patternTransform; 14821939df44de1705786c545cd1bf519d47250322dBen Murdoch const SVGPatternElement* m_patternContentElement; 14921939df44de1705786c545cd1bf519d47250322dBen Murdoch 15021939df44de1705786c545cd1bf519d47250322dBen Murdoch // Property states 15121939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_xSet : 1; 15221939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_ySet : 1; 15321939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_widthSet : 1; 15421939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_heightSet : 1; 155ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch bool m_viewBoxSet : 1; 156ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch bool m_preserveAspectRatioSet : 1; 15721939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_boundingBoxModeSet : 1; 15821939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_boundingBoxModeContentSet : 1; 15921939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_patternTransformSet : 1; 16021939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_patternContentElementSet : 1; 16121939df44de1705786c545cd1bf519d47250322dBen Murdoch}; 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // ENABLE(SVG) 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 167