/* * This file is part of the DOM implementation for KDE. * * (C) 1999 Lars Knoll (knoll@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., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * * This file includes excerpts from the Document Object Model (DOM) * Level 1 Specification (Recommendation) * http://www.w3.org/TR/REC-DOM-Level-1/ * Copyright © World Wide Web Consortium , (Massachusetts Institute of * Technology , Institut National de Recherche en Informatique et en * Automatique , Keio University ). All Rights Reserved. * */ #ifndef HTML_TABLE_H #define HTML_TABLE_H // -------------------------------------------------------------------------- #include <dom/html_element.h> namespace DOM { class HTMLTableCaptionElementImpl; class DOMString; /** * Table caption See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#edef-CAPTION"> * CAPTION element definition </a> in HTML 4.0. * */ class HTMLTableCaptionElement : public HTMLElement { friend class HTMLTableElement; public: HTMLTableCaptionElement(); HTMLTableCaptionElement(const HTMLTableCaptionElement &other); HTMLTableCaptionElement(const Node &other) : HTMLElement() {(*this)=other;} protected: HTMLTableCaptionElement(HTMLTableCaptionElementImpl *impl); public: HTMLTableCaptionElement & operator = (const HTMLTableCaptionElement &other); HTMLTableCaptionElement & operator = (const Node &other); ~HTMLTableCaptionElement(); /** * Caption alignment with respect to the table. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-align-CAPTION"> * align attribute definition </a> in HTML 4.0. This attribute is * deprecated in HTML 4.0. * */ DOMString align() const; /** * see @ref align */ void setAlign( const DOMString & ); }; // -------------------------------------------------------------------------- class HTMLTableCellElementImpl; /** * The object used to represent the <code> TH </code> and <code> TD * </code> elements. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#edef-TD"> * TD element definition </a> in HTML 4.0. * */ class HTMLTableCellElement : public HTMLElement { friend class HTMLTableElement; public: HTMLTableCellElement(); HTMLTableCellElement(const HTMLTableCellElement &other); HTMLTableCellElement(const Node &other) : HTMLElement() {(*this)=other;} protected: HTMLTableCellElement(HTMLTableCellElementImpl *impl); public: HTMLTableCellElement & operator = (const HTMLTableCellElement &other); HTMLTableCellElement & operator = (const Node &other); ~HTMLTableCellElement(); /** * The index of this cell in the row. * */ long cellIndex() const; /** * see @ref cellIndex * * This function is obsolete - the cellIndex property is actually supposed to be read-only * (http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html) */ void setCellIndex( long ); /** * Abbreviation for header cells. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-abbr"> * abbr attribute definition </a> in HTML 4.0. * */ DOMString abbr() const; /** * see @ref abbr */ void setAbbr( const DOMString & ); /** * Horizontal alignment of data in cell. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-align-TD"> * align attribute definition </a> in HTML 4.0. * */ DOMString align() const; /** * see @ref align */ void setAlign( const DOMString & ); /** * Names group of related headers. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-axis"> * axis attribute definition </a> in HTML 4.0. * */ DOMString axis() const; /** * see @ref axis */ void setAxis( const DOMString & ); /** * Cell background color. See the <a * href="http://www.w3.org/TR/REC-html40/present/graphics.html#adef-bgcolor"> * bgcolor attribute definition </a> in HTML 4.0. This attribute * is deprecated in HTML 4.0. * */ DOMString bgColor() const; /** * see @ref bgColor */ void setBgColor( const DOMString & ); /** * Alignment character for cells in a column. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-char"> * char attribute definition </a> in HTML 4.0. * */ DOMString ch() const; /** * see @ref ch */ void setCh( const DOMString & ); /** * Offset of alignment character. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-charoff"> * charoff attribute definition </a> in HTML 4.0. * */ DOMString chOff() const; /** * see @ref chOff */ void setChOff( const DOMString & ); /** * Number of columns spanned by cell. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-colspan"> * colspan attribute definition </a> in HTML 4.0. * */ long colSpan() const; /** * see @ref colSpan */ void setColSpan( long ); /** * List of <code> id </code> attribute values for header cells. * See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-headers"> * headers attribute definition </a> in HTML 4.0. * */ DOMString headers() const; /** * see @ref headers */ void setHeaders( const DOMString & ); /** * Cell height. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-height-TH"> * height attribute definition </a> in HTML 4.0. This attribute is * deprecated in HTML 4.0. * */ DOMString height() const; /** * see @ref height */ void setHeight( const DOMString & ); /** * Suppress word wrapping. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-nowrap"> * nowrap attribute definition </a> in HTML 4.0. This attribute is * deprecated in HTML 4.0. * */ bool noWrap() const; /** * see @ref noWrap */ void setNoWrap( bool ); /** * Number of rows spanned by cell. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-rowspan"> * rowspan attribute definition </a> in HTML 4.0. * */ long rowSpan() const; /** * see @ref rowSpan */ void setRowSpan( long ); /** * Scope covered by header cells. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-scope"> * scope attribute definition </a> in HTML 4.0. * */ DOMString scope() const; /** * see @ref scope */ void setScope( const DOMString & ); /** * Vertical alignment of data in cell. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-valign"> * valign attribute definition </a> in HTML 4.0. * */ DOMString vAlign() const; /** * see @ref vAlign */ void setVAlign( const DOMString & ); /** * Cell width. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-width-TH"> * width attribute definition </a> in HTML 4.0. This attribute is * deprecated in HTML 4.0. * */ DOMString width() const; /** * see @ref width */ void setWidth( const DOMString & ); }; // -------------------------------------------------------------------------- class HTMLTableColElementImpl; /** * Regroups the <code> COL </code> and <code> COLGROUP </code> * elements. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#edef-COL"> * COL element definition </a> in HTML 4.0. * */ class HTMLTableColElement : public HTMLElement { friend class HTMLTableElement; public: HTMLTableColElement(); HTMLTableColElement(const HTMLTableColElement &other); HTMLTableColElement(const Node &other) : HTMLElement() {(*this)=other;} protected: HTMLTableColElement(HTMLTableColElementImpl *impl); public: HTMLTableColElement & operator = (const HTMLTableColElement &other); HTMLTableColElement & operator = (const Node &other); ~HTMLTableColElement(); /** * Horizontal alignment of cell data in column. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-align-TD"> * align attribute definition </a> in HTML 4.0. * */ DOMString align() const; /** * see @ref align */ void setAlign( const DOMString & ); /** * Alignment character for cells in a column. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-char"> * char attribute definition </a> in HTML 4.0. * */ DOMString ch() const; /** * see @ref ch */ void setCh( const DOMString & ); /** * Offset of alignment character. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-charoff"> * charoff attribute definition </a> in HTML 4.0. * */ DOMString chOff() const; /** * see @ref chOff */ void setChOff( const DOMString & ); /** * Indicates the number of columns in a group or affected by a * grouping. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-span-COL"> * span attribute definition </a> in HTML 4.0. * */ long span() const; /** * see @ref span */ void setSpan( long ); /** * Vertical alignment of cell data in column. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-valign"> * valign attribute definition </a> in HTML 4.0. * */ DOMString vAlign() const; /** * see @ref vAlign */ void setVAlign( const DOMString & ); /** * Default column width. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-width-COL"> * width attribute definition </a> in HTML 4.0. * */ DOMString width() const; /** * see @ref width */ void setWidth( const DOMString & ); }; // -------------------------------------------------------------------------- class HTMLTableElementImpl; class HTMLCollection; class HTMLTableSectionElement; class HTMLTableCaptionElement; class HTMLElement; class DOMString; /** * The create* and delete* methods on the table allow authors to * construct and modify tables. HTML 4.0 specifies that only one of * each of the <code> CAPTION </code> , <code> THEAD </code> , and * <code> TFOOT </code> elements may exist in a table. Therefore, if * one exists, and the createTHead() or createTFoot() method is * called, the method returns the existing THead or TFoot element. See * the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#edef-TABLE"> * TABLE element definition </a> in HTML 4.0. * */ class HTMLTableElement : public HTMLElement { public: HTMLTableElement(); HTMLTableElement(const HTMLTableElement &other); HTMLTableElement(const Node &other) : HTMLElement() {(*this)=other;} protected: HTMLTableElement(HTMLTableElementImpl *impl); public: HTMLTableElement & operator = (const HTMLTableElement &other); HTMLTableElement & operator = (const Node &other); ~HTMLTableElement(); /** * Returns the table's <code> CAPTION </code> , or void if none * exists. * */ HTMLTableCaptionElement caption() const; /** * see @ref caption */ void setCaption( const HTMLTableCaptionElement & ); /** * Returns the table's <code> THEAD </code> , or <code> null * </code> if none exists. * */ HTMLTableSectionElement tHead() const; /** * see @ref tHead */ void setTHead( const HTMLTableSectionElement & ); /** * Returns the table's <code> TFOOT </code> , or <code> null * </code> if none exists. * */ HTMLTableSectionElement tFoot() const; /** * see @ref tFoot */ void setTFoot( const HTMLTableSectionElement & ); /** * Returns a collection of all the rows in the table, including * all in <code> THEAD </code> , <code> TFOOT </code> , all <code> * TBODY </code> elements. * */ HTMLCollection rows() const; /** * Returns a collection of the defined table bodies. * */ HTMLCollection tBodies() const; /** * Specifies the table's position with respect to the rest of the * document. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-align-TABLE"> * align attribute definition </a> in HTML 4.0. This attribute is * deprecated in HTML 4.0. * */ DOMString align() const; /** * see @ref align */ void setAlign( const DOMString & ); /** * Cell background color. See the <a * href="http://www.w3.org/TR/REC-html40/present/graphics.html#adef-bgcolor"> * bgcolor attribute definition </a> in HTML 4.0. This attribute * is deprecated in HTML 4.0. * */ DOMString bgColor() const; /** * see @ref bgColor */ void setBgColor( const DOMString & ); /** * The width of the border around the table. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-border-TABLE"> * border attribute definition </a> in HTML 4.0. * */ DOMString border() const; /** * see @ref border */ void setBorder( const DOMString & ); /** * Specifies the horizontal and vertical space between cell * content and cell borders. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-cellpadding"> * cellpadding attribute definition </a> in HTML 4.0. * */ DOMString cellPadding() const; /** * see @ref cellPadding */ void setCellPadding( const DOMString & ); /** * Specifies the horizontal and vertical separation between cells. * See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-cellspacing"> * cellspacing attribute definition </a> in HTML 4.0. * */ DOMString cellSpacing() const; /** * see @ref cellSpacing */ void setCellSpacing( const DOMString & ); /** * Specifies which external table borders to render. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-frame"> * frame attribute definition </a> in HTML 4.0. * */ DOMString frame() const; /** * see @ref frame */ void setFrame( const DOMString & ); /** * Specifies which internal table borders to render. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-rules"> * rules attribute definition </a> in HTML 4.0. * */ DOMString rules() const; /** * see @ref rules */ void setRules( const DOMString & ); /** * Supplementary description about the purpose or structure of a * table. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-summary"> * summary attribute definition </a> in HTML 4.0. * */ DOMString summary() const; /** * see @ref summary */ void setSummary( const DOMString & ); /** * Specifies the desired table width. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-width-TABLE"> * width attribute definition </a> in HTML 4.0. * */ DOMString width() const; /** * see @ref width */ void setWidth( const DOMString & ); /** * Create a table header row or return an existing one. * * @return A new table header element ( <code> THEAD </code> ). * */ HTMLElement createTHead ( ); /** * Delete the header from the table, if one exists. * * @return * */ void deleteTHead ( ); /** * Create a table footer row or return an existing one. * * @return A footer element ( <code> TFOOT </code> ). * */ HTMLElement createTFoot ( ); /** * Delete the footer from the table, if one exists. * * @return * */ void deleteTFoot ( ); /** * Create a new table caption object or return an existing one. * * @return A <code> CAPTION </code> element. * */ HTMLElement createCaption ( ); /** * Delete the table caption, if one exists. * * @return * */ void deleteCaption ( ); /** * Insert a new empty row in the table. Note. A table row cannot * be empty according to HTML 4.0 Recommendation. * * @param index The row number where to insert a new row. * * @return The newly created row. * */ HTMLElement insertRow ( long index ); /** * Delete a table row. * * @param index The index of the row to be deleted. * * @return * */ void deleteRow ( long index ); }; // -------------------------------------------------------------------------- class HTMLTableRowElementImpl; class HTMLCollection; class HTMLElement; class DOMString; /** * A row in a table. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#edef-TR"> * TR element definition </a> in HTML 4.0. * */ class HTMLTableRowElement : public HTMLElement { friend class HTMLTableElement; public: HTMLTableRowElement(); HTMLTableRowElement(const HTMLTableRowElement &other); HTMLTableRowElement(const Node &other) : HTMLElement() {(*this)=other;} protected: HTMLTableRowElement(HTMLTableRowElementImpl *impl); public: HTMLTableRowElement & operator = (const HTMLTableRowElement &other); HTMLTableRowElement & operator = (const Node &other); ~HTMLTableRowElement(); /** * The index of this row, relative to the entire table. */ long rowIndex() const; /** * see @ref rowIndex * * This function is obsolete - the rowIndex property is actually supposed to be read-only * (http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html) */ void setRowIndex( long ); /** * The index of this row, relative to the current section ( <code> * THEAD </code> , <code> TFOOT </code> , or <code> TBODY </code> * ). * */ long sectionRowIndex() const; /** * see @ref sectionRowIndex * * This function is obsolete - the sectionRowIndex property is actually supposed to be read-only * (http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html) */ void setSectionRowIndex( long ); /** * The collection of cells in this row. * */ HTMLCollection cells() const; /** * see @ref cells * * This function is obsolete - the cells property is actually supposed to be read-only * (http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html) */ void setCells( const HTMLCollection & ); /** * Horizontal alignment of data within cells of this row. See the * <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-align-TD"> * align attribute definition </a> in HTML 4.0. * */ DOMString align() const; /** * see @ref align */ void setAlign( const DOMString & ); /** * Background color for rows. See the <a * href="http://www.w3.org/TR/REC-html40/present/graphics.html#adef-bgcolor"> * bgcolor attribute definition </a> in HTML 4.0. This attribute * is deprecated in HTML 4.0. * */ DOMString bgColor() const; /** * see @ref bgColor */ void setBgColor( const DOMString & ); /** * Alignment character for cells in a column. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-char"> * char attribute definition </a> in HTML 4.0. * */ DOMString ch() const; /** * see @ref ch */ void setCh( const DOMString & ); /** * Offset of alignment character. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-charoff"> * charoff attribute definition </a> in HTML 4.0. * */ DOMString chOff() const; /** * see @ref chOff */ void setChOff( const DOMString & ); /** * Vertical alignment of data within cells of this row. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-valign"> * valign attribute definition </a> in HTML 4.0. * */ DOMString vAlign() const; /** * see @ref vAlign */ void setVAlign( const DOMString & ); /** * Insert an empty <code> TD </code> cell into this row. * * @param index The place to insert the cell. * * @return The newly created cell. * */ HTMLElement insertCell ( long index ); /** * Delete a cell from the current row. * * @param index The index of the cell to delete. * * @return * */ void deleteCell ( long index ); }; // -------------------------------------------------------------------------- class HTMLTableSectionElementImpl; class HTMLCollection; class HTMLElement; class DOMString; /** * The <code> THEAD </code> , <code> TFOOT </code> , and <code> TBODY * </code> elements. * */ class HTMLTableSectionElement : public HTMLElement { friend class HTMLTableElement; public: HTMLTableSectionElement(); HTMLTableSectionElement(const HTMLTableSectionElement &other); HTMLTableSectionElement(const Node &other) : HTMLElement() {(*this)=other;} protected: HTMLTableSectionElement(HTMLTableSectionElementImpl *impl); public: HTMLTableSectionElement & operator = (const HTMLTableSectionElement &other); HTMLTableSectionElement & operator = (const Node &other); ~HTMLTableSectionElement(); /** * Horizontal alignment of data in cells. See the <code> align * </code> attribute for HTMLTheadElement for details. * */ DOMString align() const; /** * see @ref align */ void setAlign( const DOMString & ); /** * Alignment character for cells in a column. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-char"> * char attribute definition </a> in HTML 4.0. * */ DOMString ch() const; /** * see @ref ch */ void setCh( const DOMString & ); /** * Offset of alignment character. See the <a * href="http://www.w3.org/TR/REC-html40/struct/tables.html#adef-charoff"> * charoff attribute definition </a> in HTML 4.0. * */ DOMString chOff() const; /** * see @ref chOff */ void setChOff( const DOMString & ); /** * Vertical alignment of data in cells. See the <code> valign * </code> attribute for HTMLTheadElement for details. * */ DOMString vAlign() const; /** * see @ref vAlign */ void setVAlign( const DOMString & ); /** * The collection of rows in this table section. * */ HTMLCollection rows() const; /** * Insert a row into this section. * * @param index The row number where to insert a new row. * * @return The newly created row. * */ HTMLElement insertRow ( long index ); /** * Delete a row from this section. * * @param index The index of the row to be deleted. * * @return * */ void deleteRow ( long index ); }; }; //namespace #endif