TableLayout.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright (C) 2002 Lars Knoll (knoll@kde.org)
  3. * (C) 2002 Dirk Mueller (mueller@kde.org)
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Library General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 2 of the License.
  9. *
  10. * This library is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Library General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Library General Public License
  16. * along with this library; see the file COPYING.LIB. If not, write to
  17. * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  18. * Boston, MA 02110-1301, USA.
  19. */
  20. #ifndef TableLayout_h
  21. #define TableLayout_h
  22. #include <wtf/FastAllocBase.h>
  23. #include <wtf/Noncopyable.h>
  24. namespace WebCore {
  25. class RenderTable;
  26. class TableLayout {
  27. WTF_MAKE_NONCOPYABLE(TableLayout); WTF_MAKE_FAST_ALLOCATED;
  28. public:
  29. explicit TableLayout(RenderTable* table)
  30. : m_table(table)
  31. {
  32. }
  33. virtual ~TableLayout() { }
  34. virtual void computeIntrinsicLogicalWidths(LayoutUnit& minWidth, LayoutUnit& maxWidth) = 0;
  35. virtual void applyPreferredLogicalWidthQuirks(LayoutUnit& minWidth, LayoutUnit& maxWidth) const = 0;
  36. virtual void layout() = 0;
  37. protected:
  38. // FIXME: Once we enable SATURATED_LAYOUT_ARITHMETHIC, this should just be LayoutUnit::nearlyMax().
  39. // Until then though, using nearlyMax causes overflow in some tests, so we just pick a large number.
  40. const static int tableMaxWidth = 1000000;
  41. RenderTable* m_table;
  42. };
  43. } // namespace WebCore
  44. #endif // TableLayout_h