RenderDeprecatedFlexibleBox.h 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * This file is part of the render object implementation for KHTML.
  3. *
  4. * Copyright (C) 2003 Apple Computer, Inc.
  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 RenderDeprecatedFlexibleBox_h
  23. #define RenderDeprecatedFlexibleBox_h
  24. #include "RenderBlock.h"
  25. namespace WebCore {
  26. class FlexBoxIterator;
  27. class RenderDeprecatedFlexibleBox : public RenderBlock {
  28. public:
  29. RenderDeprecatedFlexibleBox(Element*);
  30. virtual ~RenderDeprecatedFlexibleBox();
  31. static RenderDeprecatedFlexibleBox* createAnonymous(Document*);
  32. virtual const char* renderName() const;
  33. virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle) OVERRIDE;
  34. virtual void layoutBlock(bool relayoutChildren, LayoutUnit pageHeight = 0);
  35. void layoutHorizontalBox(bool relayoutChildren);
  36. void layoutVerticalBox(bool relayoutChildren);
  37. virtual bool avoidsFloats() const { return true; }
  38. virtual bool isDeprecatedFlexibleBox() const { return true; }
  39. virtual bool isStretchingChildren() const { return m_stretchingChildren; }
  40. virtual bool canCollapseAnonymousBlockChild() const OVERRIDE { return false; }
  41. void placeChild(RenderBox* child, const LayoutPoint& location, LayoutSize* childLayoutDelta = 0);
  42. protected:
  43. virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const OVERRIDE;
  44. virtual void computePreferredLogicalWidths() OVERRIDE;
  45. LayoutUnit allowedChildFlex(RenderBox* child, bool expanding, unsigned group);
  46. bool hasMultipleLines() const { return style()->boxLines() == MULTIPLE; }
  47. bool isVertical() const { return style()->boxOrient() == VERTICAL; }
  48. bool isHorizontal() const { return style()->boxOrient() == HORIZONTAL; }
  49. bool m_stretchingChildren;
  50. private:
  51. void applyLineClamp(FlexBoxIterator&, bool relayoutChildren);
  52. void clearLineClamp();
  53. };
  54. } // namespace WebCore
  55. #endif // RenderDeprecatedFlexibleBox_h