1 /* 2 * Copyright (C) 1999 Antti Koivisto (koivisto (at) kde.org) 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public License 16 * along with this library; see the file COPYING.LIB. If not, write to 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 * 20 */ 21 22 #include "config.h" 23 #include "StyleRareInheritedData.h" 24 25 #include "RenderStyle.h" 26 #include "StyleImage.h" 27 28 namespace WebCore { 29 30 StyleInheritedData::StyleInheritedData() 31 : indent(RenderStyle::initialTextIndent()) 32 , line_height(RenderStyle::initialLineHeight()) 33 , list_style_image(RenderStyle::initialListStyleImage()) 34 , color(RenderStyle::initialColor()) 35 , m_effectiveZoom(RenderStyle::initialZoom()) 36 , horizontal_border_spacing(RenderStyle::initialHorizontalBorderSpacing()) 37 , vertical_border_spacing(RenderStyle::initialVerticalBorderSpacing()) 38 , widows(RenderStyle::initialWidows()) 39 , orphans(RenderStyle::initialOrphans()) 40 { 41 } 42 43 StyleInheritedData::~StyleInheritedData() 44 { 45 } 46 47 StyleInheritedData::StyleInheritedData(const StyleInheritedData& o) 48 : RefCounted<StyleInheritedData>() 49 , indent(o.indent) 50 , line_height(o.line_height) 51 , list_style_image(o.list_style_image) 52 , cursorData(o.cursorData) 53 , font(o.font) 54 , color(o.color) 55 , m_effectiveZoom(o.m_effectiveZoom) 56 , horizontal_border_spacing(o.horizontal_border_spacing) 57 , vertical_border_spacing(o.vertical_border_spacing) 58 , widows(o.widows) 59 , orphans(o.orphans) 60 { 61 } 62 63 static bool cursorDataEquivalent(const CursorList* c1, const CursorList* c2) 64 { 65 if (c1 == c2) 66 return true; 67 if ((!c1 && c2) || (c1 && !c2)) 68 return false; 69 return (*c1 == *c2); 70 } 71 72 bool StyleInheritedData::operator==(const StyleInheritedData& o) const 73 { 74 return 75 indent == o.indent && 76 line_height == o.line_height && 77 StyleImage::imagesEquivalent(list_style_image.get(), o.list_style_image.get()) && 78 cursorDataEquivalent(cursorData.get(), o.cursorData.get()) && 79 font == o.font && 80 color == o.color && 81 m_effectiveZoom == o.m_effectiveZoom && 82 horizontal_border_spacing == o.horizontal_border_spacing && 83 vertical_border_spacing == o.vertical_border_spacing && 84 widows == o.widows && 85 orphans == o.orphans; 86 } 87 88 } // namespace WebCore 89