1 /* 2 * Copyright (C) 2000 Lars Knoll (knoll (at) kde.org) 3 * (C) 2000 Antti Koivisto (koivisto (at) kde.org) 4 * (C) 2000 Dirk Mueller (mueller (at) kde.org) 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 * Copyright (C) 2006 Graham Dennis (graham.dennis (at) gmail.com) 7 * 8 * This library is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU Library General Public 10 * License as published by the Free Software Foundation; either 11 * version 2 of the License, or (at your option) any later version. 12 * 13 * This library is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Library General Public License for more details. 17 * 18 * You should have received a copy of the GNU Library General Public License 19 * along with this library; see the file COPYING.LIB. If not, write to 20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21 * Boston, MA 02110-1301, USA. 22 * 23 */ 24 25 #ifndef StyleMultiColData_h 26 #define StyleMultiColData_h 27 28 #include "BorderValue.h" 29 #include "Length.h" 30 #include "RenderStyleConstants.h" 31 #include <wtf/PassRefPtr.h> 32 #include <wtf/RefCounted.h> 33 34 namespace WebCore { 35 36 // CSS3 Multi Column Layout 37 38 class StyleMultiColData : public RefCounted<StyleMultiColData> { 39 public: 40 static PassRefPtr<StyleMultiColData> create() { return adoptRef(new StyleMultiColData); } 41 PassRefPtr<StyleMultiColData> copy() const { return adoptRef(new StyleMultiColData(*this)); } 42 43 bool operator==(const StyleMultiColData& o) const; 44 bool operator!=(const StyleMultiColData &o) const 45 { 46 return !(*this == o); 47 } 48 49 unsigned short ruleWidth() const 50 { 51 if (m_rule.style() == BNONE || m_rule.style() == BHIDDEN) 52 return 0; 53 return m_rule.width(); 54 } 55 56 float m_width; 57 unsigned short m_count; 58 float m_gap; 59 BorderValue m_rule; 60 61 bool m_autoWidth : 1; 62 bool m_autoCount : 1; 63 bool m_normalGap : 1; 64 bool m_columnSpan : 1; 65 unsigned m_breakBefore : 2; // EPageBreak 66 unsigned m_breakAfter : 2; // EPageBreak 67 unsigned m_breakInside : 2; // EPageBreak 68 69 private: 70 StyleMultiColData(); 71 StyleMultiColData(const StyleMultiColData&); 72 }; 73 74 } // namespace WebCore 75 76 #endif // StyleMultiColData_h 77