18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *           (C) 1999 Antti Koivisto (koivisto@kde.org)
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *           (C) 2000 Dirk Mueller (mueller@kde.org)
50bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch * Copyright (C) 2004, 2006, 2009 Apple Inc. All rights reserved.
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is free software; you can redistribute it and/or
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modify it under the terms of the GNU Library General Public
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License as published by the Free Software Foundation; either
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * version 2 of the License, or (at your option) any later version.
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This library is distributed in the hope that it will be useful,
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * but WITHOUT ANY WARRANTY; without even the implied warranty of
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Library General Public License for more details.
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * You should have received a copy of the GNU Library General Public License
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * along with this library; see the file COPYING.LIB.  If not, write to
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Boston, MA 02110-1301, USA.
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef RenderFieldset_h
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define RenderFieldset_h
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "RenderBlock.h"
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass RenderFieldset : public RenderBlock {
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic:
33a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch    explicit RenderFieldset(Node*);
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
350bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    RenderBox* findLegend() const;
360bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
370bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochprivate:
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual const char* renderName() const { return "RenderFieldSet"; }
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool isFieldset() const { return true; }
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
414576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang    virtual RenderObject* layoutSpecialExcludedChild(bool relayoutChildren);
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
43bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    virtual void computePreferredLogicalWidths();
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual bool avoidsFloats() const { return true; }
45bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen    virtual bool stretchesToMinIntrinsicLogicalWidth() const { return true; }
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    virtual void paintBoxDecorations(PaintInfo&, int tx, int ty);
480bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    virtual void paintMask(PaintInfo&, int tx, int ty);
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
510bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochinline RenderFieldset* toRenderFieldset(RenderObject* object)
520bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch{
530bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    ASSERT(!object || object->isFieldset());
540bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    return static_cast<RenderFieldset*>(object);
550bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
560bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch// This will catch anyone doing an unnecessary cast.
580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochvoid toRenderFieldset(const RenderFieldset*);
590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // RenderFieldset_h
63