1 /* 2 * Copyright (C) 2013 Google, Inc. 3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Library General Public 8 * License as published by the Free Software Foundation; either 9 * version 2 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Library General Public License for more details. 15 * 16 * You should have received a copy of the GNU Library General Public License 17 * along with this library; see the file COPYING.LIB. If not, write to 18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * Boston, MA 02110-1301, USA. 20 */ 21 22 #ifndef StyleAdjuster_h 23 #define StyleAdjuster_h 24 25 #include "platform/heap/Handle.h" 26 27 namespace blink { 28 29 class CachedUAStyle; 30 class Element; 31 class RenderStyle; 32 33 // Certain CSS Properties/Values do not apply to certain elements 34 // and the web expects that we expose "adjusted" values when 35 // for those property/element pairs. 36 class StyleAdjuster { 37 STACK_ALLOCATED(); 38 public: StyleAdjuster(bool useQuirksModeStyles)39 StyleAdjuster(bool useQuirksModeStyles) 40 : m_useQuirksModeStyles(useQuirksModeStyles) 41 { } 42 43 void adjustRenderStyle(RenderStyle* styleToAdjust, RenderStyle* parentStyle, Element*, const CachedUAStyle*); 44 45 private: 46 void adjustStyleForDisplay(RenderStyle* styleToAdjust, RenderStyle* parentStyle); 47 void adjustStyleForTagName(RenderStyle* styleToAdjust, RenderStyle* parentStyle, Element&); 48 void adjustOverflow(RenderStyle* styleToAdjust); 49 void adjustStyleForAlignment(RenderStyle& styleToAdjust, const RenderStyle& parentStyle); 50 51 bool m_useQuirksModeStyles; 52 }; 53 54 } // namespace blink 55 56 #endif // StyleAdjuster_h 57