StyleRareInheritedData.cpp [plain text]
#include "config.h"
#include "StyleRareInheritedData.h"
#include "CursorList.h"
#include "QuotesData.h"
#include "RenderStyle.h"
#include "RenderStyleConstants.h"
#include "ShadowData.h"
namespace WebCore {
StyleRareInheritedData::StyleRareInheritedData()
: textStrokeWidth(RenderStyle::initialTextStrokeWidth())
, indent(RenderStyle::initialTextIndent())
, m_effectiveZoom(RenderStyle::initialZoom())
, widows(RenderStyle::initialWidows())
, orphans(RenderStyle::initialOrphans())
, textSecurity(RenderStyle::initialTextSecurity())
, userModify(READ_ONLY)
, wordBreak(RenderStyle::initialWordBreak())
, wordWrap(RenderStyle::initialWordWrap())
, nbspMode(NBNORMAL)
, khtmlLineBreak(LBNORMAL)
, textSizeAdjust(RenderStyle::initialTextSizeAdjust())
, resize(RenderStyle::initialResize())
, userSelect(RenderStyle::initialUserSelect())
, colorSpace(ColorSpaceDeviceRGB)
, speak(SpeakNormal)
, hyphens(HyphensManual)
, textEmphasisFill(TextEmphasisFillFilled)
, textEmphasisMark(TextEmphasisMarkNone)
, textEmphasisPosition(TextEmphasisPositionOver)
, m_lineBoxContain(RenderStyle::initialLineBoxContain())
, m_imageRendering(RenderStyle::initialImageRendering())
, m_lineSnap(RenderStyle::initialLineSnap())
, m_lineAlign(RenderStyle::initialLineAlign())
#if ENABLE(OVERFLOW_SCROLLING)
, useTouchOverflowScrolling(RenderStyle::initialUseTouchOverflowScrolling())
#endif
, hyphenationLimitBefore(-1)
, hyphenationLimitAfter(-1)
, hyphenationLimitLines(-1)
, m_lineGrid(RenderStyle::initialLineGrid())
#if ENABLE(TOUCH_EVENTS)
, tapHighlightColor(RenderStyle::initialTapHighlightColor())
#endif
{
}
StyleRareInheritedData::StyleRareInheritedData(const StyleRareInheritedData& o)
: RefCounted<StyleRareInheritedData>()
, textStrokeColor(o.textStrokeColor)
, textStrokeWidth(o.textStrokeWidth)
, textFillColor(o.textFillColor)
, textEmphasisColor(o.textEmphasisColor)
, visitedLinkTextStrokeColor(o.visitedLinkTextStrokeColor)
, visitedLinkTextFillColor(o.visitedLinkTextFillColor)
, visitedLinkTextEmphasisColor(o.visitedLinkTextEmphasisColor)
, textShadow(o.textShadow ? adoptPtr(new ShadowData(*o.textShadow)) : nullptr)
, highlight(o.highlight)
, cursorData(o.cursorData)
, indent(o.indent)
, m_effectiveZoom(o.m_effectiveZoom)
, widows(o.widows)
, orphans(o.orphans)
, textSecurity(o.textSecurity)
, userModify(o.userModify)
, wordBreak(o.wordBreak)
, wordWrap(o.wordWrap)
, nbspMode(o.nbspMode)
, khtmlLineBreak(o.khtmlLineBreak)
, textSizeAdjust(o.textSizeAdjust)
, resize(o.resize)
, userSelect(o.userSelect)
, colorSpace(o.colorSpace)
, speak(o.speak)
, hyphens(o.hyphens)
, textEmphasisFill(o.textEmphasisFill)
, textEmphasisMark(o.textEmphasisMark)
, textEmphasisPosition(o.textEmphasisPosition)
, m_lineBoxContain(o.m_lineBoxContain)
, m_imageRendering(o.m_imageRendering)
, m_lineSnap(o.m_lineSnap)
, m_lineAlign(o.m_lineAlign)
#if ENABLE(OVERFLOW_SCROLLING)
, useTouchOverflowScrolling(o.useTouchOverflowScrolling)
#endif
, hyphenationString(o.hyphenationString)
, hyphenationLimitBefore(o.hyphenationLimitBefore)
, hyphenationLimitAfter(o.hyphenationLimitAfter)
, hyphenationLimitLines(o.hyphenationLimitLines)
, locale(o.locale)
, textEmphasisCustomMark(o.textEmphasisCustomMark)
, m_lineGrid(o.m_lineGrid)
#if ENABLE(TOUCH_EVENTS)
, tapHighlightColor(o.tapHighlightColor)
#endif
{
}
StyleRareInheritedData::~StyleRareInheritedData()
{
}
static bool cursorDataEquivalent(const CursorList* c1, const CursorList* c2)
{
if (c1 == c2)
return true;
if ((!c1 && c2) || (c1 && !c2))
return false;
return (*c1 == *c2);
}
bool StyleRareInheritedData::operator==(const StyleRareInheritedData& o) const
{
return textStrokeColor == o.textStrokeColor
&& textStrokeWidth == o.textStrokeWidth
&& textFillColor == o.textFillColor
&& textEmphasisColor == o.textEmphasisColor
&& visitedLinkTextStrokeColor == o.visitedLinkTextStrokeColor
&& visitedLinkTextFillColor == o.visitedLinkTextFillColor
&& visitedLinkTextEmphasisColor == o.visitedLinkTextEmphasisColor
#if ENABLE(TOUCH_EVENTS)
&& tapHighlightColor == o.tapHighlightColor
#endif
&& shadowDataEquivalent(o)
&& highlight == o.highlight
&& cursorDataEquivalent(cursorData.get(), o.cursorData.get())
&& indent == o.indent
&& m_effectiveZoom == o.m_effectiveZoom
&& widows == o.widows
&& orphans == o.orphans
&& textSecurity == o.textSecurity
&& userModify == o.userModify
&& wordBreak == o.wordBreak
&& wordWrap == o.wordWrap
&& nbspMode == o.nbspMode
&& khtmlLineBreak == o.khtmlLineBreak
#if ENABLE(OVERFLOW_SCROLLING)
&& useTouchOverflowScrolling == o.useTouchOverflowScrolling
#endif
&& textSizeAdjust == o.textSizeAdjust
&& resize == o.resize
&& userSelect == o.userSelect
&& colorSpace == o.colorSpace
&& speak == o.speak
&& hyphens == o.hyphens
&& hyphenationLimitBefore == o.hyphenationLimitBefore
&& hyphenationLimitAfter == o.hyphenationLimitAfter
&& hyphenationLimitLines == o.hyphenationLimitLines
&& textEmphasisFill == o.textEmphasisFill
&& textEmphasisMark == o.textEmphasisMark
&& textEmphasisPosition == o.textEmphasisPosition
&& m_lineBoxContain == o.m_lineBoxContain
&& hyphenationString == o.hyphenationString
&& locale == o.locale
&& textEmphasisCustomMark == o.textEmphasisCustomMark
&& QuotesData::equal(quotes.get(), o.quotes.get())
&& m_lineGrid == o.m_lineGrid
&& m_imageRendering == o.m_imageRendering
&& m_lineSnap == o.m_lineSnap
&& m_lineAlign == o.m_lineAlign;
}
bool StyleRareInheritedData::shadowDataEquivalent(const StyleRareInheritedData& o) const
{
if ((!textShadow && o.textShadow) || (textShadow && !o.textShadow))
return false;
if (textShadow && o.textShadow && (*textShadow != *o.textShadow))
return false;
return true;
}
}