2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
18 * You should have received a copy of the GNU Library General Public License
19 * along with this library; see the file COPYING.LIB. If not, write to
20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
25 #ifndef StyleRareInheritedData_h
26 #define StyleRareInheritedData_h
30 #include <wtf/RefCounted.h>
31 #include <wtf/PassRefPtr.h>
32 #include <wtf/text/AtomicString.h>
40 // This struct is for rarely used inherited CSS3, CSS2, and WebKit-specific properties.
41 // By grouping them together, we save space, and only allocate this object when someone
42 // actually uses one of these properties.
43 class StyleRareInheritedData : public RefCounted<StyleRareInheritedData> {
45 static PassRefPtr<StyleRareInheritedData> create() { return adoptRef(new StyleRareInheritedData); }
46 PassRefPtr<StyleRareInheritedData> copy() const { return adoptRef(new StyleRareInheritedData(*this)); }
47 ~StyleRareInheritedData();
49 bool operator==(const StyleRareInheritedData& o) const;
50 bool operator!=(const StyleRareInheritedData& o) const
54 bool shadowDataEquivalent(const StyleRareInheritedData&) const;
56 Color textStrokeColor;
57 float textStrokeWidth;
59 Color textEmphasisColor;
61 Color visitedLinkTextStrokeColor;
62 Color visitedLinkTextFillColor;
63 Color visitedLinkTextEmphasisColor;
65 OwnPtr<ShadowData> textShadow; // Our text shadow information for shadowed text drawing.
66 AtomicString highlight; // Apple-specific extension for custom highlight rendering.
68 RefPtr<CursorList> cursorData;
70 float m_effectiveZoom;
72 // Paged media properties.
76 unsigned textSecurity : 2; // ETextSecurity
77 unsigned userModify : 2; // EUserModify (editing)
78 unsigned wordBreak : 2; // EWordBreak
79 unsigned wordWrap : 1; // EWordWrap
80 unsigned nbspMode : 1; // ENBSPMode
81 unsigned khtmlLineBreak : 1; // EKHTMLLineBreak
82 bool textSizeAdjust : 1; // An Apple extension.
83 unsigned resize : 2; // EResize
84 unsigned userSelect : 1; // EUserSelect
85 unsigned colorSpace : 1; // ColorSpace
86 unsigned speak : 3; // ESpeak
87 unsigned hyphens : 2; // Hyphens
88 unsigned textEmphasisFill : 1; // TextEmphasisFill
89 unsigned textEmphasisMark : 3; // TextEmphasisMark
90 unsigned textEmphasisPosition : 1; // TextEmphasisPosition
91 unsigned m_lineBoxContain: 7; // LineBoxContain
92 // CSS Image Values Level 3
93 unsigned m_imageRendering : 2; // EImageRendering
94 unsigned m_lineGridSnap : 2; // LineGridSnap
96 AtomicString hyphenationString;
97 short hyphenationLimitBefore;
98 short hyphenationLimitAfter;
99 short hyphenationLimitLines;
103 AtomicString textEmphasisCustomMark;
104 RefPtr<QuotesData> quotes;
106 AtomicString m_lineGrid;
108 #if ENABLE(TOUCH_EVENTS)
109 Color tapHighlightColor;
113 StyleRareInheritedData();
114 StyleRareInheritedData(const StyleRareInheritedData&);
117 } // namespace WebCore
119 #endif // StyleRareInheritedData_h