| Index: third_party/WebKit/WebCore/rendering/style/StyleRareNonInheritedData.cpp
|
| ===================================================================
|
| --- third_party/WebKit/WebCore/rendering/style/StyleRareNonInheritedData.cpp (revision 9391)
|
| +++ third_party/WebKit/WebCore/rendering/style/StyleRareNonInheritedData.cpp (working copy)
|
| @@ -1,167 +1,203 @@
|
| -/*
|
| - * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
|
| - * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
|
| - *
|
| - * 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 "StyleRareNonInheritedData.h"
|
| -
|
| -#include "CSSStyleSelector.h"
|
| -#include "RenderStyle.h"
|
| -
|
| -namespace WebCore {
|
| -
|
| -StyleRareNonInheritedData::StyleRareNonInheritedData()
|
| - : lineClamp(RenderStyle::initialLineClamp())
|
| - , opacity(RenderStyle::initialOpacity())
|
| - , m_content(0)
|
| - , m_counterDirectives(0)
|
| - , userDrag(RenderStyle::initialUserDrag())
|
| - , textOverflow(RenderStyle::initialTextOverflow())
|
| - , marginTopCollapse(MCOLLAPSE)
|
| - , marginBottomCollapse(MCOLLAPSE)
|
| - , matchNearestMailBlockquoteColor(RenderStyle::initialMatchNearestMailBlockquoteColor())
|
| - , m_appearance(RenderStyle::initialAppearance())
|
| - , m_borderFit(RenderStyle::initialBorderFit())
|
| - , m_boxShadow(0)
|
| - , m_animations(0)
|
| - , m_transitions(0)
|
| - , m_mask(FillLayer(MaskFillLayer))
|
| -#if ENABLE(XBL)
|
| - , bindingURI(0)
|
| -#endif
|
| -{
|
| -}
|
| -
|
| -StyleRareNonInheritedData::StyleRareNonInheritedData(const StyleRareNonInheritedData& o)
|
| - : RefCounted<StyleRareNonInheritedData>()
|
| - , lineClamp(o.lineClamp)
|
| - , opacity(o.opacity)
|
| - , flexibleBox(o.flexibleBox)
|
| - , marquee(o.marquee)
|
| - , m_multiCol(o.m_multiCol)
|
| - , m_transform(o.m_transform)
|
| - , m_content(0)
|
| - , m_counterDirectives(0)
|
| - , userDrag(o.userDrag)
|
| - , textOverflow(o.textOverflow)
|
| - , marginTopCollapse(o.marginTopCollapse)
|
| - , marginBottomCollapse(o.marginBottomCollapse)
|
| - , matchNearestMailBlockquoteColor(o.matchNearestMailBlockquoteColor)
|
| - , m_appearance(o.m_appearance)
|
| - , m_borderFit(o.m_borderFit)
|
| - , m_boxShadow(o.m_boxShadow ? new ShadowData(*o.m_boxShadow) : 0)
|
| - , m_boxReflect(o.m_boxReflect)
|
| - , m_animations(o.m_animations ? new AnimationList(*o.m_animations) : 0)
|
| - , m_transitions(o.m_transitions ? new AnimationList(*o.m_transitions) : 0)
|
| - , m_mask(o.m_mask)
|
| - , m_maskBoxImage(o.m_maskBoxImage)
|
| -#if ENABLE(XBL)
|
| - , bindingURI(o.bindingURI ? o.bindingURI->copy() : 0)
|
| -#endif
|
| -{
|
| -}
|
| -
|
| -StyleRareNonInheritedData::~StyleRareNonInheritedData()
|
| -{
|
| -}
|
| -
|
| -#if ENABLE(XBL)
|
| -bool StyleRareNonInheritedData::bindingsEquivalent(const StyleRareNonInheritedData& o) const
|
| -{
|
| - if (this == &o) return true;
|
| - if (!bindingURI && o.bindingURI || bindingURI && !o.bindingURI)
|
| - return false;
|
| - if (bindingURI && o.bindingURI && (*bindingURI != *o.bindingURI))
|
| - return false;
|
| - return true;
|
| -}
|
| -#endif
|
| -
|
| -bool StyleRareNonInheritedData::operator==(const StyleRareNonInheritedData& o) const
|
| -{
|
| - return lineClamp == o.lineClamp
|
| -#if ENABLE(DASHBOARD_SUPPORT)
|
| - && m_dashboardRegions == o.m_dashboardRegions
|
| -#endif
|
| - && opacity == o.opacity
|
| - && flexibleBox == o.flexibleBox
|
| - && marquee == o.marquee
|
| - && m_multiCol == o.m_multiCol
|
| - && m_transform == o.m_transform
|
| - && m_content == o.m_content
|
| - && m_counterDirectives == o.m_counterDirectives
|
| - && userDrag == o.userDrag
|
| - && textOverflow == o.textOverflow
|
| - && marginTopCollapse == o.marginTopCollapse
|
| - && marginBottomCollapse == o.marginBottomCollapse
|
| - && matchNearestMailBlockquoteColor == o.matchNearestMailBlockquoteColor
|
| - && m_appearance == o.m_appearance
|
| - && m_borderFit == o.m_borderFit
|
| - && shadowDataEquivalent(o)
|
| - && reflectionDataEquivalent(o)
|
| - && animationDataEquivalent(o)
|
| - && transitionDataEquivalent(o)
|
| - && m_mask == o.m_mask
|
| - && m_maskBoxImage == o.m_maskBoxImage
|
| -#if ENABLE(XBL)
|
| - && bindingsEquivalent(o)
|
| -#endif
|
| - ;
|
| -}
|
| -
|
| -bool StyleRareNonInheritedData::shadowDataEquivalent(const StyleRareNonInheritedData& o) const
|
| -{
|
| - if (!m_boxShadow && o.m_boxShadow || m_boxShadow && !o.m_boxShadow)
|
| - return false;
|
| - if (m_boxShadow && o.m_boxShadow && (*m_boxShadow != *o.m_boxShadow))
|
| - return false;
|
| - return true;
|
| -}
|
| -
|
| -bool StyleRareNonInheritedData::reflectionDataEquivalent(const StyleRareNonInheritedData& o) const
|
| -{
|
| - if (m_boxReflect != o.m_boxReflect) {
|
| - if (!m_boxReflect || !o.m_boxReflect)
|
| - return false;
|
| - return *m_boxReflect == *o.m_boxReflect;
|
| - }
|
| - return true;
|
| -
|
| -}
|
| -
|
| -bool StyleRareNonInheritedData::animationDataEquivalent(const StyleRareNonInheritedData& o) const
|
| -{
|
| - if (!m_animations && o.m_animations || m_animations && !o.m_animations)
|
| - return false;
|
| - if (m_animations && o.m_animations && (*m_animations != *o.m_animations))
|
| - return false;
|
| - return true;
|
| -}
|
| -
|
| -bool StyleRareNonInheritedData::transitionDataEquivalent(const StyleRareNonInheritedData& o) const
|
| -{
|
| - if (!m_transitions && o.m_transitions || m_transitions && !o.m_transitions)
|
| - return false;
|
| - if (m_transitions && o.m_transitions && (*m_transitions != *o.m_transitions))
|
| - return false;
|
| - return true;
|
| -}
|
| -
|
| -} // namespace WebCore
|
| +/*
|
| + * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
|
| + * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
|
| + *
|
| + * 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 "StyleRareNonInheritedData.h"
|
| +
|
| +#include "CSSStyleSelector.h"
|
| +#include "ContentData.h"
|
| +#include "RenderCounter.h"
|
| +#include "RenderStyle.h"
|
| +#include "StyleImage.h"
|
| +
|
| +namespace WebCore {
|
| +
|
| +StyleRareNonInheritedData::StyleRareNonInheritedData()
|
| + : lineClamp(RenderStyle::initialLineClamp())
|
| + , opacity(RenderStyle::initialOpacity())
|
| + , m_content(0)
|
| + , m_counterDirectives(0)
|
| + , userDrag(RenderStyle::initialUserDrag())
|
| + , textOverflow(RenderStyle::initialTextOverflow())
|
| + , marginTopCollapse(MCOLLAPSE)
|
| + , marginBottomCollapse(MCOLLAPSE)
|
| + , matchNearestMailBlockquoteColor(RenderStyle::initialMatchNearestMailBlockquoteColor())
|
| + , m_appearance(RenderStyle::initialAppearance())
|
| + , m_borderFit(RenderStyle::initialBorderFit())
|
| + , m_boxShadow(0)
|
| + , m_animations(0)
|
| + , m_transitions(0)
|
| + , m_mask(FillLayer(MaskFillLayer))
|
| +#if ENABLE(XBL)
|
| + , bindingURI(0)
|
| +#endif
|
| +{
|
| +}
|
| +
|
| +StyleRareNonInheritedData::StyleRareNonInheritedData(const StyleRareNonInheritedData& o)
|
| + : RefCounted<StyleRareNonInheritedData>()
|
| + , lineClamp(o.lineClamp)
|
| + , opacity(o.opacity)
|
| + , flexibleBox(o.flexibleBox)
|
| + , marquee(o.marquee)
|
| + , m_multiCol(o.m_multiCol)
|
| + , m_transform(o.m_transform)
|
| + , m_content(0)
|
| + , m_counterDirectives(0)
|
| + , userDrag(o.userDrag)
|
| + , textOverflow(o.textOverflow)
|
| + , marginTopCollapse(o.marginTopCollapse)
|
| + , marginBottomCollapse(o.marginBottomCollapse)
|
| + , matchNearestMailBlockquoteColor(o.matchNearestMailBlockquoteColor)
|
| + , m_appearance(o.m_appearance)
|
| + , m_borderFit(o.m_borderFit)
|
| + , m_boxShadow(o.m_boxShadow ? new ShadowData(*o.m_boxShadow) : 0)
|
| + , m_boxReflect(o.m_boxReflect)
|
| + , m_animations(o.m_animations ? new AnimationList(*o.m_animations) : 0)
|
| + , m_transitions(o.m_transitions ? new AnimationList(*o.m_transitions) : 0)
|
| + , m_mask(o.m_mask)
|
| + , m_maskBoxImage(o.m_maskBoxImage)
|
| +#if ENABLE(XBL)
|
| + , bindingURI(o.bindingURI ? o.bindingURI->copy() : 0)
|
| +#endif
|
| +{
|
| +}
|
| +
|
| +StyleRareNonInheritedData::~StyleRareNonInheritedData()
|
| +{
|
| +}
|
| +
|
| +#if ENABLE(XBL)
|
| +bool StyleRareNonInheritedData::bindingsEquivalent(const StyleRareNonInheritedData& o) const
|
| +{
|
| + if (this == &o) return true;
|
| + if (!bindingURI && o.bindingURI || bindingURI && !o.bindingURI)
|
| + return false;
|
| + if (bindingURI && o.bindingURI && (*bindingURI != *o.bindingURI))
|
| + return false;
|
| + return true;
|
| +}
|
| +#endif
|
| +
|
| +bool StyleRareNonInheritedData::operator==(const StyleRareNonInheritedData& o) const
|
| +{
|
| + return lineClamp == o.lineClamp
|
| +#if ENABLE(DASHBOARD_SUPPORT)
|
| + && m_dashboardRegions == o.m_dashboardRegions
|
| +#endif
|
| + && opacity == o.opacity
|
| + && flexibleBox == o.flexibleBox
|
| + && marquee == o.marquee
|
| + && m_multiCol == o.m_multiCol
|
| + && m_transform == o.m_transform
|
| + && contentDataEquivalent(o)
|
| + && m_counterDirectives == o.m_counterDirectives
|
| + && userDrag == o.userDrag
|
| + && textOverflow == o.textOverflow
|
| + && marginTopCollapse == o.marginTopCollapse
|
| + && marginBottomCollapse == o.marginBottomCollapse
|
| + && matchNearestMailBlockquoteColor == o.matchNearestMailBlockquoteColor
|
| + && m_appearance == o.m_appearance
|
| + && m_borderFit == o.m_borderFit
|
| + && shadowDataEquivalent(o)
|
| + && reflectionDataEquivalent(o)
|
| + && animationDataEquivalent(o)
|
| + && transitionDataEquivalent(o)
|
| + && m_mask == o.m_mask
|
| + && m_maskBoxImage == o.m_maskBoxImage
|
| +#if ENABLE(XBL)
|
| + && bindingsEquivalent(o)
|
| +#endif
|
| + ;
|
| +}
|
| +
|
| +bool StyleRareNonInheritedData::contentDataEquivalent(const StyleRareNonInheritedData& o) const
|
| +{
|
| + ContentData* c1 = m_content.get();
|
| + ContentData* c2 = o.m_content.get();
|
| +
|
| + while (c1 && c2) {
|
| + if (c1->m_type != c2->m_type)
|
| + return false;
|
| +
|
| + switch (c1->m_type) {
|
| + case CONTENT_NONE:
|
| + break;
|
| + case CONTENT_TEXT:
|
| + if (!equal(c1->m_content.m_text, c2->m_content.m_text))
|
| + return false;
|
| + break;
|
| + case CONTENT_OBJECT:
|
| + if (!StyleImage::imagesEquivalent(c1->m_content.m_image, c2->m_content.m_image))
|
| + return false;
|
| + break;
|
| + case CONTENT_COUNTER:
|
| + if (*c1->m_content.m_counter != *c2->m_content.m_counter)
|
| + return false;
|
| + break;
|
| + }
|
| +
|
| + c1 = c1->m_next;
|
| + c2 = c2->m_next;
|
| + }
|
| +
|
| + return !c1 && !c2;
|
| +}
|
| +
|
| +bool StyleRareNonInheritedData::shadowDataEquivalent(const StyleRareNonInheritedData& o) const
|
| +{
|
| + if (!m_boxShadow && o.m_boxShadow || m_boxShadow && !o.m_boxShadow)
|
| + return false;
|
| + if (m_boxShadow && o.m_boxShadow && (*m_boxShadow != *o.m_boxShadow))
|
| + return false;
|
| + return true;
|
| +}
|
| +
|
| +bool StyleRareNonInheritedData::reflectionDataEquivalent(const StyleRareNonInheritedData& o) const
|
| +{
|
| + if (m_boxReflect != o.m_boxReflect) {
|
| + if (!m_boxReflect || !o.m_boxReflect)
|
| + return false;
|
| + return *m_boxReflect == *o.m_boxReflect;
|
| + }
|
| + return true;
|
| +
|
| +}
|
| +
|
| +bool StyleRareNonInheritedData::animationDataEquivalent(const StyleRareNonInheritedData& o) const
|
| +{
|
| + if (!m_animations && o.m_animations || m_animations && !o.m_animations)
|
| + return false;
|
| + if (m_animations && o.m_animations && (*m_animations != *o.m_animations))
|
| + return false;
|
| + return true;
|
| +}
|
| +
|
| +bool StyleRareNonInheritedData::transitionDataEquivalent(const StyleRareNonInheritedData& o) const
|
| +{
|
| + if (!m_transitions && o.m_transitions || m_transitions && !o.m_transitions)
|
| + return false;
|
| + if (m_transitions && o.m_transitions && (*m_transitions != *o.m_transitions))
|
| + return false;
|
| + return true;
|
| +}
|
| +
|
| +} // namespace WebCore
|
|
|