18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 1997 Martin Jones (mjones@kde.org) 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (C) 1997 Torben Weis (weis@kde.org) 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (C) 1998 Waldo Bastian (bastian@kde.org) 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (C) 1999 Lars Knoll (knoll@kde.org) 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (C) 1999 Antti Koivisto (koivisto@kde.org) 70bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version. 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful, 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details. 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB. If not, write to 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef RenderTableCol_h 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define RenderTableCol_h 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian#include "RenderBox.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass RenderTable; 340bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochclass RenderTableCol : public RenderBox { 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 37a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch explicit RenderTableCol(Node*); 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 398f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian const RenderObjectChildList* children() const { return &m_children; } 408f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian RenderObjectChildList* children() { return &m_children; } 418f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian 42bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen virtual void computePreferredLogicalWidths(); 430bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch int span() const { return m_span; } 450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setSpan(int span) { m_span = span; } 460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochprivate: 480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual RenderObjectChildList* virtualChildren() { return children(); } 490bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch virtual const RenderObjectChildList* virtualChildren() const { return children(); } 500bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual const char* renderName() const { return "RenderTableCol"; } 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isTableCol() const { return true; } 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void updateFromElement(); 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool isChildAllowed(RenderObject*, RenderStyle*) const; 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool canHaveChildren() const; 57635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual bool requiresLayer() const { return false; } 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 598f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian virtual IntRect clippedOverflowRectForRepaint(RenderBoxModelObject* repaintContainer); 60635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project virtual void imageChanged(WrappedImagePtr, const IntRect* = 0); 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 620bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch RenderTable* table() const; 630bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 648f72e70a9fd78eec56623b3a62e68f16b7b27e28Feng Qian RenderObjectChildList m_children; 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project int m_span; 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochinline RenderTableCol* toRenderTableCol(RenderObject* object) 690bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{ 700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch ASSERT(!object || object->isTableCol()); 710bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return static_cast<RenderTableCol*>(object); 720bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} 730bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 740bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochinline const RenderTableCol* toRenderTableCol(const RenderObject* object) 750bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{ 760bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch ASSERT(!object || object->isTableCol()); 770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch return static_cast<const RenderTableCol*>(object); 780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch} 790bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 800bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch// This will catch anyone doing an unnecessary cast. 810bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochvoid toRenderTableCol(const RenderTableCol*); 820bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 86