Bug 1273705 - Add convenience methods to check if a margin is 'auto' on either side in an axis. r=dholbert

This commit is contained in:
Mats Palmgren 2016-05-18 13:49:32 +02:00
Родитель 7137368692
Коммит b4594808f5
3 изменённых файлов: 34 добавлений и 2 удалений

Просмотреть файл

@ -1856,6 +1856,18 @@ inline nsStyleUnit nsStyleSides::GetBEndUnit(mozilla::WritingMode aWM) const
return GetUnit(aWM, mozilla::eLogicalSideBEnd);
}
inline bool nsStyleSides::HasBlockAxisAuto(mozilla::WritingMode aWM) const
{
return GetBStartUnit(aWM) == eStyleUnit_Auto ||
GetBEndUnit(aWM) == eStyleUnit_Auto;
}
inline bool nsStyleSides::HasInlineAxisAuto(mozilla::WritingMode aWM) const
{
return GetIStartUnit(aWM) == eStyleUnit_Auto ||
GetIEndUnit(aWM) == eStyleUnit_Auto;
}
inline nsStyleCoord nsStyleSides::Get(mozilla::WritingMode aWM,
mozilla::LogicalSide aSide) const
{
@ -2001,4 +2013,15 @@ nsStyleDisplay::PhysicalBreakType(mozilla::WritingMode aWM) const
return mBreakType;
}
inline bool
nsStyleMargin::HasBlockAxisAuto(mozilla::WritingMode aWM) const
{
return mMargin.HasBlockAxisAuto(aWM);
}
inline bool
nsStyleMargin::HasInlineAxisAuto(mozilla::WritingMode aWM) const
{
return mMargin.HasInlineAxisAuto(aWM);
}
#endif // WritingModes_h_

Просмотреть файл

@ -295,6 +295,10 @@ public:
inline nsStyleUnit GetIEndUnit(mozilla::WritingMode aWritingMode) const;
inline nsStyleUnit GetBEndUnit(mozilla::WritingMode aWritingMode) const;
// Return true if either the start or end side in the axis is 'auto'.
inline bool HasBlockAxisAuto(mozilla::WritingMode aWritingMode) const;
inline bool HasInlineAxisAuto(mozilla::WritingMode aWritingMode) const;
inline nsStyleCoord Get(mozilla::WritingMode aWritingMode,
mozilla::LogicalSide aSide) const;
inline nsStyleCoord GetIStart(mozilla::WritingMode aWritingMode) const;

Просмотреть файл

@ -822,8 +822,6 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleMargin
return nsChangeHint(0);
}
nsStyleSides mMargin; // [reset] coord, percent, calc, auto
bool GetMargin(nsMargin& aMargin) const
{
if (mMargin.ConvertsToLength()) {
@ -841,6 +839,13 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleMargin
aMargin.Side(side) = mMargin.ToLength(side);
}
}
// Return true if either the start or end side in the axis is 'auto'.
// (defined in WritingModes.h since we need the full WritingMode type)
inline bool HasBlockAxisAuto(mozilla::WritingMode aWM) const;
inline bool HasInlineAxisAuto(mozilla::WritingMode aWM) const;
nsStyleSides mMargin; // [reset] coord, percent, calc, auto
};
struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStylePadding