1/** 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 3 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. 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#include "config.h" 21#include "FontValue.h" 22 23#include "CSSValueList.h" 24#include "CSSPrimitiveValue.h" 25#include <wtf/text/StringBuilder.h> 26 27namespace WebCore { 28 29String FontValue::customCssText() const 30{ 31 // font variant weight size / line-height family 32 33 StringBuilder result; 34 35 if (style) 36 result.append(style->cssText()); 37 if (variant) { 38 if (!result.isEmpty()) 39 result.append(' '); 40 result.append(variant->cssText()); 41 } 42 if (weight) { 43 if (!result.isEmpty()) 44 result.append(' '); 45 result.append(weight->cssText()); 46 } 47 if (size) { 48 if (!result.isEmpty()) 49 result.append(' '); 50 result.append(size->cssText()); 51 } 52 if (lineHeight) { 53 if (!size) 54 result.append(' '); 55 result.append('/'); 56 result.append(lineHeight->cssText()); 57 } 58 if (family) { 59 if (!result.isEmpty()) 60 result.append(' '); 61 result.append(family->cssText()); 62 } 63 64 return result.toString(); 65} 66 67bool FontValue::equals(const FontValue& other) const 68{ 69 return compareCSSValuePtr(style, other.style) 70 && compareCSSValuePtr(variant, other.variant) 71 && compareCSSValuePtr(weight, other.weight) 72 && compareCSSValuePtr(size, other.size) 73 && compareCSSValuePtr(lineHeight, other.lineHeight) 74 && compareCSSValuePtr(family, other.family); 75} 76 77} 78