Bug 976787 part 2: Add the grid-template-areas property to the style system. r=dholbert
This commit is contained in:
@@ -178,6 +178,10 @@ nsCSSValue::nsCSSValue(const nsCSSValue& aCopy)
|
||||
else if (eCSSUnit_PairListDep == mUnit) {
|
||||
mValue.mPairListDependent = aCopy.mValue.mPairListDependent;
|
||||
}
|
||||
else if (eCSSUnit_GridTemplateAreas == mUnit) {
|
||||
mValue.mGridTemplateAreas = aCopy.mValue.mGridTemplateAreas;
|
||||
mValue.mGridTemplateAreas->AddRef();
|
||||
}
|
||||
else {
|
||||
NS_ABORT_IF_FALSE(false, "unknown unit");
|
||||
}
|
||||
@@ -250,6 +254,9 @@ bool nsCSSValue::operator==(const nsCSSValue& aOther) const
|
||||
else if (eCSSUnit_PairList == mUnit) {
|
||||
return *mValue.mPairList == *aOther.mValue.mPairList;
|
||||
}
|
||||
else if (eCSSUnit_GridTemplateAreas == mUnit) {
|
||||
return *mValue.mGridTemplateAreas == *aOther.mValue.mGridTemplateAreas;
|
||||
}
|
||||
else {
|
||||
return mValue.mFloat == aOther.mValue.mFloat;
|
||||
}
|
||||
@@ -336,6 +343,8 @@ void nsCSSValue::DoReset()
|
||||
mValue.mSharedList->Release();
|
||||
} else if (eCSSUnit_PairList == mUnit) {
|
||||
mValue.mPairList->Release();
|
||||
} else if (eCSSUnit_GridTemplateAreas == mUnit) {
|
||||
mValue.mGridTemplateAreas->Release();
|
||||
}
|
||||
mUnit = eCSSUnit_Null;
|
||||
}
|
||||
@@ -587,6 +596,15 @@ void nsCSSValue::SetDependentPairListValue(nsCSSValuePairList* aList)
|
||||
}
|
||||
}
|
||||
|
||||
nsCSSValueGridTemplateAreas& nsCSSValue::SetGridTemplateAreas()
|
||||
{
|
||||
Reset();
|
||||
mUnit = eCSSUnit_GridTemplateAreas;
|
||||
mValue.mGridTemplateAreas = new nsCSSValueGridTemplateAreas;
|
||||
mValue.mGridTemplateAreas->AddRef();
|
||||
return *mValue.mGridTemplateAreas;
|
||||
}
|
||||
|
||||
void nsCSSValue::SetAutoValue()
|
||||
{
|
||||
Reset();
|
||||
@@ -1307,6 +1325,8 @@ nsCSSValue::AppendToString(nsCSSProperty aProperty, nsAString& aResult,
|
||||
GetPairListValue()->AppendToString(aProperty, aResult, aSerialization);
|
||||
break;
|
||||
}
|
||||
} else if (eCSSUnit_GridTemplateAreas == unit) {
|
||||
GetGridTemplateAreas().AppendToString(aProperty, aResult, aSerialization);
|
||||
}
|
||||
|
||||
switch (unit) {
|
||||
@@ -1368,6 +1388,7 @@ nsCSSValue::AppendToString(nsCSSProperty aProperty, nsAString& aResult,
|
||||
case eCSSUnit_SharedList: break;
|
||||
case eCSSUnit_PairList: break;
|
||||
case eCSSUnit_PairListDep: break;
|
||||
case eCSSUnit_GridTemplateAreas: break;
|
||||
|
||||
case eCSSUnit_Inch: aResult.AppendLiteral("in"); break;
|
||||
case eCSSUnit_Millimeter: aResult.AppendLiteral("mm"); break;
|
||||
@@ -1509,6 +1530,11 @@ nsCSSValue::SizeOfExcludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
|
||||
case eCSSUnit_PairListDep:
|
||||
break;
|
||||
|
||||
// GridTemplateAreas
|
||||
case eCSSUnit_GridTemplateAreas:
|
||||
n += mValue.mGridTemplateAreas->SizeOfIncludingThis(aMallocSizeOf);
|
||||
break;
|
||||
|
||||
// Int: nothing extra to measure.
|
||||
case eCSSUnit_Integer:
|
||||
case eCSSUnit_Enumerated:
|
||||
@@ -2335,3 +2361,28 @@ nsCSSCornerSizes::corners[4] = {
|
||||
&nsCSSCornerSizes::mBottomRight,
|
||||
&nsCSSCornerSizes::mBottomLeft,
|
||||
};
|
||||
|
||||
void
|
||||
nsCSSValueGridTemplateAreas::AppendToString(nsCSSProperty aProperty,
|
||||
nsAString& aResult,
|
||||
nsCSSValue::Serialization aValueSerialization) const
|
||||
{
|
||||
uint32_t length = mTemplates.Length();
|
||||
if (length == 0) {
|
||||
aResult.AppendLiteral("none");
|
||||
} else {
|
||||
nsStyleUtil::AppendEscapedCSSString(mTemplates[0], aResult);
|
||||
for (uint32_t i = 1; i < length; i++) {
|
||||
aResult.Append(char16_t(' '));
|
||||
nsStyleUtil::AppendEscapedCSSString(mTemplates[i], aResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
size_t
|
||||
nsCSSValueGridTemplateAreas::SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const
|
||||
{
|
||||
size_t n = mNamedAreas.SizeOfExcludingThis(aMallocSizeOf);
|
||||
n += mTemplates.SizeOfIncludingThis(aMallocSizeOf);
|
||||
return n;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user