diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/css/CSSFontValue.cpp')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/css/CSSFontValue.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/chromium/third_party/WebKit/Source/core/css/CSSFontValue.cpp b/chromium/third_party/WebKit/Source/core/css/CSSFontValue.cpp new file mode 100644 index 00000000000..aee5a9726d6 --- /dev/null +++ b/chromium/third_party/WebKit/Source/core/css/CSSFontValue.cpp @@ -0,0 +1,77 @@ +/** + * (C) 1999-2003 Lars Knoll (knoll@kde.org) + * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ +#include "config.h" +#include "core/css/CSSFontValue.h" + +#include "core/css/CSSPrimitiveValue.h" +#include "core/css/CSSValueList.h" +#include "wtf/text/StringBuilder.h" + +namespace WebCore { + +String CSSFontValue::customCSSText() const +{ + // font variant weight size / line-height family + + StringBuilder result; + + if (style) + result.append(style->cssText()); + if (variant) { + if (!result.isEmpty()) + result.append(' '); + result.append(variant->cssText()); + } + if (weight) { + if (!result.isEmpty()) + result.append(' '); + result.append(weight->cssText()); + } + if (size) { + if (!result.isEmpty()) + result.append(' '); + result.append(size->cssText()); + } + if (lineHeight) { + if (!size) + result.append(' '); + result.append('/'); + result.append(lineHeight->cssText()); + } + if (family) { + if (!result.isEmpty()) + result.append(' '); + result.append(family->cssText()); + } + + return result.toString(); +} + +bool CSSFontValue::equals(const CSSFontValue& other) const +{ + return compareCSSValuePtr(style, other.style) + && compareCSSValuePtr(variant, other.variant) + && compareCSSValuePtr(weight, other.weight) + && compareCSSValuePtr(size, other.size) + && compareCSSValuePtr(lineHeight, other.lineHeight) + && compareCSSValuePtr(family, other.family); +} + +} |