Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(326)

Side by Side Diff: third_party/WebKit/Source/core/style/ComputedStyle.h

Issue 2609133002: Generated writing-mode in ComputedStyleBase (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 194
195 // !START SYNC!: Keep this in sync with the copy constructor in 195 // !START SYNC!: Keep this in sync with the copy constructor in
196 // ComputedStyle.cpp and implicitlyInherited() in StyleResolver.cpp 196 // ComputedStyle.cpp and implicitlyInherited() in StyleResolver.cpp
197 197
198 // inherit 198 // inherit
199 struct InheritedData { 199 struct InheritedData {
200 bool operator==(const InheritedData& other) const { 200 bool operator==(const InheritedData& other) const {
201 return (m_hasSimpleUnderline == other.m_hasSimpleUnderline) && 201 return (m_hasSimpleUnderline == other.m_hasSimpleUnderline) &&
202 (m_cursorStyle == other.m_cursorStyle) && 202 (m_cursorStyle == other.m_cursorStyle) &&
203 (m_rtlOrdering == other.m_rtlOrdering) && 203 (m_rtlOrdering == other.m_rtlOrdering) &&
204 (m_insideLink == other.m_insideLink) && 204 (m_insideLink == other.m_insideLink);
205 (m_writingMode == other.m_writingMode);
206 } 205 }
207 206
208 bool operator!=(const InheritedData& other) const { 207 bool operator!=(const InheritedData& other) const {
209 return !(*this == other); 208 return !(*this == other);
210 } 209 }
211 210
212 unsigned m_hasSimpleUnderline : 1; // True if 'underline solid' is the only 211 unsigned m_hasSimpleUnderline : 1; // True if 'underline solid' is the only
213 // text decoration on this element. 212 // text decoration on this element.
214 unsigned m_cursorStyle : 6; // ECursor 213 unsigned m_cursorStyle : 6; // ECursor
215 // 32 bits
216 214
217 // non CSS2 inherited 215 // non CSS2 inherited
218 unsigned m_rtlOrdering : 1; // EOrder 216 unsigned m_rtlOrdering : 1; // EOrder
219 unsigned m_insideLink : 2; // EInsideLink 217 unsigned m_insideLink : 2; // EInsideLink
220
221 // CSS Text Layout Module Level 3: Vertical writing support
222 unsigned m_writingMode : 2; // WritingMode
223 // 42 bits
224 } m_inheritedData; 218 } m_inheritedData;
225 219
226 // don't inherit 220 // don't inherit
227 struct NonInheritedData { 221 struct NonInheritedData {
228 // Compare computed styles, differences in inherited bits or other flags 222 // Compare computed styles, differences in inherited bits or other flags
229 // should not cause an inequality. 223 // should not cause an inequality.
230 bool operator==(const NonInheritedData& other) const { 224 bool operator==(const NonInheritedData& other) const {
231 return m_effectiveDisplay == other.m_effectiveDisplay && 225 return m_effectiveDisplay == other.m_effectiveDisplay &&
232 m_originalDisplay == other.m_originalDisplay && 226 m_originalDisplay == other.m_originalDisplay &&
233 m_overflowAnchor == other.m_overflowAnchor && 227 m_overflowAnchor == other.m_overflowAnchor &&
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 } m_nonInheritedData; 300 } m_nonInheritedData;
307 301
308 // !END SYNC! 302 // !END SYNC!
309 303
310 void setBitDefaults() { 304 void setBitDefaults() {
311 ComputedStyleBase::setBitDefaults(); 305 ComputedStyleBase::setBitDefaults();
312 m_inheritedData.m_hasSimpleUnderline = false; 306 m_inheritedData.m_hasSimpleUnderline = false;
313 m_inheritedData.m_cursorStyle = static_cast<unsigned>(initialCursor()); 307 m_inheritedData.m_cursorStyle = static_cast<unsigned>(initialCursor());
314 m_inheritedData.m_rtlOrdering = static_cast<unsigned>(initialRTLOrdering()); 308 m_inheritedData.m_rtlOrdering = static_cast<unsigned>(initialRTLOrdering());
315 m_inheritedData.m_insideLink = NotInsideLink; 309 m_inheritedData.m_insideLink = NotInsideLink;
316 m_inheritedData.m_writingMode = static_cast<unsigned>(initialWritingMode());
317 310
318 m_nonInheritedData.m_effectiveDisplay = 311 m_nonInheritedData.m_effectiveDisplay =
319 m_nonInheritedData.m_originalDisplay = 312 m_nonInheritedData.m_originalDisplay =
320 static_cast<unsigned>(initialDisplay()); 313 static_cast<unsigned>(initialDisplay());
321 m_nonInheritedData.m_overflowAnchor = 314 m_nonInheritedData.m_overflowAnchor =
322 static_cast<unsigned>(initialOverflowAnchor()); 315 static_cast<unsigned>(initialOverflowAnchor());
323 m_nonInheritedData.m_overflowX = static_cast<unsigned>(initialOverflowX()); 316 m_nonInheritedData.m_overflowX = static_cast<unsigned>(initialOverflowX());
324 m_nonInheritedData.m_overflowY = static_cast<unsigned>(initialOverflowY()); 317 m_nonInheritedData.m_overflowY = static_cast<unsigned>(initialOverflowY());
325 m_nonInheritedData.m_verticalAlign = 318 m_nonInheritedData.m_verticalAlign =
326 static_cast<unsigned>(initialVerticalAlign()); 319 static_cast<unsigned>(initialVerticalAlign());
(...skipping 1858 matching lines...) Expand 10 before | Expand all | Expand 10 after
2185 SET_VAR(m_rareInheritedData, wordBreak, b); 2178 SET_VAR(m_rareInheritedData, wordBreak, b);
2186 } 2179 }
2187 2180
2188 // -webkit-line-break 2181 // -webkit-line-break
2189 static LineBreak initialLineBreak() { return LineBreakAuto; } 2182 static LineBreak initialLineBreak() { return LineBreakAuto; }
2190 LineBreak getLineBreak() const { 2183 LineBreak getLineBreak() const {
2191 return static_cast<LineBreak>(m_rareInheritedData->lineBreak); 2184 return static_cast<LineBreak>(m_rareInheritedData->lineBreak);
2192 } 2185 }
2193 void setLineBreak(LineBreak b) { SET_VAR(m_rareInheritedData, lineBreak, b); } 2186 void setLineBreak(LineBreak b) { SET_VAR(m_rareInheritedData, lineBreak, b); }
2194 2187
2195 // writing-mode (aka -webkit-writing-mode, -epub-writing-mode)
2196 static WritingMode initialWritingMode() { return WritingMode::HorizontalTb; }
2197 WritingMode getWritingMode() const {
2198 return static_cast<WritingMode>(m_inheritedData.m_writingMode);
2199 }
2200 void setWritingMode(WritingMode v) {
2201 m_inheritedData.m_writingMode = static_cast<unsigned>(v);
2202 }
2203
2204 // Text emphasis properties. 2188 // Text emphasis properties.
2205 static TextEmphasisFill initialTextEmphasisFill() { 2189 static TextEmphasisFill initialTextEmphasisFill() {
2206 return TextEmphasisFillFilled; 2190 return TextEmphasisFillFilled;
2207 } 2191 }
2208 static TextEmphasisMark initialTextEmphasisMark() { 2192 static TextEmphasisMark initialTextEmphasisMark() {
2209 return TextEmphasisMarkNone; 2193 return TextEmphasisMarkNone;
2210 } 2194 }
2211 static const AtomicString& initialTextEmphasisCustomMark() { 2195 static const AtomicString& initialTextEmphasisCustomMark() {
2212 return nullAtom; 2196 return nullAtom;
2213 } 2197 }
(...skipping 1755 matching lines...) Expand 10 before | Expand all | Expand 10 after
3969 m_nonInheritedData.m_pseudoBits |= 1 << (pseudo - 1); 3953 m_nonInheritedData.m_pseudoBits |= 1 << (pseudo - 1);
3970 } 3954 }
3971 3955
3972 inline bool ComputedStyle::hasPseudoElementStyle() const { 3956 inline bool ComputedStyle::hasPseudoElementStyle() const {
3973 return m_nonInheritedData.m_pseudoBits & ElementPseudoIdMask; 3957 return m_nonInheritedData.m_pseudoBits & ElementPseudoIdMask;
3974 } 3958 }
3975 3959
3976 } // namespace blink 3960 } // namespace blink
3977 3961
3978 #endif // ComputedStyle_h 3962 #endif // ComputedStyle_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSProperties.in ('k') | third_party/WebKit/Source/core/style/ComputedStyle.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698