18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (C) 2000 Antti Koivisto (koivisto@kde.org) 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (C) 2000 Dirk Mueller (mueller@kde.org) 506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details. 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB. If not, write to 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA. 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef RenderStyle_h 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define RenderStyle_h 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "AnimationList.h" 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "BorderValue.h" 302bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "CSSLineBoxContainValue.h" 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CSSPrimitiveValue.h" 32e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block#include "CSSPropertyNames.h" 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Color.h" 34643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "ColorSpace.h" 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "CounterDirectives.h" 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "DataRef.h" 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "FillLayer.h" 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Font.h" 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "GraphicsTypes.h" 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Length.h" 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "LengthBox.h" 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "LengthSize.h" 43643ca7872b450ea4efacab6188849e5aac2ba161Steve Block#include "LineClampValue.h" 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "NinePieceImage.h" 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "OutlineValue.h" 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "RenderStyleConstants.h" 47ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch#include "RoundedIntRect.h" 48ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch#include "ShadowData.h" 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleBackgroundData.h" 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleBoxData.h" 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleFlexibleBoxData.h" 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleInheritedData.h" 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleMarqueeData.h" 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleMultiColData.h" 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleRareInheritedData.h" 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleRareNonInheritedData.h" 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleReflection.h" 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleSurroundData.h" 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleTransformData.h" 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleVisualData.h" 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "TextDirection.h" 622bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "TextOrientation.h" 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ThemeTypes.h" 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "TransformOperations.h" 652daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include "UnicodeBidi.h" 66dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch#include <wtf/Forward.h> 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/OwnPtr.h> 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/RefCounted.h> 69635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include <wtf/StdLibExtras.h> 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/Vector.h> 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(DASHBOARD_SUPPORT) 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "StyleDashboardRegion.h" 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SVGRenderStyle.h" 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 80d0825bca7fe65beaee391d30da42e937db621564Steve Block#if COMPILER(WINSCW) 81d0825bca7fe65beaee391d30da42e937db621564Steve Block#define compareEqual(t, u) ((t) == (u)) 82d0825bca7fe65beaee391d30da42e937db621564Steve Block#else 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttemplate<typename T, typename U> inline bool compareEqual(const T& t, const U& u) { return t == static_cast<T>(u); } 84d0825bca7fe65beaee391d30da42e937db621564Steve Block#endif 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define SET_VAR(group, variable, value) \ 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!compareEqual(group->variable, value)) \ 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project group.access()->variable = value; 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectusing std::max; 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass BorderData; 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass CSSStyleSelector; 9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass CounterContent; 9765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass CursorList; 9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass IntRect; 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass Pair; 10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass ShadowData; 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass StyleImage; 10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass TransformationMatrix; 10365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct ContentData; 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 106dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef Vector<RefPtr<RenderStyle>, 4> PseudoStyleCache; 107dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass RenderStyle: public RefCounted<RenderStyle> { 109e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block friend class AnimationBase; // Used by CSS animations. We can't allow them to animate based off visited colors. 110e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block friend class ApplyStyleCommand; // Editing has to only reveal unvisited info. 11128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu friend class EditingStyle; // Editing has to only reveal unvisited info. 1122bde8e466a4451c7319e3a072d118917957d6554Steve Block friend class CSSStyleApplyProperty; // Sets members directly. 113e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block friend class CSSStyleSelector; // Sets members directly. 114e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block friend class CSSComputedStyleDeclaration; // Ignores visited styles, so needs to be able to see unvisited info. 115e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block friend class PropertyWrapperMaybeInvalidColor; // Used by CSS animations. We can't allow them to animate based off visited colors. 116e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block friend class RenderSVGResource; // FIXME: Needs to alter the visited state by hand. Should clean the SVG code up and move it into RenderStyle perhaps. 117e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block friend class RenderTreeAsText; // FIXME: Only needed so the render tree can keep lying and dump the wrong colors. Rebaselining would allow this to be yanked. 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprotected: 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1205f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian // The following bitfield is 32-bits long, which optimizes padding with the 1215f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian // int refCount in the base class. Beware when adding more bits. 1225f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_affectedByAttributeSelectors : 1; 1235f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_unique : 1; 1245f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1255f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian // Bits for dynamic child matching. 1265f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_affectedByEmpty : 1; 1275f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_emptyState : 1; 1285f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1295f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian // We optimize for :first-child and :last-child. The other positional child selectors like nth-child or 1305f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian // *-child-of-type, we will just give up and re-evaluate whenever children change at all. 1315f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_childrenAffectedByFirstChildRules : 1; 1325f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_childrenAffectedByLastChildRules : 1; 1335f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_childrenAffectedByDirectAdjacentRules : 1; 1345f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_childrenAffectedByForwardPositionalRules : 1; 1355f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_childrenAffectedByBackwardPositionalRules : 1; 1365f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_firstChildState : 1; 1375f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian bool m_lastChildState : 1; 138dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unsigned m_childIndex : 21; // Plenty of bits to cache an index. 1395f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1405f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian // non-inherited attributes 141dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block DataRef<StyleBoxData> m_box; 1425f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DataRef<StyleVisualData> visual; 143dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block DataRef<StyleBackgroundData> m_background; 1445f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DataRef<StyleSurroundData> surround; 1455f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DataRef<StyleRareNonInheritedData> rareNonInheritedData; 1465f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1475f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian // inherited attributes 1485f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DataRef<StyleRareInheritedData> rareInheritedData; 1495f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DataRef<StyleInheritedData> inherited; 1505f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1515f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian // list of associated pseudo styles 152dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block OwnPtr<PseudoStyleCache> m_cachedPseudoStyles; 1535f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1545f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#if ENABLE(SVG) 1555f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian DataRef<SVGRenderStyle> m_svgStyle; 1565f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#endif 1575f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// !START SYNC!: Keep this in sync with the copy constructor in RenderStyle.cpp 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // inherit 1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project struct InheritedFlags { 1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool operator==(const InheritedFlags& other) const 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1642daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch return (_empty_cells == other._empty_cells) 1652daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_caption_side == other._caption_side) 1662daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_list_style_type == other._list_style_type) 1672daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_list_style_position == other._list_style_position) 1682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_visibility == other._visibility) 1692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_text_align == other._text_align) 1702daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_text_transform == other._text_transform) 1712daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_text_decorations == other._text_decorations) 1722daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_cursor_style == other._cursor_style) 1732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_direction == other._direction) 1742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_border_collapse == other._border_collapse) 1752daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_white_space == other._white_space) 1762daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_box_direction == other._box_direction) 1772daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_visuallyOrdered == other._visuallyOrdered) 1782daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_force_backgrounds_to_white == other._force_backgrounds_to_white) 1792daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_pointerEvents == other._pointerEvents) 1802daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (_insideLink == other._insideLink) 1812daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch && (m_writingMode == other.m_writingMode); 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool operator!=(const InheritedFlags& other) const { return !(*this == other); } 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _empty_cells : 1; // EEmptyCell 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _caption_side : 2; // ECaptionSide 1888a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block unsigned _list_style_type : 7; // EListStyleType 1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _list_style_position : 1; // EListStylePosition 1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _visibility : 2; // EVisibility 1912bde8e466a4451c7319e3a072d118917957d6554Steve Block unsigned _text_align : 4; // ETextAlign 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _text_transform : 2; // ETextTransform 1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _text_decorations : 4; 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _cursor_style : 6; // ECursor 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _direction : 1; // TextDirection 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool _border_collapse : 1 ; 1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _white_space : 3; // EWhiteSpace 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _box_direction : 1; // EBoxDirection (CSS3 box_direction property, flexible box layout module) 1998a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block // 34 bits 2005f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // non CSS2 inherited 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool _visuallyOrdered : 1; 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool _force_backgrounds_to_white : 1; 204635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project unsigned _pointerEvents : 4; // EPointerEvents 205dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unsigned _insideLink : 2; // EInsideLink 206dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // 43 bits 20768513a70bcd92384395513322f1b801e7bf9c729Steve Block 20868513a70bcd92384395513322f1b801e7bf9c729Steve Block // CSS Text Layout Module Level 3: Vertical writing support 209a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch unsigned m_writingMode : 2; // WritingMode 21068513a70bcd92384395513322f1b801e7bf9c729Steve Block // 45 bits 2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } inherited_flags; 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// don't inherit 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project struct NonInheritedFlags { 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool operator==(const NonInheritedFlags& other) const 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 217d0825bca7fe65beaee391d30da42e937db621564Steve Block return _effectiveDisplay == other._effectiveDisplay 218d0825bca7fe65beaee391d30da42e937db621564Steve Block && _originalDisplay == other._originalDisplay 219d0825bca7fe65beaee391d30da42e937db621564Steve Block && _overflowX == other._overflowX 220d0825bca7fe65beaee391d30da42e937db621564Steve Block && _overflowY == other._overflowY 221d0825bca7fe65beaee391d30da42e937db621564Steve Block && _vertical_align == other._vertical_align 222d0825bca7fe65beaee391d30da42e937db621564Steve Block && _clear == other._clear 223d0825bca7fe65beaee391d30da42e937db621564Steve Block && _position == other._position 224d0825bca7fe65beaee391d30da42e937db621564Steve Block && _floating == other._floating 225d0825bca7fe65beaee391d30da42e937db621564Steve Block && _table_layout == other._table_layout 226d0825bca7fe65beaee391d30da42e937db621564Steve Block && _page_break_before == other._page_break_before 227d0825bca7fe65beaee391d30da42e937db621564Steve Block && _page_break_after == other._page_break_after 228d0825bca7fe65beaee391d30da42e937db621564Steve Block && _page_break_inside == other._page_break_inside 229d0825bca7fe65beaee391d30da42e937db621564Steve Block && _styleType == other._styleType 230d0825bca7fe65beaee391d30da42e937db621564Steve Block && _affectedByHover == other._affectedByHover 231d0825bca7fe65beaee391d30da42e937db621564Steve Block && _affectedByActive == other._affectedByActive 232d0825bca7fe65beaee391d30da42e937db621564Steve Block && _affectedByDrag == other._affectedByDrag 233d0825bca7fe65beaee391d30da42e937db621564Steve Block && _pseudoBits == other._pseudoBits 234dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block && _unicodeBidi == other._unicodeBidi 235dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block && _isLink == other._isLink; 2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool operator!=(const NonInheritedFlags& other) const { return !(*this == other); } 2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _effectiveDisplay : 5; // EDisplay 2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _originalDisplay : 5; // EDisplay 2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _overflowX : 3; // EOverflow 2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _overflowY : 3; // EOverflow 2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _vertical_align : 4; // EVerticalAlign 2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _clear : 2; // EClear 2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _position : 2; // EPosition 2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _floating : 2; // EFloat 2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _table_layout : 1; // ETableLayout 2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _page_break_before : 2; // EPageBreak 2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _page_break_after : 2; // EPageBreak 252d0825bca7fe65beaee391d30da42e937db621564Steve Block unsigned _page_break_inside : 2; // EPageBreak 2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 254dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block unsigned _styleType : 6; // PseudoId 2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool _affectedByHover : 1; 2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool _affectedByActive : 1; 2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool _affectedByDrag : 1; 2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _pseudoBits : 7; 2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned _unicodeBidi : 2; // EUnicodeBidi 260dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool _isLink : 1; 261d0825bca7fe65beaee391d30da42e937db621564Steve Block // 50 bits 2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } noninherited_flags; 2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// !END SYNC! 2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprotected: 2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBitDefaults() 2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._empty_cells = initialEmptyCells(); 2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._caption_side = initialCaptionSide(); 2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._list_style_type = initialListStyleType(); 2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._list_style_position = initialListStylePosition(); 2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._visibility = initialVisibility(); 2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._text_align = initialTextAlign(); 2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._text_transform = initialTextTransform(); 2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._text_decorations = initialTextDecoration(); 2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._cursor_style = initialCursor(); 2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._direction = initialDirection(); 2798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._border_collapse = initialBorderCollapse(); 2808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._white_space = initialWhiteSpace(); 2818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._visuallyOrdered = initialVisuallyOrdered(); 2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._box_direction = initialBoxDirection(); 2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited_flags._force_backgrounds_to_white = false; 284635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project inherited_flags._pointerEvents = initialPointerEvents(); 285dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block inherited_flags._insideLink = NotInsideLink; 286a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch inherited_flags.m_writingMode = initialWritingMode(); 2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._effectiveDisplay = noninherited_flags._originalDisplay = initialDisplay(); 2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._overflowX = initialOverflowX(); 2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._overflowY = initialOverflowY(); 2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._vertical_align = initialVerticalAlign(); 2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._clear = initialClear(); 2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._position = initialPosition(); 2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._floating = initialFloating(); 2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._table_layout = initialTableLayout(); 2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._page_break_before = initialPageBreak(); 2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._page_break_after = initialPageBreak(); 298d0825bca7fe65beaee391d30da42e937db621564Steve Block noninherited_flags._page_break_inside = initialPageBreak(); 2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._styleType = NOPSEUDO; 3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._affectedByHover = false; 3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._affectedByActive = false; 3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._affectedByDrag = false; 3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._pseudoBits = 0; 3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project noninherited_flags._unicodeBidi = initialUnicodeBidi(); 305dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block noninherited_flags._isLink = false; 3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 30821939df44de1705786c545cd1bf519d47250322dBen Murdochprivate: 309a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch ALWAYS_INLINE RenderStyle(); 3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // used to create the default style. 311a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch ALWAYS_INLINE RenderStyle(bool); 312a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch ALWAYS_INLINE RenderStyle(const RenderStyle&); 3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static PassRefPtr<RenderStyle> create(); 3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static PassRefPtr<RenderStyle> createDefaultStyle(); 3172bde8e466a4451c7319e3a072d118917957d6554Steve Block static PassRefPtr<RenderStyle> createAnonymousStyle(const RenderStyle* parentStyle); 3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static PassRefPtr<RenderStyle> clone(const RenderStyle*); 3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ~RenderStyle(); 3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void inheritFrom(const RenderStyle* inheritParent); 3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3240bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch PseudoId styleType() const { return static_cast<PseudoId>(noninherited_flags._styleType); } 3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setStyleType(PseudoId styleType) { noninherited_flags._styleType = styleType; } 3268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch RenderStyle* getCachedPseudoStyle(PseudoId) const; 3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project RenderStyle* addCachedPseudoStyle(PassRefPtr<RenderStyle>); 329e14391e94c850b8bd03680c23b38978db68687a8John Reck void removeCachedPseudoStyle(PseudoId); 3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 331dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const PseudoStyleCache* cachedPseudoStyles() const { return m_cachedPseudoStyles.get(); } 3320bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool affectedByHoverRules() const { return noninherited_flags._affectedByHover; } 3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool affectedByActiveRules() const { return noninherited_flags._affectedByActive; } 3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool affectedByDragRules() const { return noninherited_flags._affectedByDrag; } 3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setAffectedByHoverRules(bool b) { noninherited_flags._affectedByHover = b; } 3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setAffectedByActiveRules(bool b) { noninherited_flags._affectedByActive = b; } 3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setAffectedByDragRules(bool b) { noninherited_flags._affectedByDrag = b; } 3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool operator==(const RenderStyle& other) const; 3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool operator!=(const RenderStyle& other) const { return !(*this == other); } 3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool isFloating() const { return !(noninherited_flags._floating == FNONE); } 3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasMargin() const { return surround->margin.nonZero(); } 3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasBorder() const { return surround->border.hasBorder(); } 3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasPadding() const { return surround->padding.nonZero(); } 3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasOffset() const { return surround->offset.nonZero(); } 3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 349dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool hasBackgroundImage() const { return m_background->background().hasImage(); } 350dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool hasFixedBackgroundImage() const { return m_background->background().hasFixedImage(); } 3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasAppearance() const { return appearance() != NoControlPart; } 3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3535ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen bool hasBackground() const 3545ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen { 3555ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen Color color = visitedDependentColor(CSSPropertyBackgroundColor); 3565ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen if (color.isValid() && color.alpha() > 0) 3575ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen return true; 3585ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen return hasBackgroundImage(); 3595ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen } 3605ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 3618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool visuallyOrdered() const { return inherited_flags._visuallyOrdered; } 3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setVisuallyOrdered(bool b) { inherited_flags._visuallyOrdered = b; } 3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool isStyleAvailable() const; 3658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 366692e5dbf12901edacf14812a6fae25462920af42Steve Block bool hasAnyPublicPseudoStyles() const; 3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasPseudoStyle(PseudoId pseudo) const; 3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setHasPseudoStyle(PseudoId pseudo); 3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // attribute getter methods 3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EDisplay display() const { return static_cast<EDisplay>(noninherited_flags._effectiveDisplay); } 3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EDisplay originalDisplay() const { return static_cast<EDisplay>(noninherited_flags._originalDisplay); } 3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length left() const { return surround->offset.left(); } 3768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length right() const { return surround->offset.right(); } 3778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length top() const { return surround->offset.top(); } 3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length bottom() const { return surround->offset.bottom(); } 3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 38081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch // Accessors for positioned object edges that take into account writing mode. 38181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch Length logicalLeft() const { return isHorizontalWritingMode() ? left() : top(); } 38281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch Length logicalRight() const { return isHorizontalWritingMode() ? right() : bottom(); } 38381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch Length logicalTop() const { return isHorizontalWritingMode() ? (isFlippedBlocksWritingMode() ? bottom() : top()) : (isFlippedBlocksWritingMode() ? right() : left()); } 38481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch Length logicalBottom() const { return isHorizontalWritingMode() ? (isFlippedBlocksWritingMode() ? top() : bottom()) : (isFlippedBlocksWritingMode() ? left() : right()); } 38581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 3868f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // Whether or not a positioned element requires normal flow x/y to be computed 3878f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // to determine its position. 38881bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch bool hasAutoLeftAndRight() const { return left().isAuto() && right().isAuto(); } 38981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch bool hasAutoTopAndBottom() const { return top().isAuto() && bottom().isAuto(); } 39081bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch bool hasStaticInlinePosition(bool horizontal) const { return horizontal ? hasAutoLeftAndRight() : hasAutoTopAndBottom(); } 39181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch bool hasStaticBlockPosition(bool horizontal) const { return horizontal ? hasAutoTopAndBottom() : hasAutoLeftAndRight(); } 3928f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 3938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EPosition position() const { return static_cast<EPosition>(noninherited_flags._position); } 3948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EFloat floating() const { return static_cast<EFloat>(noninherited_flags._floating); } 3958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 396dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length width() const { return m_box->width(); } 397dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length height() const { return m_box->height(); } 398dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length minWidth() const { return m_box->minWidth(); } 399dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length maxWidth() const { return m_box->maxWidth(); } 400dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length minHeight() const { return m_box->minHeight(); } 401dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length maxHeight() const { return m_box->maxHeight(); } 40268513a70bcd92384395513322f1b801e7bf9c729Steve Block 40368513a70bcd92384395513322f1b801e7bf9c729Steve Block Length logicalWidth() const; 40468513a70bcd92384395513322f1b801e7bf9c729Steve Block Length logicalHeight() const; 40568513a70bcd92384395513322f1b801e7bf9c729Steve Block Length logicalMinWidth() const; 40668513a70bcd92384395513322f1b801e7bf9c729Steve Block Length logicalMaxWidth() const; 40768513a70bcd92384395513322f1b801e7bf9c729Steve Block Length logicalMinHeight() const; 40868513a70bcd92384395513322f1b801e7bf9c729Steve Block Length logicalMaxHeight() const; 4098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const BorderData& border() const { return surround->border; } 411dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const BorderValue& borderLeft() const { return surround->border.left(); } 412dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const BorderValue& borderRight() const { return surround->border.right(); } 413dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const BorderValue& borderTop() const { return surround->border.top(); } 414dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const BorderValue& borderBottom() const { return surround->border.bottom(); } 4158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 41628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu const BorderValue& borderBefore() const; 41728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu const BorderValue& borderAfter() const; 41828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu const BorderValue& borderStart() const; 41928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu const BorderValue& borderEnd() const; 42028040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu 421dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const NinePieceImage& borderImage() const { return surround->border.image(); } 4228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4235ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen const LengthSize& borderTopLeftRadius() const { return surround->border.topLeft(); } 4245ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen const LengthSize& borderTopRightRadius() const { return surround->border.topRight(); } 4255ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen const LengthSize& borderBottomLeftRadius() const { return surround->border.bottomLeft(); } 4265ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen const LengthSize& borderBottomRightRadius() const { return surround->border.bottomRight(); } 4278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasBorderRadius() const { return surround->border.hasBorderRadius(); } 4288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned short borderLeftWidth() const { return surround->border.borderLeftWidth(); } 430dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EBorderStyle borderLeftStyle() const { return surround->border.left().style(); } 431dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool borderLeftIsTransparent() const { return surround->border.left().isTransparent(); } 4328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned short borderRightWidth() const { return surround->border.borderRightWidth(); } 433dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EBorderStyle borderRightStyle() const { return surround->border.right().style(); } 434dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool borderRightIsTransparent() const { return surround->border.right().isTransparent(); } 4358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned short borderTopWidth() const { return surround->border.borderTopWidth(); } 436dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EBorderStyle borderTopStyle() const { return surround->border.top().style(); } 437dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool borderTopIsTransparent() const { return surround->border.top().isTransparent(); } 4388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned short borderBottomWidth() const { return surround->border.borderBottomWidth(); } 439dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EBorderStyle borderBottomStyle() const { return surround->border.bottom().style(); } 440dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool borderBottomIsTransparent() const { return surround->border.bottom().isTransparent(); } 44168513a70bcd92384395513322f1b801e7bf9c729Steve Block 44268513a70bcd92384395513322f1b801e7bf9c729Steve Block unsigned short borderBeforeWidth() const; 44368513a70bcd92384395513322f1b801e7bf9c729Steve Block unsigned short borderAfterWidth() const; 44468513a70bcd92384395513322f1b801e7bf9c729Steve Block unsigned short borderStartWidth() const; 44568513a70bcd92384395513322f1b801e7bf9c729Steve Block unsigned short borderEndWidth() const; 4468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned short outlineSize() const { return max(0, outlineWidth() + outlineOffset()); } 4488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned short outlineWidth() const 4498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 450dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block if (m_background->outline().style() == BNONE) 4518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 452dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block return m_background->outline().width(); 4538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 4548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasOutline() const { return outlineWidth() > 0 && outlineStyle() > BHIDDEN; } 455dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EBorderStyle outlineStyle() const { return m_background->outline().style(); } 456dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool outlineStyleIsAuto() const { return m_background->outline().isAuto(); } 457e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 4588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EOverflow overflowX() const { return static_cast<EOverflow>(noninherited_flags._overflowX); } 4598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EOverflow overflowY() const { return static_cast<EOverflow>(noninherited_flags._overflowY); } 4608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVisibility visibility() const { return static_cast<EVisibility>(inherited_flags._visibility); } 4628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EVerticalAlign verticalAlign() const { return static_cast<EVerticalAlign>(noninherited_flags._vertical_align); } 463dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length verticalAlignLength() const { return m_box->verticalAlign(); } 4648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length clipLeft() const { return visual->clip.left(); } 4668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length clipRight() const { return visual->clip.right(); } 4678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length clipTop() const { return visual->clip.top(); } 4688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length clipBottom() const { return visual->clip.bottom(); } 4698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project LengthBox clip() const { return visual->clip; } 4708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasClip() const { return visual->hasClip; } 4718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EUnicodeBidi unicodeBidi() const { return static_cast<EUnicodeBidi>(noninherited_flags._unicodeBidi); } 4738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EClear clear() const { return static_cast<EClear>(noninherited_flags._clear); } 4758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ETableLayout tableLayout() const { return static_cast<ETableLayout>(noninherited_flags._table_layout); } 4768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const Font& font() const { return inherited->font; } 4782fc2651226baac27029e38c9d6ef883fa32084dbSteve Block const FontMetrics& fontMetrics() const { return inherited->font.fontMetrics(); } 4798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const FontDescription& fontDescription() const { return inherited->font.fontDescription(); } 4808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int fontSize() const { return inherited->font.pixelSize(); } 4818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4826c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen Length textIndent() const { return rareInheritedData->indent; } 4838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ETextAlign textAlign() const { return static_cast<ETextAlign>(inherited_flags._text_align); } 4848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ETextTransform textTransform() const { return static_cast<ETextTransform>(inherited_flags._text_transform); } 4858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int textDecorationsInEffect() const { return inherited_flags._text_decorations; } 4868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int textDecoration() const { return visual->textDecoration; } 4878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int wordSpacing() const { return inherited->font.wordSpacing(); } 4888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int letterSpacing() const { return inherited->font.letterSpacing(); } 4898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float zoom() const { return visual->m_zoom; } 4916c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen float effectiveZoom() const { return rareInheritedData->m_effectiveZoom; } 4928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 4938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project TextDirection direction() const { return static_cast<TextDirection>(inherited_flags._direction); } 494a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch bool isLeftToRightDirection() const { return direction() == LTR; } 495a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 4968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length lineHeight() const { return inherited->line_height; } 4978f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian int computedLineHeight() const 4988f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian { 4998f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian Length lh = lineHeight(); 5008f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 5018f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // Negative value means the line height is not set. Use the font's built-in spacing. 5028f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (lh.isNegative()) 5032fc2651226baac27029e38c9d6ef883fa32084dbSteve Block return fontMetrics().lineSpacing(); 5048f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 5058f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian if (lh.isPercent()) 506d0825bca7fe65beaee391d30da42e937db621564Steve Block return lh.calcMinValue(fontSize()); 5078f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 5088f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian return lh.value(); 5098f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian } 5108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EWhiteSpace whiteSpace() const { return static_cast<EWhiteSpace>(inherited_flags._white_space); } 5128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool autoWrap(EWhiteSpace ws) 5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Nowrap and pre don't automatically wrap. 5158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return ws != NOWRAP && ws != PRE; 5168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool autoWrap() const 5198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return autoWrap(whiteSpace()); 5218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool preserveNewline(EWhiteSpace ws) 5248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Normal and nowrap do not preserve newlines. 5268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return ws != NORMAL && ws != NOWRAP; 5278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool preserveNewline() const 5308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return preserveNewline(whiteSpace()); 5328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool collapseWhiteSpace(EWhiteSpace ws) 5358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Pre and prewrap do not collapse whitespace. 5378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return ws != PRE && ws != PRE_WRAP; 5388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool collapseWhiteSpace() const 5418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return collapseWhiteSpace(whiteSpace()); 5438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool isCollapsibleWhiteSpace(UChar c) const 5468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project switch (c) { 5488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case ' ': 5498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '\t': 5508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return collapseWhiteSpace(); 5518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project case '\n': 5528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return !preserveNewline(); 5538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 5558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool breakOnlyAfterWhiteSpace() const 5588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return whiteSpace() == PRE_WRAP || khtmlLineBreak() == AFTER_WHITE_SPACE; 5608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool breakWords() const 5638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 5648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return wordBreak() == BreakWordBreak || wordWrap() == BreakWordWrap; 5658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 5668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 567dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillRepeat backgroundRepeatX() const { return static_cast<EFillRepeat>(m_background->background().repeatX()); } 568dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillRepeat backgroundRepeatY() const { return static_cast<EFillRepeat>(m_background->background().repeatY()); } 569dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block CompositeOperator backgroundComposite() const { return static_cast<CompositeOperator>(m_background->background().composite()); } 570dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillAttachment backgroundAttachment() const { return static_cast<EFillAttachment>(m_background->background().attachment()); } 571dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillBox backgroundClip() const { return static_cast<EFillBox>(m_background->background().clip()); } 572dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillBox backgroundOrigin() const { return static_cast<EFillBox>(m_background->background().origin()); } 573dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length backgroundXPosition() const { return m_background->background().xPosition(); } 574dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length backgroundYPosition() const { return m_background->background().yPosition(); } 575dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillSizeType backgroundSizeType() const { return m_background->background().sizeType(); } 576dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block LengthSize backgroundSizeLength() const { return m_background->background().sizeLength(); } 577dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block FillLayer* accessBackgroundLayers() { return &(m_background.access()->m_background); } 578dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const FillLayer* backgroundLayers() const { return &(m_background->background()); } 579dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 580dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block StyleImage* maskImage() const { return rareNonInheritedData->m_mask.image(); } 581dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillRepeat maskRepeatX() const { return static_cast<EFillRepeat>(rareNonInheritedData->m_mask.repeatX()); } 582dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillRepeat maskRepeatY() const { return static_cast<EFillRepeat>(rareNonInheritedData->m_mask.repeatY()); } 583dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block CompositeOperator maskComposite() const { return static_cast<CompositeOperator>(rareNonInheritedData->m_mask.composite()); } 584dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillAttachment maskAttachment() const { return static_cast<EFillAttachment>(rareNonInheritedData->m_mask.attachment()); } 585dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillBox maskClip() const { return static_cast<EFillBox>(rareNonInheritedData->m_mask.clip()); } 586dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillBox maskOrigin() const { return static_cast<EFillBox>(rareNonInheritedData->m_mask.origin()); } 587dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length maskXPosition() const { return rareNonInheritedData->m_mask.xPosition(); } 588dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block Length maskYPosition() const { return rareNonInheritedData->m_mask.yPosition(); } 589dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EFillSizeType maskSizeType() const { return rareNonInheritedData->m_mask.sizeType(); } 590dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block LengthSize maskSizeLength() const { return rareNonInheritedData->m_mask.sizeLength(); } 5918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project FillLayer* accessMaskLayers() { return &(rareNonInheritedData.access()->m_mask); } 5928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const FillLayer* maskLayers() const { return &(rareNonInheritedData->m_mask); } 5938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const NinePieceImage& maskBoxImage() const { return rareNonInheritedData->m_maskBoxImage; } 5948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 5958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // returns true for collapsing borders, false for separate borders 5968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool borderCollapse() const { return inherited_flags._border_collapse; } 5978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project short horizontalBorderSpacing() const { return inherited->horizontal_border_spacing; } 5988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project short verticalBorderSpacing() const { return inherited->vertical_border_spacing; } 5998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EEmptyCell emptyCells() const { return static_cast<EEmptyCell>(inherited_flags._empty_cells); } 6008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ECaptionSide captionSide() const { return static_cast<ECaptionSide>(inherited_flags._caption_side); } 6018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6026c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen short counterIncrement() const { return rareNonInheritedData->m_counterIncrement; } 6036c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen short counterReset() const { return rareNonInheritedData->m_counterReset; } 6048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EListStyleType listStyleType() const { return static_cast<EListStyleType>(inherited_flags._list_style_type); } 6068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project StyleImage* listStyleImage() const { return inherited->list_style_image.get(); } 6078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EListStylePosition listStylePosition() const { return static_cast<EListStylePosition>(inherited_flags._list_style_position); } 6088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length marginTop() const { return surround->margin.top(); } 6108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length marginBottom() const { return surround->margin.bottom(); } 6118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length marginLeft() const { return surround->margin.left(); } 6128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length marginRight() const { return surround->margin.right(); } 61368513a70bcd92384395513322f1b801e7bf9c729Steve Block Length marginBefore() const; 61468513a70bcd92384395513322f1b801e7bf9c729Steve Block Length marginAfter() const; 61568513a70bcd92384395513322f1b801e7bf9c729Steve Block Length marginStart() const; 61668513a70bcd92384395513322f1b801e7bf9c729Steve Block Length marginEnd() const; 617bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen Length marginStartUsing(const RenderStyle* otherStyle) const; 618bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen Length marginEndUsing(const RenderStyle* otherStyle) const; 619bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen Length marginBeforeUsing(const RenderStyle* otherStyle) const; 620bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen Length marginAfterUsing(const RenderStyle* otherStyle) const; 6218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project LengthBox paddingBox() const { return surround->padding; } 6238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length paddingTop() const { return surround->padding.top(); } 6248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length paddingBottom() const { return surround->padding.bottom(); } 6258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length paddingLeft() const { return surround->padding.left(); } 6268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length paddingRight() const { return surround->padding.right(); } 62768513a70bcd92384395513322f1b801e7bf9c729Steve Block Length paddingBefore() const; 62868513a70bcd92384395513322f1b801e7bf9c729Steve Block Length paddingAfter() const; 62968513a70bcd92384395513322f1b801e7bf9c729Steve Block Length paddingStart() const; 63068513a70bcd92384395513322f1b801e7bf9c729Steve Block Length paddingEnd() const; 6318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ECursor cursor() const { return static_cast<ECursor>(inherited_flags._cursor_style); } 6338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6346c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen CursorList* cursors() const { return rareInheritedData->cursorData.get(); } 6358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 636dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EInsideLink insideLink() const { return static_cast<EInsideLink>(inherited_flags._insideLink); } 637dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool isLink() const { return noninherited_flags._isLink; } 638dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 6396c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen short widows() const { return rareInheritedData->widows; } 6406c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen short orphans() const { return rareInheritedData->orphans; } 641d0825bca7fe65beaee391d30da42e937db621564Steve Block EPageBreak pageBreakInside() const { return static_cast<EPageBreak>(noninherited_flags._page_break_inside); } 6428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EPageBreak pageBreakBefore() const { return static_cast<EPageBreak>(noninherited_flags._page_break_before); } 6438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EPageBreak pageBreakAfter() const { return static_cast<EPageBreak>(noninherited_flags._page_break_after); } 6448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // CSS3 Getter Methods 6468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 6478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int outlineOffset() const 6488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 649dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block if (m_background->outline().style() == BNONE) 6508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 651dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block return m_background->outline().offset(); 6528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 6538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 654dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const ShadowData* textShadow() const { return rareInheritedData->textShadow; } 655a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getTextShadowExtent(int& top, int& right, int& bottom, int& left) const { getShadowExtent(textShadow(), top, right, bottom, left); } 656a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getTextShadowHorizontalExtent(int& left, int& right) const { getShadowHorizontalExtent(textShadow(), left, right); } 657a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getTextShadowVerticalExtent(int& top, int& bottom) const { getShadowVerticalExtent(textShadow(), top, bottom); } 658a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getTextShadowInlineDirectionExtent(int& logicalLeft, int& logicalRight) { getShadowInlineDirectionExtent(textShadow(), logicalLeft, logicalRight); } 659e14391e94c850b8bd03680c23b38978db68687a8John Reck void getTextShadowBlockDirectionExtent(int& logicalTop, int& logicalBottom) { getShadowBlockDirectionExtent(textShadow(), logicalTop, logicalBottom); } 660a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 6618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float textStrokeWidth() const { return rareInheritedData->textStrokeWidth; } 662643ca7872b450ea4efacab6188849e5aac2ba161Steve Block ColorSpace colorSpace() const { return static_cast<ColorSpace>(rareInheritedData->colorSpace); } 6638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float opacity() const { return rareNonInheritedData->opacity; } 6648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ControlPart appearance() const { return static_cast<ControlPart>(rareNonInheritedData->m_appearance); } 6658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EBoxAlignment boxAlign() const { return static_cast<EBoxAlignment>(rareNonInheritedData->flexibleBox->align); } 6668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EBoxDirection boxDirection() const { return static_cast<EBoxDirection>(inherited_flags._box_direction); } 6678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float boxFlex() { return rareNonInheritedData->flexibleBox->flex; } 6688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned int boxFlexGroup() const { return rareNonInheritedData->flexibleBox->flex_group; } 6698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EBoxLines boxLines() { return static_cast<EBoxLines>(rareNonInheritedData->flexibleBox->lines); } 6708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned int boxOrdinalGroup() const { return rareNonInheritedData->flexibleBox->ordinal_group; } 6718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EBoxOrient boxOrient() const { return static_cast<EBoxOrient>(rareNonInheritedData->flexibleBox->orient); } 6728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EBoxAlignment boxPack() const { return static_cast<EBoxAlignment>(rareNonInheritedData->flexibleBox->pack); } 6730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 674dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const ShadowData* boxShadow() const { return rareNonInheritedData->m_boxShadow.get(); } 675a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getBoxShadowExtent(int& top, int& right, int& bottom, int& left) const { getShadowExtent(boxShadow(), top, right, bottom, left); } 676a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getBoxShadowHorizontalExtent(int& left, int& right) const { getShadowHorizontalExtent(boxShadow(), left, right); } 677a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getBoxShadowVerticalExtent(int& top, int& bottom) const { getShadowVerticalExtent(boxShadow(), top, bottom); } 678a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getBoxShadowInlineDirectionExtent(int& logicalLeft, int& logicalRight) { getShadowInlineDirectionExtent(boxShadow(), logicalLeft, logicalRight); } 679e14391e94c850b8bd03680c23b38978db68687a8John Reck void getBoxShadowBlockDirectionExtent(int& logicalTop, int& logicalBottom) { getShadowBlockDirectionExtent(boxShadow(), logicalTop, logicalBottom); } 6800bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 6818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project StyleReflection* boxReflect() const { return rareNonInheritedData->m_boxReflect.get(); } 682dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block EBoxSizing boxSizing() const { return m_box->boxSizing(); } 6838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length marqueeIncrement() const { return rareNonInheritedData->marquee->increment; } 6848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int marqueeSpeed() const { return rareNonInheritedData->marquee->speed; } 6858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int marqueeLoopCount() const { return rareNonInheritedData->marquee->loops; } 6868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EMarqueeBehavior marqueeBehavior() const { return static_cast<EMarqueeBehavior>(rareNonInheritedData->marquee->behavior); } 6878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EMarqueeDirection marqueeDirection() const { return static_cast<EMarqueeDirection>(rareNonInheritedData->marquee->direction); } 6888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EUserModify userModify() const { return static_cast<EUserModify>(rareInheritedData->userModify); } 6898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EUserDrag userDrag() const { return static_cast<EUserDrag>(rareNonInheritedData->userDrag); } 6908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EUserSelect userSelect() const { return static_cast<EUserSelect>(rareInheritedData->userSelect); } 6918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool textOverflow() const { return rareNonInheritedData->textOverflow; } 692bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen EMarginCollapse marginBeforeCollapse() const { return static_cast<EMarginCollapse>(rareNonInheritedData->marginBeforeCollapse); } 693bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen EMarginCollapse marginAfterCollapse() const { return static_cast<EMarginCollapse>(rareNonInheritedData->marginAfterCollapse); } 6948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EWordBreak wordBreak() const { return static_cast<EWordBreak>(rareInheritedData->wordBreak); } 6958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EWordWrap wordWrap() const { return static_cast<EWordWrap>(rareInheritedData->wordWrap); } 6968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ENBSPMode nbspMode() const { return static_cast<ENBSPMode>(rareInheritedData->nbspMode); } 6978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EKHTMLLineBreak khtmlLineBreak() const { return static_cast<EKHTMLLineBreak>(rareInheritedData->khtmlLineBreak); } 6988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EMatchNearestMailBlockquoteColor matchNearestMailBlockquoteColor() const { return static_cast<EMatchNearestMailBlockquoteColor>(rareNonInheritedData->matchNearestMailBlockquoteColor); } 6998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const AtomicString& highlight() const { return rareInheritedData->highlight; } 70006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen Hyphens hyphens() const { return static_cast<Hyphens>(rareInheritedData->hyphens); } 70181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch short hyphenationLimitBefore() const { return rareInheritedData->hyphenationLimitBefore; } 70281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch short hyphenationLimitAfter() const { return rareInheritedData->hyphenationLimitAfter; } 703dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch const AtomicString& hyphenationString() const { return rareInheritedData->hyphenationString; } 70481bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch const AtomicString& locale() const { return rareInheritedData->locale; } 7058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EBorderFit borderFit() const { return static_cast<EBorderFit>(rareNonInheritedData->m_borderFit); } 7068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EResize resize() const { return static_cast<EResize>(rareInheritedData->resize); } 7078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float columnWidth() const { return rareNonInheritedData->m_multiCol->m_width; } 7088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasAutoColumnWidth() const { return rareNonInheritedData->m_multiCol->m_autoWidth; } 7098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned short columnCount() const { return rareNonInheritedData->m_multiCol->m_count; } 7108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasAutoColumnCount() const { return rareNonInheritedData->m_multiCol->m_autoCount; } 7116c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen bool specifiesColumns() const { return !hasAutoColumnCount() || !hasAutoColumnWidth(); } 7128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float columnGap() const { return rareNonInheritedData->m_multiCol->m_gap; } 7138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasNormalColumnGap() const { return rareNonInheritedData->m_multiCol->m_normalGap; } 7148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EBorderStyle columnRuleStyle() const { return rareNonInheritedData->m_multiCol->m_rule.style(); } 7158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned short columnRuleWidth() const { return rareNonInheritedData->m_multiCol->ruleWidth(); } 7168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool columnRuleIsTransparent() const { return rareNonInheritedData->m_multiCol->m_rule.isTransparent(); } 717e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block bool columnSpan() const { return rareNonInheritedData->m_multiCol->m_columnSpan; } 7188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EPageBreak columnBreakBefore() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakBefore); } 7198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EPageBreak columnBreakInside() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakInside); } 7208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project EPageBreak columnBreakAfter() const { return static_cast<EPageBreak>(rareNonInheritedData->m_multiCol->m_breakAfter); } 7218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const TransformOperations& transform() const { return rareNonInheritedData->m_transform->m_operations; } 7228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length transformOriginX() const { return rareNonInheritedData->m_transform->m_x; } 7238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Length transformOriginY() const { return rareNonInheritedData->m_transform->m_y; } 7248f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian float transformOriginZ() const { return rareNonInheritedData->m_transform->m_z; } 7258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasTransform() const { return !rareNonInheritedData->m_transform->m_operations.operations().isEmpty(); } 726f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 727f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch TextEmphasisFill textEmphasisFill() const { return static_cast<TextEmphasisFill>(rareInheritedData->textEmphasisFill); } 728f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch TextEmphasisMark textEmphasisMark() const; 729f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch const AtomicString& textEmphasisCustomMark() const { return rareInheritedData->textEmphasisCustomMark; } 730f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch TextEmphasisPosition textEmphasisPosition() const { return static_cast<TextEmphasisPosition>(rareInheritedData->textEmphasisPosition); } 731f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch const AtomicString& textEmphasisMarkString() const; 7328f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 7338f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // Return true if any transform related property (currently transform, transformStyle3D or perspective) 7348f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // indicates that we are transforming 7358f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian bool hasTransformRelatedProperty() const { return hasTransform() || preserves3D() || hasPerspective(); } 7368f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 7378f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian enum ApplyTransformOrigin { IncludeTransformOrigin, ExcludeTransformOrigin }; 7388f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void applyTransform(TransformationMatrix&, const IntSize& borderBoxSize, ApplyTransformOrigin = IncludeTransformOrigin) const; 739e14391e94c850b8bd03680c23b38978db68687a8John Reck void setPageScaleTransform(float); 7408f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 7418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasMask() const { return rareNonInheritedData->m_mask.hasImage() || rareNonInheritedData->m_maskBoxImage.hasImage(); } 74228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu 74328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu TextCombine textCombine() const { return static_cast<TextCombine>(rareNonInheritedData->m_textCombine); } 7442fc2651226baac27029e38c9d6ef883fa32084dbSteve Block bool hasTextCombine() const { return textCombine() != TextCombineNone; } 7458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // End CSS3 Getters 7468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Apple-specific property getter methods 748635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project EPointerEvents pointerEvents() const { return static_cast<EPointerEvents>(inherited_flags._pointerEvents); } 7498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const AnimationList* animations() const { return rareNonInheritedData->m_animations.get(); } 7508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const AnimationList* transitions() const { return rareNonInheritedData->m_transitions.get(); } 7518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AnimationList* accessAnimations(); 7538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project AnimationList* accessTransitions(); 7548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasAnimations() const { return rareNonInheritedData->m_animations && rareNonInheritedData->m_animations->size() > 0; } 7568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool hasTransitions() const { return rareNonInheritedData->m_transitions && rareNonInheritedData->m_transitions->size() > 0; } 7578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // return the first found Animation (including 'all' transitions) 7598f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian const Animation* transitionForProperty(int property) const; 7608f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 7618f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian ETransformStyle3D transformStyle3D() const { return rareNonInheritedData->m_transformStyle3D; } 7628f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian bool preserves3D() const { return rareNonInheritedData->m_transformStyle3D == TransformStyle3DPreserve3D; } 7638f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 7648f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian EBackfaceVisibility backfaceVisibility() const { return rareNonInheritedData->m_backfaceVisibility; } 7658f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian float perspective() const { return rareNonInheritedData->m_perspective; } 7668f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian bool hasPerspective() const { return rareNonInheritedData->m_perspective > 0; } 7678f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian Length perspectiveOriginX() const { return rareNonInheritedData->m_perspectiveOriginX; } 7688f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian Length perspectiveOriginY() const { return rareNonInheritedData->m_perspectiveOriginY; } 76906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen LengthSize pageSize() const { return rareNonInheritedData->m_pageSize; } 770ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block PageSizeType pageSizeType() const { return rareNonInheritedData->m_pageSizeType; } 7718f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 7728f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#if USE(ACCELERATED_COMPOSITING) 7738f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian // When set, this ensures that styles compare as different. Used during accelerated animations. 7748f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian bool isRunningAcceleratedAnimation() const { return rareNonInheritedData->m_runningAcceleratedAnimation; } 7758f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#endif 7768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7772bde8e466a4451c7319e3a072d118917957d6554Steve Block LineBoxContain lineBoxContain() const { return rareInheritedData->m_lineBoxContain; } 778643ca7872b450ea4efacab6188849e5aac2ba161Steve Block const LineClampValue& lineClamp() const { return rareNonInheritedData->lineClamp; } 7798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool textSizeAdjust() const { return rareInheritedData->textSizeAdjust; } 7808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ETextSecurity textSecurity() const { return static_cast<ETextSecurity>(rareInheritedData->textSecurity); } 7818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 782a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch WritingMode writingMode() const { return static_cast<WritingMode>(inherited_flags.m_writingMode); } 783a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch bool isHorizontalWritingMode() const { return writingMode() == TopToBottomWritingMode || writingMode() == BottomToTopWritingMode; } 784a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch bool isFlippedLinesWritingMode() const { return writingMode() == LeftToRightWritingMode || writingMode() == BottomToTopWritingMode; } 785e14391e94c850b8bd03680c23b38978db68687a8John Reck bool isFlippedBlocksWritingMode() const { return writingMode() == RightToLeftWritingMode || writingMode() == BottomToTopWritingMode; } 7868de7ac488df2f39f82e56811541f4847b3f2e952Steve Block 7875e86dc63da68e46049c5252367ef8b2a54016f0aBen Murdoch ESpeak speak() { return static_cast<ESpeak>(rareInheritedData->speak); } 7885e86dc63da68e46049c5252367ef8b2a54016f0aBen Murdoch 7898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_CSS_TAP_HIGHLIGHT_COLOR 7908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Color tapHighlightColor() const { return rareInheritedData->tapHighlightColor; } 7918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 7928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// attribute setter methods 7938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setDisplay(EDisplay v) { noninherited_flags._effectiveDisplay = v; } 7958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setOriginalDisplay(EDisplay v) { noninherited_flags._originalDisplay = v; } 7968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPosition(EPosition v) { noninherited_flags._position = v; } 7978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setFloating(EFloat v) { noninherited_flags._floating = v; } 7988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setLeft(Length v) { SET_VAR(surround, offset.m_left, v) } 8008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setRight(Length v) { SET_VAR(surround, offset.m_right, v) } 8018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTop(Length v) { SET_VAR(surround, offset.m_top, v) } 8028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBottom(Length v) { SET_VAR(surround, offset.m_bottom, v) } 8038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 804dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setWidth(Length v) { SET_VAR(m_box, m_width, v) } 805dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setHeight(Length v) { SET_VAR(m_box, m_height, v) } 8068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 807dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setMinWidth(Length v) { SET_VAR(m_box, m_minWidth, v) } 808dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setMaxWidth(Length v) { SET_VAR(m_box, m_maxWidth, v) } 809dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setMinHeight(Length v) { SET_VAR(m_box, m_minHeight, v) } 810dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setMaxHeight(Length v) { SET_VAR(m_box, m_maxHeight, v) } 8118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(DASHBOARD_SUPPORT) 8138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Vector<StyleDashboardRegion> dashboardRegions() const { return rareNonInheritedData->m_dashboardRegions; } 8148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setDashboardRegions(Vector<StyleDashboardRegion> regions) { SET_VAR(rareNonInheritedData, m_dashboardRegions, regions); } 8158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setDashboardRegion(int type, const String& label, Length t, Length r, Length b, Length l, bool append) 8178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 8188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project StyleDashboardRegion region; 8198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region.label = label; 8208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region.offset.m_top = t; 8218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region.offset.m_right = r; 8228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region.offset.m_bottom = b; 8238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region.offset.m_left = l; 8248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project region.type = type; 8258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!append) 8268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project rareNonInheritedData.access()->m_dashboardRegions.clear(); 8278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project rareNonInheritedData.access()->m_dashboardRegions.append(region); 8288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 8298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 8308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void resetBorder() { resetBorderImage(); resetBorderTop(); resetBorderRight(); resetBorderBottom(); resetBorderLeft(); resetBorderRadius(); } 832dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderTop() { SET_VAR(surround, border.m_top, BorderValue()) } 833dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderRight() { SET_VAR(surround, border.m_right, BorderValue()) } 834dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderBottom() { SET_VAR(surround, border.m_bottom, BorderValue()) } 835dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderLeft() { SET_VAR(surround, border.m_left, BorderValue()) } 836dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderImage() { SET_VAR(surround, border.m_image, NinePieceImage()) } 8378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void resetBorderRadius() { resetBorderTopLeftRadius(); resetBorderTopRightRadius(); resetBorderBottomLeftRadius(); resetBorderBottomRightRadius(); } 838dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderTopLeftRadius() { SET_VAR(surround, border.m_topLeft, initialBorderRadius()) } 839dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderTopRightRadius() { SET_VAR(surround, border.m_topRight, initialBorderRadius()) } 840dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderBottomLeftRadius() { SET_VAR(surround, border.m_bottomLeft, initialBorderRadius()) } 841dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetBorderBottomRightRadius() { SET_VAR(surround, border.m_bottomRight, initialBorderRadius()) } 8428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 843dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetOutline() { SET_VAR(m_background, m_outline, OutlineValue()) } 8448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 845dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBackgroundColor(const Color& v) { SET_VAR(m_background, m_color, v) } 8468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 847dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBackgroundXPosition(Length l) { SET_VAR(m_background, m_background.m_xPosition, l) } 848dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBackgroundYPosition(Length l) { SET_VAR(m_background, m_background.m_yPosition, l) } 849dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBackgroundSize(EFillSizeType b) { SET_VAR(m_background, m_background.m_sizeType, b) } 850dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBackgroundSizeLength(LengthSize l) { SET_VAR(m_background, m_background.m_sizeLength, l) } 8515f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 852dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderImage(const NinePieceImage& b) { SET_VAR(surround, border.m_image, b) } 8538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8545ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setBorderTopLeftRadius(const LengthSize& s) { SET_VAR(surround, border.m_topLeft, s) } 8555ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setBorderTopRightRadius(const LengthSize& s) { SET_VAR(surround, border.m_topRight, s) } 8565ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setBorderBottomLeftRadius(const LengthSize& s) { SET_VAR(surround, border.m_bottomLeft, s) } 8575ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setBorderBottomRightRadius(const LengthSize& s) { SET_VAR(surround, border.m_bottomRight, s) } 8588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8595ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setBorderRadius(const LengthSize& s) 8608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 8618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project setBorderTopLeftRadius(s); 8628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project setBorderTopRightRadius(s); 8638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project setBorderBottomLeftRadius(s); 8648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project setBorderBottomRightRadius(s); 8658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 8665ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setBorderRadius(const IntSize& s) 8675ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen { 8685ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen setBorderRadius(LengthSize(Length(s.width(), Fixed), Length(s.height(), Fixed))); 8695ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen } 8705f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian 8712daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch RoundedIntRect getRoundedBorderFor(const IntRect& borderRect, bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true) const; 8722daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch RoundedIntRect getRoundedInnerBorderFor(const IntRect& borderRect, bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true) const; 8732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 8742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch RoundedIntRect getRoundedInnerBorderFor(const IntRect& borderRect, 8752daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch int topWidth, int bottomWidth, int leftWidth, int rightWidth, bool includeLogicalLeftEdge, bool includeLogicalRightEdge) const; 8768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 877dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderLeftWidth(unsigned short v) { SET_VAR(surround, border.m_left.m_width, v) } 878dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderLeftStyle(EBorderStyle v) { SET_VAR(surround, border.m_left.m_style, v) } 879dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderLeftColor(const Color& v) { SET_VAR(surround, border.m_left.m_color, v) } 880dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderRightWidth(unsigned short v) { SET_VAR(surround, border.m_right.m_width, v) } 881dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderRightStyle(EBorderStyle v) { SET_VAR(surround, border.m_right.m_style, v) } 882dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderRightColor(const Color& v) { SET_VAR(surround, border.m_right.m_color, v) } 883dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderTopWidth(unsigned short v) { SET_VAR(surround, border.m_top.m_width, v) } 884dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderTopStyle(EBorderStyle v) { SET_VAR(surround, border.m_top.m_style, v) } 885dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderTopColor(const Color& v) { SET_VAR(surround, border.m_top.m_color, v) } 886dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderBottomWidth(unsigned short v) { SET_VAR(surround, border.m_bottom.m_width, v) } 887dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderBottomStyle(EBorderStyle v) { SET_VAR(surround, border.m_bottom.m_style, v) } 888dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBorderBottomColor(const Color& v) { SET_VAR(surround, border.m_bottom.m_color, v) } 889dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setOutlineWidth(unsigned short v) { SET_VAR(m_background, m_outline.m_width, v) } 8908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setOutlineStyle(EBorderStyle v, bool isAuto = false) 8928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 893dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block SET_VAR(m_background, m_outline.m_style, v) 894dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block SET_VAR(m_background, m_outline.m_isAuto, isAuto) 8958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 8968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 897dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setOutlineColor(const Color& v) { SET_VAR(m_background, m_outline.m_color, v) } 8988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 8998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setOverflowX(EOverflow v) { noninherited_flags._overflowX = v; } 9008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setOverflowY(EOverflow v) { noninherited_flags._overflowY = v; } 9018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setVisibility(EVisibility v) { inherited_flags._visibility = v; } 9028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setVerticalAlign(EVerticalAlign v) { noninherited_flags._vertical_align = v; } 903dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setVerticalAlignLength(Length l) { SET_VAR(m_box, m_verticalAlign, l) } 9048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setHasClip(bool b = true) { SET_VAR(visual, hasClip, b) } 9068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setClipLeft(Length v) { SET_VAR(visual, clip.m_left, v) } 9078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setClipRight(Length v) { SET_VAR(visual, clip.m_right, v) } 9088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setClipTop(Length v) { SET_VAR(visual, clip.m_top, v) } 9098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setClipBottom(Length v) { SET_VAR(visual, clip.m_bottom, v) } 9108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setClip(Length top, Length right, Length bottom, Length left); 91106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen void setClip(LengthBox box) { SET_VAR(visual, clip, box) } 9128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9130bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setUnicodeBidi(EUnicodeBidi b) { noninherited_flags._unicodeBidi = b; } 9148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setClear(EClear v) { noninherited_flags._clear = v; } 9168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTableLayout(ETableLayout v) { noninherited_flags._table_layout = v; } 9178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool setFontDescription(const FontDescription& v) 9198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 9208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (inherited->font.fontDescription() != v) { 9218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project inherited.access()->font = Font(v, inherited->font.letterSpacing(), inherited->font.wordSpacing()); 9228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return true; 9238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 9258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Only used for blending font sizes when animating. 9288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBlendedFontSize(int); 9298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setColor(const Color& v) { SET_VAR(inherited, color, v) } 9316c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setTextIndent(Length v) { SET_VAR(rareInheritedData, indent, v) } 9328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextAlign(ETextAlign v) { inherited_flags._text_align = v; } 9338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextTransform(ETextTransform v) { inherited_flags._text_transform = v; } 9348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void addToTextDecorationsInEffect(int v) { inherited_flags._text_decorations |= v; } 9358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextDecorationsInEffect(int v) { inherited_flags._text_decorations = v; } 9368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextDecoration(int v) { SET_VAR(visual, textDecoration, v); } 9378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setDirection(TextDirection v) { inherited_flags._direction = v; } 9388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setLineHeight(Length v) { SET_VAR(inherited, line_height, v) } 9398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setZoom(float f) { SET_VAR(visual, m_zoom, f); setEffectiveZoom(effectiveZoom() * zoom()); } 9406c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setEffectiveZoom(float f) { SET_VAR(rareInheritedData, m_effectiveZoom, f) } 9418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setWhiteSpace(EWhiteSpace v) { inherited_flags._white_space = v; } 9438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setWordSpacing(int v) { inherited.access()->font.setWordSpacing(v); } 9458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setLetterSpacing(int v) { inherited.access()->font.setLetterSpacing(v); } 9468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 947dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void clearBackgroundLayers() { m_background.access()->m_background = FillLayer(BackgroundFillLayer); } 948dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void inheritBackgroundLayers(const FillLayer& parent) { m_background.access()->m_background = parent; } 9498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void adjustBackgroundLayers() 9518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 9528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (backgroundLayers()->next()) { 953967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch accessBackgroundLayers()->cullEmptyLayers(); 954dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch accessBackgroundLayers()->fillUnsetProperties(); 9558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void clearMaskLayers() { rareNonInheritedData.access()->m_mask = FillLayer(MaskFillLayer); } 9598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void inheritMaskLayers(const FillLayer& parent) { rareNonInheritedData.access()->m_mask = parent; } 9608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void adjustMaskLayers() 9628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 9638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (maskLayers()->next()) { 964967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch accessMaskLayers()->cullEmptyLayers(); 965dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch accessMaskLayers()->fillUnsetProperties(); 9668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 9688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMaskBoxImage(const NinePieceImage& b) { SET_VAR(rareNonInheritedData, m_maskBoxImage, b) } 9705f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian void setMaskXPosition(Length l) { SET_VAR(rareNonInheritedData, m_mask.m_xPosition, l) } 9715f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian void setMaskYPosition(Length l) { SET_VAR(rareNonInheritedData, m_mask.m_yPosition, l) } 972231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setMaskSize(LengthSize l) { SET_VAR(rareNonInheritedData, m_mask.m_sizeLength, l) } 9738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBorderCollapse(bool collapse) { inherited_flags._border_collapse = collapse; } 9758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setHorizontalBorderSpacing(short v) { SET_VAR(inherited, horizontal_border_spacing, v) } 9768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setVerticalBorderSpacing(short v) { SET_VAR(inherited, vertical_border_spacing, v) } 9778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setEmptyCells(EEmptyCell v) { inherited_flags._empty_cells = v; } 9788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setCaptionSide(ECaptionSide v) { inherited_flags._caption_side = v; } 9798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9806c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setCounterIncrement(short v) { SET_VAR(rareNonInheritedData, m_counterIncrement, v) } 9816c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setCounterReset(short v) { SET_VAR(rareNonInheritedData, m_counterReset, v) } 9828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setListStyleType(EListStyleType v) { inherited_flags._list_style_type = v; } 9845ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setListStyleImage(PassRefPtr<StyleImage> v) { if (inherited->list_style_image != v) inherited.access()->list_style_image = v; } 9858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setListStylePosition(EListStylePosition v) { inherited_flags._list_style_position = v; } 9868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void resetMargin() { SET_VAR(surround, margin, LengthBox(Fixed)) } 9888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarginTop(Length v) { SET_VAR(surround, margin.m_top, v) } 9898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarginBottom(Length v) { SET_VAR(surround, margin.m_bottom, v) } 9908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarginLeft(Length v) { SET_VAR(surround, margin.m_left, v) } 9918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarginRight(Length v) { SET_VAR(surround, margin.m_right, v) } 9926b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner void setMarginStart(Length); 9936b70adc33054f8aee8c54d0f460458a9df11b8a5Russell Brenner void setMarginEnd(Length); 9948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void resetPadding() { SET_VAR(surround, padding, LengthBox(Auto)) } 9968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPaddingBox(const LengthBox& b) { SET_VAR(surround, padding, b) } 9978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPaddingTop(Length v) { SET_VAR(surround, padding.m_top, v) } 9988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPaddingBottom(Length v) { SET_VAR(surround, padding.m_bottom, v) } 9998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPaddingLeft(Length v) { SET_VAR(surround, padding.m_left, v) } 10008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPaddingRight(Length v) { SET_VAR(surround, padding.m_right, v) } 10018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10020bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setCursor(ECursor c) { inherited_flags._cursor_style = c; } 10035ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void addCursor(PassRefPtr<StyleImage>, const IntPoint& hotSpot = IntPoint()); 10048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setCursorList(PassRefPtr<CursorList>); 10058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void clearCursorList(); 10068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1007dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setInsideLink(EInsideLink insideLink) { inherited_flags._insideLink = insideLink; } 1008dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setIsLink(bool b) { noninherited_flags._isLink = b; } 1009dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 10108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool forceBackgroundsToWhite() const { return inherited_flags._force_backgrounds_to_white; } 10118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setForceBackgroundsToWhite(bool b=true) { inherited_flags._force_backgrounds_to_white = b; } 10128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1013dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool hasAutoZIndex() const { return m_box->hasAutoZIndex(); } 1014dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setHasAutoZIndex() { SET_VAR(m_box, m_hasAutoZIndex, true); SET_VAR(m_box, m_zIndex, 0) } 1015dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block int zIndex() const { return m_box->zIndex(); } 1016dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setZIndex(int v) { SET_VAR(m_box, m_hasAutoZIndex, false); SET_VAR(m_box, m_zIndex, v) } 10178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10186c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setWidows(short w) { SET_VAR(rareInheritedData, widows, w); } 10196c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen void setOrphans(short o) { SET_VAR(rareInheritedData, orphans, o); } 1020d0825bca7fe65beaee391d30da42e937db621564Steve Block void setPageBreakInside(EPageBreak b) { noninherited_flags._page_break_inside = b; } 10218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPageBreakBefore(EPageBreak b) { noninherited_flags._page_break_before = b; } 10228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setPageBreakAfter(EPageBreak b) { noninherited_flags._page_break_after = b; } 10238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // CSS3 Setters 1025dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setOutlineOffset(int v) { SET_VAR(m_background, m_outline.m_offset, v) } 10268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextShadow(ShadowData* val, bool add=false); 10278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextStrokeColor(const Color& c) { SET_VAR(rareInheritedData, textStrokeColor, c) } 10288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextStrokeWidth(float w) { SET_VAR(rareInheritedData, textStrokeWidth, w) } 10298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextFillColor(const Color& c) { SET_VAR(rareInheritedData, textFillColor, c) } 1030643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void setColorSpace(ColorSpace space) { SET_VAR(rareInheritedData, colorSpace, space) } 10318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setOpacity(float f) { SET_VAR(rareNonInheritedData, opacity, f); } 10328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setAppearance(ControlPart a) { SET_VAR(rareNonInheritedData, m_appearance, a); } 10338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxAlign(EBoxAlignment a) { SET_VAR(rareNonInheritedData.access()->flexibleBox, align, a); } 10348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxDirection(EBoxDirection d) { inherited_flags._box_direction = d; } 10358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxFlex(float f) { SET_VAR(rareNonInheritedData.access()->flexibleBox, flex, f); } 10368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxFlexGroup(unsigned int fg) { SET_VAR(rareNonInheritedData.access()->flexibleBox, flex_group, fg); } 10378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxLines(EBoxLines l) { SET_VAR(rareNonInheritedData.access()->flexibleBox, lines, l); } 10388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxOrdinalGroup(unsigned int og) { SET_VAR(rareNonInheritedData.access()->flexibleBox, ordinal_group, og); } 10398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxOrient(EBoxOrient o) { SET_VAR(rareNonInheritedData.access()->flexibleBox, orient, o); } 10408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxPack(EBoxAlignment p) { SET_VAR(rareNonInheritedData.access()->flexibleBox, pack, p); } 10418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxShadow(ShadowData* val, bool add=false); 10428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBoxReflect(PassRefPtr<StyleReflection> reflect) { if (rareNonInheritedData->m_boxReflect != reflect) rareNonInheritedData.access()->m_boxReflect = reflect; } 1043dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setBoxSizing(EBoxSizing s) { SET_VAR(m_box, m_boxSizing, s); } 10448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarqueeIncrement(const Length& f) { SET_VAR(rareNonInheritedData.access()->marquee, increment, f); } 10458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarqueeSpeed(int f) { SET_VAR(rareNonInheritedData.access()->marquee, speed, f); } 10468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarqueeDirection(EMarqueeDirection d) { SET_VAR(rareNonInheritedData.access()->marquee, direction, d); } 10478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarqueeBehavior(EMarqueeBehavior b) { SET_VAR(rareNonInheritedData.access()->marquee, behavior, b); } 10488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMarqueeLoopCount(int i) { SET_VAR(rareNonInheritedData.access()->marquee, loops, i); } 10498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setUserModify(EUserModify u) { SET_VAR(rareInheritedData, userModify, u); } 10508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setUserDrag(EUserDrag d) { SET_VAR(rareNonInheritedData, userDrag, d); } 10518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setUserSelect(EUserSelect s) { SET_VAR(rareInheritedData, userSelect, s); } 10528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextOverflow(bool b) { SET_VAR(rareNonInheritedData, textOverflow, b); } 1053bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen void setMarginBeforeCollapse(EMarginCollapse c) { SET_VAR(rareNonInheritedData, marginBeforeCollapse, c); } 1054bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen void setMarginAfterCollapse(EMarginCollapse c) { SET_VAR(rareNonInheritedData, marginAfterCollapse, c); } 10558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setWordBreak(EWordBreak b) { SET_VAR(rareInheritedData, wordBreak, b); } 10568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setWordWrap(EWordWrap b) { SET_VAR(rareInheritedData, wordWrap, b); } 10578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setNBSPMode(ENBSPMode b) { SET_VAR(rareInheritedData, nbspMode, b); } 10588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setKHTMLLineBreak(EKHTMLLineBreak b) { SET_VAR(rareInheritedData, khtmlLineBreak, b); } 10598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setMatchNearestMailBlockquoteColor(EMatchNearestMailBlockquoteColor c) { SET_VAR(rareNonInheritedData, matchNearestMailBlockquoteColor, c); } 10608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setHighlight(const AtomicString& h) { SET_VAR(rareInheritedData, highlight, h); } 106106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen void setHyphens(Hyphens h) { SET_VAR(rareInheritedData, hyphens, h); } 106281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void setHyphenationLimitBefore(short limit) { SET_VAR(rareInheritedData, hyphenationLimitBefore, limit); } 106381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void setHyphenationLimitAfter(short limit) { SET_VAR(rareInheritedData, hyphenationLimitAfter, limit); } 1064dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setHyphenationString(const AtomicString& h) { SET_VAR(rareInheritedData, hyphenationString, h); } 106581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void setLocale(const AtomicString& locale) { SET_VAR(rareInheritedData, locale, locale); } 10668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setBorderFit(EBorderFit b) { SET_VAR(rareNonInheritedData, m_borderFit, b); } 10678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setResize(EResize r) { SET_VAR(rareInheritedData, resize, r); } 10688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setColumnWidth(float f) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoWidth, false); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_width, f); } 10698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setHasAutoColumnWidth() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoWidth, true); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_width, 0); } 10708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setColumnCount(unsigned short c) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoCount, false); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_count, c); } 10718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setHasAutoColumnCount() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_autoCount, true); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_count, 0); } 10728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setColumnGap(float f) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_normalGap, false); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_gap, f); } 10738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setHasNormalColumnGap() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_normalGap, true); SET_VAR(rareNonInheritedData.access()->m_multiCol, m_gap, 0); } 1074dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setColumnRuleColor(const Color& c) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule.m_color, c); } 10758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setColumnRuleStyle(EBorderStyle b) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule.m_style, b); } 1076dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setColumnRuleWidth(unsigned short w) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule.m_width, w); } 10778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void resetColumnRule() { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_rule, BorderValue()) } 1078e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block void setColumnSpan(bool b) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_columnSpan, b); } 10798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setColumnBreakBefore(EPageBreak p) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_breakBefore, p); } 10808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setColumnBreakInside(EPageBreak p) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_breakInside, p); } 10818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setColumnBreakAfter(EPageBreak p) { SET_VAR(rareNonInheritedData.access()->m_multiCol, m_breakAfter, p); } 10825af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke void inheritColumnPropertiesFrom(RenderStyle* parent) { rareNonInheritedData.access()->m_multiCol = parent->rareNonInheritedData->m_multiCol; } 10838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTransform(const TransformOperations& ops) { SET_VAR(rareNonInheritedData.access()->m_transform, m_operations, ops); } 10848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTransformOriginX(Length l) { SET_VAR(rareNonInheritedData.access()->m_transform, m_x, l); } 10858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTransformOriginY(Length l) { SET_VAR(rareNonInheritedData.access()->m_transform, m_y, l); } 10868f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void setTransformOriginZ(float f) { SET_VAR(rareNonInheritedData.access()->m_transform, m_z, f); } 1087a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void setSpeak(ESpeak s) { SET_VAR(rareInheritedData, speak, s); } 108828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu void setTextCombine(TextCombine v) { SET_VAR(rareNonInheritedData, m_textCombine, v); } 1089f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch void setTextEmphasisColor(const Color& c) { SET_VAR(rareInheritedData, textEmphasisColor, c) } 1090f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch void setTextEmphasisFill(TextEmphasisFill fill) { SET_VAR(rareInheritedData, textEmphasisFill, fill); } 1091f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch void setTextEmphasisMark(TextEmphasisMark mark) { SET_VAR(rareInheritedData, textEmphasisMark, mark); } 1092f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch void setTextEmphasisCustomMark(const AtomicString& mark) { SET_VAR(rareInheritedData, textEmphasisCustomMark, mark); } 1093f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch void setTextEmphasisPosition(TextEmphasisPosition position) { SET_VAR(rareInheritedData, textEmphasisPosition, position); } 10948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // End CSS3 Setters 10958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 10968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Apple-specific property setters 1097635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project void setPointerEvents(EPointerEvents p) { inherited_flags._pointerEvents = p; } 1098635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 10998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void clearAnimations() 11008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 11018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project rareNonInheritedData.access()->m_animations.clear(); 11028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 11038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void clearTransitions() 11058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 11068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project rareNonInheritedData.access()->m_transitions.clear(); 11078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 11088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1109e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke void inheritAnimations(const AnimationList* parent) { rareNonInheritedData.access()->m_animations = parent ? adoptPtr(new AnimationList(*parent)) : PassOwnPtr<AnimationList>(); } 1110e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke void inheritTransitions(const AnimationList* parent) { rareNonInheritedData.access()->m_transitions = parent ? adoptPtr(new AnimationList(*parent)) : PassOwnPtr<AnimationList>(); } 11118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void adjustAnimations(); 11128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void adjustTransitions(); 11138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11148f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void setTransformStyle3D(ETransformStyle3D b) { SET_VAR(rareNonInheritedData, m_transformStyle3D, b); } 11158f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void setBackfaceVisibility(EBackfaceVisibility b) { SET_VAR(rareNonInheritedData, m_backfaceVisibility, b); } 11168f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void setPerspective(float p) { SET_VAR(rareNonInheritedData, m_perspective, p); } 11178f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void setPerspectiveOriginX(Length l) { SET_VAR(rareNonInheritedData, m_perspectiveOriginX, l); } 11188f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void setPerspectiveOriginY(Length l) { SET_VAR(rareNonInheritedData, m_perspectiveOriginY, l); } 111906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen void setPageSize(LengthSize s) { SET_VAR(rareNonInheritedData, m_pageSize, s); } 1120ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block void setPageSizeType(PageSizeType t) { SET_VAR(rareNonInheritedData, m_pageSizeType, t); } 1121ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block void resetPageSizeType() { SET_VAR(rareNonInheritedData, m_pageSizeType, PAGE_SIZE_AUTO); } 11228f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 11238f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#if USE(ACCELERATED_COMPOSITING) 11248f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void setIsRunningAcceleratedAnimation(bool b = true) { SET_VAR(rareNonInheritedData, m_runningAcceleratedAnimation, b); } 11258f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#endif 11268f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 11272bde8e466a4451c7319e3a072d118917957d6554Steve Block void setLineBoxContain(LineBoxContain c) { SET_VAR(rareInheritedData, m_lineBoxContain, c); } 1128643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void setLineClamp(LineClampValue c) { SET_VAR(rareNonInheritedData, lineClamp, c); } 11298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextSizeAdjust(bool b) { SET_VAR(rareInheritedData, textSizeAdjust, b); } 11308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTextSecurity(ETextSecurity aTextSecurity) { SET_VAR(rareInheritedData, textSecurity, aTextSecurity); } 11318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_CSS_TAP_HIGHLIGHT_COLOR 11338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setTapHighlightColor(const Color& v) { SET_VAR(rareInheritedData, tapHighlightColor, v); } 11348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 11358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(SVG) 11378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const SVGRenderStyle* svgStyle() const { return m_svgStyle.get(); } 11388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project SVGRenderStyle* accessSVGStyle() { return m_svgStyle.access(); } 11398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float fillOpacity() const { return svgStyle()->fillOpacity(); } 11418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setFillOpacity(float f) { accessSVGStyle()->setFillOpacity(f); } 11428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float strokeOpacity() const { return svgStyle()->strokeOpacity(); } 11448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setStrokeOpacity(float f) { accessSVGStyle()->setStrokeOpacity(f); } 11458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project float floodOpacity() const { return svgStyle()->floodOpacity(); } 11478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setFloodOpacity(float f) { accessSVGStyle()->setFloodOpacity(f); } 11488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 11498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const ContentData* contentData() const { return rareNonInheritedData->m_content.get(); } 11518f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian bool contentDataEquivalent(const RenderStyle* otherStyle) const { return const_cast<RenderStyle*>(this)->rareNonInheritedData->contentDataEquivalent(*const_cast<RenderStyle*>(otherStyle)->rareNonInheritedData); } 11528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void clearContent(); 11538f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian void setContent(PassRefPtr<StringImpl>, bool add = false); 11548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setContent(PassRefPtr<StyleImage>, bool add = false); 11555ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen void setContent(PassOwnPtr<CounterContent>, bool add = false); 115681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void setContent(QuoteType, bool add = false); 11578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project const CounterDirectiveMap* counterDirectives() const; 11598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CounterDirectiveMap& accessCounterDirectives(); 11608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 116181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch QuotesData* quotes() const { return rareInheritedData->quotes.get(); } 116281bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void setQuotes(PassRefPtr<QuotesData>); 116381bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch 116406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen const AtomicString& hyphenString() const; 116506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 11660bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool inheritedNotEqual(const RenderStyle*) const; 11678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11688f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian StyleDifference diff(const RenderStyle*, unsigned& changedContextSensitiveProperties) const; 11698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool isDisplayReplacedType() const 11718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 11728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return display() == INLINE_BLOCK || display() == INLINE_BOX || display() == INLINE_TABLE; 11738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 11748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool isDisplayInlineType() const 11768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 11778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return display() == INLINE || isDisplayReplacedType(); 11788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 11798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool isOriginalDisplayInlineType() const 11818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 11822daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch return originalDisplay() == INLINE || originalDisplay() == INLINE_BLOCK 11832daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch || originalDisplay() == INLINE_BOX || originalDisplay() == INLINE_TABLE; 11848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 11858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1186a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void setWritingMode(WritingMode v) { inherited_flags.m_writingMode = v; } 118768513a70bcd92384395513322f1b801e7bf9c729Steve Block 11888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // To tell if this style matched attribute selectors. This makes it impossible to share. 11898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool affectedByAttributeSelectors() const { return m_affectedByAttributeSelectors; } 11908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setAffectedByAttributeSelectors() { m_affectedByAttributeSelectors = true; } 11918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool unique() const { return m_unique; } 11938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setUnique() { m_unique = true; } 11948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 11958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Methods for indicating the style is affected by dynamic updates (e.g., children changing, our position changing in our sibling list, etc.) 11968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool affectedByEmpty() const { return m_affectedByEmpty; } 11978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool emptyState() const { return m_emptyState; } 11988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setEmptyState(bool b) { m_affectedByEmpty = true; m_unique = true; m_emptyState = b; } 11998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool childrenAffectedByPositionalRules() const { return childrenAffectedByForwardPositionalRules() || childrenAffectedByBackwardPositionalRules(); } 12008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool childrenAffectedByFirstChildRules() const { return m_childrenAffectedByFirstChildRules; } 12018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setChildrenAffectedByFirstChildRules() { m_childrenAffectedByFirstChildRules = true; } 12028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool childrenAffectedByLastChildRules() const { return m_childrenAffectedByLastChildRules; } 12038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setChildrenAffectedByLastChildRules() { m_childrenAffectedByLastChildRules = true; } 12048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool childrenAffectedByDirectAdjacentRules() const { return m_childrenAffectedByDirectAdjacentRules; } 12058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setChildrenAffectedByDirectAdjacentRules() { m_childrenAffectedByDirectAdjacentRules = true; } 12068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool childrenAffectedByForwardPositionalRules() const { return m_childrenAffectedByForwardPositionalRules; } 12078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setChildrenAffectedByForwardPositionalRules() { m_childrenAffectedByForwardPositionalRules = true; } 12088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool childrenAffectedByBackwardPositionalRules() const { return m_childrenAffectedByBackwardPositionalRules; } 12098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void setChildrenAffectedByBackwardPositionalRules() { m_childrenAffectedByBackwardPositionalRules = true; } 12108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool firstChildState() const { return m_firstChildState; } 1211ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch void setFirstChildState() { m_unique = true; m_firstChildState = true; } 12128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project bool lastChildState() const { return m_lastChildState; } 1213ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch void setLastChildState() { m_unique = true; m_lastChildState = true; } 12148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned childIndex() const { return m_childIndex; } 1215ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddbBen Murdoch void setChildIndex(unsigned index) { m_unique = true; m_childIndex = index; } 12168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1217e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color visitedDependentColor(int colorProperty) const; 1218dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 12198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Initial values for all the properties 12208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool initialBorderCollapse() { return false; } 12218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EBorderStyle initialBorderStyle() { return BNONE; } 12228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static NinePieceImage initialNinePieceImage() { return NinePieceImage(); } 12235ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen static LengthSize initialBorderRadius() { return LengthSize(Length(0, Fixed), Length(0, Fixed)); } 12248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ECaptionSide initialCaptionSide() { return CAPTOP; } 12258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EClear initialClear() { return CNONE; } 12268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static TextDirection initialDirection() { return LTR; } 1227a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch static WritingMode initialWritingMode() { return TopToBottomWritingMode; } 122828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu static TextCombine initialTextCombine() { return TextCombineNone; } 12292bde8e466a4451c7319e3a072d118917957d6554Steve Block static TextOrientation initialTextOrientation() { return TextOrientationVerticalRight; } 12308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EDisplay initialDisplay() { return INLINE; } 12318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EEmptyCell initialEmptyCells() { return SHOW; } 12328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EFloat initialFloating() { return FNONE; } 12338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EListStylePosition initialListStylePosition() { return OUTSIDE; } 1234d0825bca7fe65beaee391d30da42e937db621564Steve Block static EListStyleType initialListStyleType() { return Disc; } 12358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EOverflow initialOverflowX() { return OVISIBLE; } 12368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EOverflow initialOverflowY() { return OVISIBLE; } 12378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EPageBreak initialPageBreak() { return PBAUTO; } 12388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EPosition initialPosition() { return StaticPosition; } 12398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ETableLayout initialTableLayout() { return TAUTO; } 12408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EUnicodeBidi initialUnicodeBidi() { return UBNormal; } 12418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ETextTransform initialTextTransform() { return TTNONE; } 12428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EVisibility initialVisibility() { return VISIBLE; } 12438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EWhiteSpace initialWhiteSpace() { return NORMAL; } 12448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static short initialHorizontalBorderSpacing() { return 0; } 12458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static short initialVerticalBorderSpacing() { return 0; } 12468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ECursor initialCursor() { return CURSOR_AUTO; } 12478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Color initialColor() { return Color::black; } 12488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static StyleImage* initialListStyleImage() { return 0; } 12498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static unsigned short initialBorderWidth() { return 3; } 12508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int initialLetterWordSpacing() { return 0; } 12518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialSize() { return Length(); } 12528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialMinSize() { return Length(0, Fixed); } 12538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialMaxSize() { return Length(undefinedLength, Fixed); } 12548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialOffset() { return Length(); } 12558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialMargin() { return Length(Fixed); } 12568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialPadding() { return Length(Fixed); } 12578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialTextIndent() { return Length(Fixed); } 12588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EVerticalAlign initialVerticalAlign() { return BASELINE; } 12598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int initialWidows() { return 2; } 12608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int initialOrphans() { return 2; } 12618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialLineHeight() { return Length(-100.0, Percent); } 12628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ETextAlign initialTextAlign() { return TAAUTO; } 12638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ETextDecoration initialTextDecoration() { return TDNONE; } 12648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static float initialZoom() { return 1.0f; } 12658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int initialOutlineOffset() { return 0; } 12668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static float initialOpacity() { return 1.0f; } 12678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EBoxAlignment initialBoxAlign() { return BSTRETCH; } 12688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EBoxDirection initialBoxDirection() { return BNORMAL; } 12698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EBoxLines initialBoxLines() { return SINGLE; } 12708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EBoxOrient initialBoxOrient() { return HORIZONTAL; } 12718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EBoxAlignment initialBoxPack() { return BSTART; } 12728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static float initialBoxFlex() { return 0.0f; } 12738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int initialBoxFlexGroup() { return 1; } 12748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int initialBoxOrdinalGroup() { return 1; } 12758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EBoxSizing initialBoxSizing() { return CONTENT_BOX; } 12768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static StyleReflection* initialBoxReflect() { return 0; } 12778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int initialMarqueeLoopCount() { return -1; } 12788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static int initialMarqueeSpeed() { return 85; } 12798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialMarqueeIncrement() { return Length(6, Fixed); } 12808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EMarqueeBehavior initialMarqueeBehavior() { return MSCROLL; } 12818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EMarqueeDirection initialMarqueeDirection() { return MAUTO; } 12828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EUserModify initialUserModify() { return READ_ONLY; } 12838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EUserDrag initialUserDrag() { return DRAG_AUTO; } 12848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EUserSelect initialUserSelect() { return SELECT_TEXT; } 12858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool initialTextOverflow() { return false; } 1286bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen static EMarginCollapse initialMarginBeforeCollapse() { return MCOLLAPSE; } 1287bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen static EMarginCollapse initialMarginAfterCollapse() { return MCOLLAPSE; } 12888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EWordBreak initialWordBreak() { return NormalWordBreak; } 12898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EWordWrap initialWordWrap() { return NormalWordWrap; } 12908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ENBSPMode initialNBSPMode() { return NBNORMAL; } 12918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EKHTMLLineBreak initialKHTMLLineBreak() { return LBNORMAL; } 12928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EMatchNearestMailBlockquoteColor initialMatchNearestMailBlockquoteColor() { return BCNORMAL; } 12938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static const AtomicString& initialHighlight() { return nullAtom; } 1294a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch static ESpeak initialSpeak() { return SpeakNormal; } 129506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen static Hyphens initialHyphens() { return HyphensManual; } 129681bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch static short initialHyphenationLimitBefore() { return -1; } 129781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch static short initialHyphenationLimitAfter() { return -1; } 1298dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch static const AtomicString& initialHyphenationString() { return nullAtom; } 129981bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch static const AtomicString& initialLocale() { return nullAtom; } 13008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EBorderFit initialBorderFit() { return BorderFitBorder; } 13018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static EResize initialResize() { return RESIZE_NONE; } 13028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ControlPart initialAppearance() { return NoControlPart; } 13038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool initialVisuallyOrdered() { return false; } 13048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static float initialTextStrokeWidth() { return 0; } 13058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static unsigned short initialColumnCount() { return 1; } 1306e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block static bool initialColumnSpan() { return false; } 1307635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project static const TransformOperations& initialTransform() { DEFINE_STATIC_LOCAL(TransformOperations, ops, ()); return ops; } 13088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialTransformOriginX() { return Length(50.0, Percent); } 13098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Length initialTransformOriginY() { return Length(50.0, Percent); } 1310635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project static EPointerEvents initialPointerEvents() { return PE_AUTO; } 13118f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static float initialTransformOriginZ() { return 0; } 13128f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static ETransformStyle3D initialTransformStyle3D() { return TransformStyle3DFlat; } 13138f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static EBackfaceVisibility initialBackfaceVisibility() { return BackfaceVisibilityVisible; } 13148f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static float initialPerspective() { return 0; } 13158f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static Length initialPerspectiveOriginX() { return Length(50.0, Percent); } 13168f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian static Length initialPerspectiveOriginY() { return Length(50.0, Percent); } 1317643ca7872b450ea4efacab6188849e5aac2ba161Steve Block static Color initialBackgroundColor() { return Color::transparent; } 1318f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch static Color initialTextEmphasisColor() { return TextEmphasisFillFilled; } 1319f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch static TextEmphasisFill initialTextEmphasisFill() { return TextEmphasisFillFilled; } 1320f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch static TextEmphasisMark initialTextEmphasisMark() { return TextEmphasisMarkNone; } 1321f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch static const AtomicString& initialTextEmphasisCustomMark() { return nullAtom; } 1322f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch static TextEmphasisPosition initialTextEmphasisPosition() { return TextEmphasisPositionOver; } 13232bde8e466a4451c7319e3a072d118917957d6554Steve Block static LineBoxContain initialLineBoxContain() { return LineBoxContainBlock | LineBoxContainInline | LineBoxContainReplaced; } 13248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 13258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Keep these at the end. 1326643ca7872b450ea4efacab6188849e5aac2ba161Steve Block static LineClampValue initialLineClamp() { return LineClampValue(); } 13278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static bool initialTextSizeAdjust() { return true; } 13288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static ETextSecurity initialTextSecurity() { return TSNONE; } 13298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if ENABLE(DASHBOARD_SUPPORT) 13308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static const Vector<StyleDashboardRegion>& initialDashboardRegions(); 13318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static const Vector<StyleDashboardRegion>& noneDashboardRegions(); 13328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 13338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 13348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifdef ANDROID_CSS_TAP_HIGHLIGHT_COLOR 13358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static Color initialTapHighlightColor() { return Color::tap; } 13368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 13371e6338658628fcabd955cf65687a30976c7893ceSteve Block 1338e78cbe89e6f337f2f1fe40315be88f742b547151Steve Blockprivate: 13392bde8e466a4451c7319e3a072d118917957d6554Steve Block void inheritUnicodeBidiFrom(const RenderStyle* parent) { noninherited_flags._unicodeBidi = parent->noninherited_flags._unicodeBidi; } 1340a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getShadowExtent(const ShadowData*, int& top, int& right, int& bottom, int& left) const; 1341a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getShadowHorizontalExtent(const ShadowData*, int& left, int& right) const; 1342a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getShadowVerticalExtent(const ShadowData*, int& top, int& bottom) const; 1343a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void getShadowInlineDirectionExtent(const ShadowData* shadow, int& logicalLeft, int& logicalRight) const 1344a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch { 1345a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return isHorizontalWritingMode() ? getShadowHorizontalExtent(shadow, logicalLeft, logicalRight) : getShadowVerticalExtent(shadow, logicalLeft, logicalRight); 1346a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch } 1347e14391e94c850b8bd03680c23b38978db68687a8John Reck void getShadowBlockDirectionExtent(const ShadowData* shadow, int& logicalTop, int& logicalBottom) const 1348e14391e94c850b8bd03680c23b38978db68687a8John Reck { 1349e14391e94c850b8bd03680c23b38978db68687a8John Reck return isHorizontalWritingMode() ? getShadowVerticalExtent(shadow, logicalTop, logicalBottom) : getShadowHorizontalExtent(shadow, logicalTop, logicalBottom); 1350e14391e94c850b8bd03680c23b38978db68687a8John Reck } 1351a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1352e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block // Color accessors are all private to make sure callers use visitedDependentColor instead to access them. 1353e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& borderLeftColor() const { return surround->border.left().color(); } 1354e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& borderRightColor() const { return surround->border.right().color(); } 1355e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& borderTopColor() const { return surround->border.top().color(); } 1356e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& borderBottomColor() const { return surround->border.bottom().color(); } 1357e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& backgroundColor() const { return m_background->color(); } 1358e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& color() const { return inherited->color; } 1359e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& columnRuleColor() const { return rareNonInheritedData->m_multiCol->m_rule.color(); } 1360e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& outlineColor() const { return m_background->outline().color(); } 1361f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch const Color& textEmphasisColor() const { return rareInheritedData->textEmphasisColor; } 1362e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& textFillColor() const { return rareInheritedData->textFillColor; } 1363e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color& textStrokeColor() const { return rareInheritedData->textStrokeColor; } 1364e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 1365e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block const Color colorIncludingFallback(int colorProperty, EBorderStyle borderStyle) const; 13665ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen 13675ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen ContentData* prepareToSetContent(StringImpl*, bool add); 13688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 13698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 137068513a70bcd92384395513322f1b801e7bf9c729Steve Blockinline int adjustForAbsoluteZoom(int value, const RenderStyle* style) 137168513a70bcd92384395513322f1b801e7bf9c729Steve Block{ 137268513a70bcd92384395513322f1b801e7bf9c729Steve Block double zoomFactor = style->effectiveZoom(); 137368513a70bcd92384395513322f1b801e7bf9c729Steve Block if (zoomFactor == 1) 137468513a70bcd92384395513322f1b801e7bf9c729Steve Block return value; 137568513a70bcd92384395513322f1b801e7bf9c729Steve Block // Needed because computeLengthInt truncates (rather than rounds) when scaling up. 137628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu if (zoomFactor > 1) { 137728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu if (value < 0) 137828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu value--; 137928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu else 138028040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu value++; 138128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu } 138268513a70bcd92384395513322f1b801e7bf9c729Steve Block 138368513a70bcd92384395513322f1b801e7bf9c729Steve Block return roundForImpreciseConversion<int, INT_MAX, INT_MIN>(value / zoomFactor); 138468513a70bcd92384395513322f1b801e7bf9c729Steve Block} 138568513a70bcd92384395513322f1b801e7bf9c729Steve Block 1386f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochinline float adjustFloatForAbsoluteZoom(float value, const RenderStyle* style) 1387f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch{ 1388f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch return value / style->effectiveZoom(); 1389f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch} 1390f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 13918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 13928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 13938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // RenderStyle_h 1394