OLD | NEW |
1 /** | 1 /** |
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. | 3 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 namespace WebCore { | 31 namespace WebCore { |
32 | 32 |
33 struct SameSizeAsCSSProperty { | 33 struct SameSizeAsCSSProperty { |
34 uint32_t bitfields; | 34 uint32_t bitfields; |
35 void* value; | 35 void* value; |
36 }; | 36 }; |
37 | 37 |
38 COMPILE_ASSERT(sizeof(CSSProperty) == sizeof(SameSizeAsCSSProperty), CSSProperty
_should_stay_small); | 38 COMPILE_ASSERT(sizeof(CSSProperty) == sizeof(SameSizeAsCSSProperty), CSSProperty
_should_stay_small); |
39 | 39 |
| 40 CSSPropertyID StylePropertyMetadata::shorthandID() const |
| 41 { |
| 42 if (!m_isSetFromShorthand) |
| 43 return CSSPropertyInvalid; |
| 44 |
| 45 const Vector<StylePropertyShorthand> shorthands = matchingShorthandsForLongh
and(static_cast<CSSPropertyID>(m_propertyID)); |
| 46 ASSERT(shorthands.size() && m_indexInShorthandsVector >= 0 && m_indexInShort
handsVector < shorthands.size()); |
| 47 return shorthands.at(m_indexInShorthandsVector).id(); |
| 48 } |
| 49 |
40 void CSSProperty::wrapValueInCommaSeparatedList() | 50 void CSSProperty::wrapValueInCommaSeparatedList() |
41 { | 51 { |
42 RefPtr<CSSValue> value = m_value.release(); | 52 RefPtr<CSSValue> value = m_value.release(); |
43 m_value = CSSValueList::createCommaSeparated(); | 53 m_value = CSSValueList::createCommaSeparated(); |
44 toCSSValueList(m_value.get())->append(value.release()); | 54 toCSSValueList(m_value.get())->append(value.release()); |
45 } | 55 } |
46 | 56 |
47 enum LogicalBoxSide { BeforeSide, EndSide, AfterSide, StartSide }; | 57 enum LogicalBoxSide { BeforeSide, EndSide, AfterSide, StartSide }; |
48 enum PhysicalBoxSide { TopSide, RightSide, BottomSide, LeftSide }; | 58 enum PhysicalBoxSide { TopSide, RightSide, BottomSide, LeftSide }; |
49 | 59 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 static CSSPropertyID resolveToPhysicalProperty(WritingMode writingMode, LogicalE
xtent logicalSide, const CSSPropertyID* properties) | 167 static CSSPropertyID resolveToPhysicalProperty(WritingMode writingMode, LogicalE
xtent logicalSide, const CSSPropertyID* properties) |
158 { | 168 { |
159 if (writingMode == TopToBottomWritingMode || writingMode == BottomToTopWriti
ngMode) | 169 if (writingMode == TopToBottomWritingMode || writingMode == BottomToTopWriti
ngMode) |
160 return properties[logicalSide]; | 170 return properties[logicalSide]; |
161 return logicalSide == LogicalWidth ? properties[1] : properties[0]; | 171 return logicalSide == LogicalWidth ? properties[1] : properties[0]; |
162 } | 172 } |
163 | 173 |
164 static const StylePropertyShorthand& borderDirections() | 174 static const StylePropertyShorthand& borderDirections() |
165 { | 175 { |
166 static const CSSPropertyID properties[4] = { CSSPropertyBorderTop, CSSProper
tyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft }; | 176 static const CSSPropertyID properties[4] = { CSSPropertyBorderTop, CSSProper
tyBorderRight, CSSPropertyBorderBottom, CSSPropertyBorderLeft }; |
167 DEFINE_STATIC_LOCAL(StylePropertyShorthand, borderDirections, (properties, W
TF_ARRAY_LENGTH(properties))); | 177 DEFINE_STATIC_LOCAL(StylePropertyShorthand, borderDirections, (CSSPropertyBo
rder, properties, WTF_ARRAY_LENGTH(properties))); |
168 return borderDirections; | 178 return borderDirections; |
169 } | 179 } |
170 | 180 |
171 CSSPropertyID CSSProperty::resolveDirectionAwareProperty(CSSPropertyID propertyI
D, TextDirection direction, WritingMode writingMode) | 181 CSSPropertyID CSSProperty::resolveDirectionAwareProperty(CSSPropertyID propertyI
D, TextDirection direction, WritingMode writingMode) |
172 { | 182 { |
173 switch (propertyID) { | 183 switch (propertyID) { |
174 case CSSPropertyWebkitMarginEnd: | 184 case CSSPropertyWebkitMarginEnd: |
175 return resolveToPhysicalProperty(direction, writingMode, EndSide, margin
Shorthand()); | 185 return resolveToPhysicalProperty(direction, writingMode, EndSide, margin
Shorthand()); |
176 case CSSPropertyWebkitMarginStart: | 186 case CSSPropertyWebkitMarginStart: |
177 return resolveToPhysicalProperty(direction, writingMode, StartSide, marg
inShorthand()); | 187 return resolveToPhysicalProperty(direction, writingMode, StartSide, marg
inShorthand()); |
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
669 } | 679 } |
670 | 680 |
671 void CSSProperty::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const | 681 void CSSProperty::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const |
672 { | 682 { |
673 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS); | 683 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS); |
674 info.addMember(m_value, "value"); | 684 info.addMember(m_value, "value"); |
675 info.ignoreMember(m_metadata); | 685 info.ignoreMember(m_metadata); |
676 } | 686 } |
677 | 687 |
678 } // namespace WebCore | 688 } // namespace WebCore |
OLD | NEW |