📄 html_tableimpl.h
字号:
/* * This file is part of the DOM implementation for KDE. * * Copyright (C) 1997 Martin Jones (mjones@kde.org) * (C) 1997 Torben Weis (weis@kde.org) * (C) 1998 Waldo Bastian (bastian@kde.org) * (C) 1999 Lars Knoll (knoll@kde.org) * (C) 1999 Antti Koivisto (koivisto@kde.org) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * */#ifndef HTML_TABLEIMPL_H#define HTML_TABLEIMPL_H#include "html/html_elementimpl.h"namespace DOM {class DOMString;class HTMLTableElementImpl;class HTMLTableSectionElementImpl;class HTMLTableSectionElement;class HTMLTableRowElementImpl;class HTMLTableRowElement;class HTMLTableCellElementImpl;class HTMLTableCellElement;class HTMLTableColElementImpl;class HTMLTableColElement;class HTMLTableCaptionElementImpl;class HTMLTableCaptionElement;class HTMLElement;class HTMLCollection;class HTMLTableElementImpl : public HTMLElementImpl{public: enum Rules { None = 0x00, RGroups = 0x01, CGroups = 0x02, Groups = 0x03, Rows = 0x05, Cols = 0x0a, All = 0x0f }; enum Frame { Void = 0x00, Above = 0x01, Below = 0x02, Lhs = 0x04, Rhs = 0x08, Hsides = 0x03, Vsides = 0x0c, Box = 0x0f }; HTMLTableElementImpl(DocumentPtr *doc); ~HTMLTableElementImpl(); virtual Id id() const; HTMLTableCaptionElementImpl *caption() const { return tCaption; } NodeImpl *setCaption( HTMLTableCaptionElementImpl * ); HTMLTableSectionElementImpl *tHead() const { return head; } NodeImpl *setTHead( HTMLTableSectionElementImpl * ); HTMLTableSectionElementImpl *tFoot() const { return foot; } NodeImpl *setTFoot( HTMLTableSectionElementImpl * ); NodeImpl *setTBody( HTMLTableSectionElementImpl * ); HTMLElementImpl *createTHead ( ); void deleteTHead ( ); HTMLElementImpl *createTFoot ( ); void deleteTFoot ( ); HTMLElementImpl *createCaption ( ); void deleteCaption ( ); HTMLElementImpl *insertRow ( long index, int &exceptioncode ); void deleteRow ( long index, int &exceptioncode ); // overrides virtual NodeImpl *addChild(NodeImpl *child); virtual NodeImpl *appendChild( NodeImpl *newChild, int &exceptioncode ); virtual void parseAttribute(AttributeImpl *attr); virtual void attach(); virtual void close();protected: void updateFrame(); HTMLTableSectionElementImpl *head; HTMLTableSectionElementImpl *foot; HTMLTableSectionElementImpl *firstBody; HTMLTableCaptionElementImpl *tCaption; Frame frame : 4; Rules rules : 4; bool m_solid : 1; uint unused : 7; ushort padding : 16; friend class HTMLTableCellElementImpl;};// -------------------------------------------------------------------------class HTMLTablePartElementImpl : public HTMLElementImpl{public: HTMLTablePartElementImpl(DocumentPtr *doc) : HTMLElementImpl(doc) { } virtual void parseAttribute(AttributeImpl *attr);};// -------------------------------------------------------------------------class HTMLTableSectionElementImpl : public HTMLTablePartElementImpl{public: HTMLTableSectionElementImpl(DocumentPtr *doc, ushort tagid, bool implicit); ~HTMLTableSectionElementImpl(); virtual Id id() const; HTMLElementImpl *insertRow ( long index, int& exceptioncode ); void deleteRow ( long index, int& exceptioncode ); int numRows() const;protected: ushort _id;};// -------------------------------------------------------------------------class HTMLTableRowElementImpl : public HTMLTablePartElementImpl{public: HTMLTableRowElementImpl(DocumentPtr *doc) : HTMLTablePartElementImpl(doc) {} virtual Id id() const; long rowIndex() const; long sectionRowIndex() const; HTMLElementImpl *insertCell ( long index, int &exceptioncode ); void deleteCell ( long index, int &exceptioncode );protected: int ncols;};// -------------------------------------------------------------------------class HTMLTableCellElementImpl : public HTMLTablePartElementImpl{public: HTMLTableCellElementImpl(DocumentPtr *doc, int tagId); ~HTMLTableCellElementImpl(); long cellIndex() const; int col() const { return _col; } void setCol(int col) { _col = col; } int row() const { return _row; } void setRow(int r) { _row = r; } int colSpan() const { return cSpan; } int rowSpan() const { return rSpan; } virtual Id id() const { return _id; } virtual void parseAttribute(AttributeImpl *attr); virtual void attach();protected: int _row; int _col; int rSpan; int cSpan; int _id; int rowHeight; bool m_solid : 1; bool m_nowrap : 1;};// -------------------------------------------------------------------------class HTMLTableColElementImpl : public HTMLTablePartElementImpl{public: HTMLTableColElementImpl(DocumentPtr *doc, ushort i); virtual Id id() const; void setTable(HTMLTableElementImpl *t) { table = t; } // overrides virtual void parseAttribute(AttributeImpl *attr); int span() const { return _span; }protected: // could be ID_COL or ID_COLGROUP ... The DOM is not quite clear on // this, but since both elements work quite similar, we use one // DOMElement for them... ushort _id; int _span; HTMLTableElementImpl *table;};// -------------------------------------------------------------------------class HTMLTableCaptionElementImpl : public HTMLTablePartElementImpl{public: HTMLTableCaptionElementImpl(DocumentPtr *doc) : HTMLTablePartElementImpl(doc) {} virtual Id id() const; virtual void parseAttribute(AttributeImpl *attr);};} //namespace#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -