Back to index

lightning-sunbird  0.9+nobinonly
nsITableEditor.idl
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is mozilla.org code.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Netscape Communications Corporation.
00019  * Portions created by the Initial Developer are Copyright (C) 1998
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Contributor(s):
00023  *
00024  * Alternatively, the contents of this file may be used under the terms of
00025  * either of the GNU General Public License Version 2 or later (the "GPL"),
00026  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00027  * in which case the provisions of the GPL or the LGPL are applicable instead
00028  * of those above. If you wish to allow use of your version of this file only
00029  * under the terms of either the GPL or the LGPL, and not to allow others to
00030  * use your version of this file under the terms of the MPL, indicate your
00031  * decision by deleting the provisions above and replace them with the notice
00032  * and other provisions required by the GPL or the LGPL. If you do not delete
00033  * the provisions above, a recipient may use your version of this file under
00034  * the terms of any one of the MPL, the GPL or the LGPL.
00035  *
00036  * ***** END LICENSE BLOCK ***** */
00037 
00038 
00039 #include "nsISupports.idl"
00040 
00041 interface nsIDOMNode;
00042 interface nsIDOMElement;
00043 interface nsIDOMRange;
00044 
00045 [scriptable, uuid(4805e684-49b9-11d3-9ce4-ed60bd6cb5bc)]
00046 
00047 interface nsITableEditor : nsISupports
00048 {
00049   const short eNoSearch = 0;
00050   const short ePreviousColumn = 1;
00051   const short ePreviousRow = 2;
00052 
00053   /* ------------ Table editing Methods -------------- */
00054 
00065   void insertTableCell(in long  aNumber, in boolean aAfter);
00066   void insertTableColumn(in long  aNumber, in boolean aAfter);
00067   void insertTableRow(in long  aNumber, in boolean aAfter);
00068 
00079   void deleteTable();
00080 
00085   void deleteTableCellContents();
00086 
00096   void deleteTableCell(in long  aNumber);
00097   void deleteTableColumn(in long  aNumber);
00098   void deleteTableRow(in long  aNumber);
00099 
00104   void selectTableCell();
00105 
00114   void selectBlockOfCells(in nsIDOMElement aStartCell,
00115                           in nsIDOMElement aEndCell);
00116 
00117   void selectTableRow();
00118   void selectTableColumn();
00119   void selectTable();
00120   void selectAllTableCells();
00121 
00130   nsIDOMElement switchTableCellHeaderType(in nsIDOMElement aSourceCell);
00131 
00152   void joinTableCells(in boolean aMergeNonContiguousContents);
00153 
00160   void splitTableCell();
00161 
00172   void normalizeTable(in nsIDOMElement aTable);
00173 
00178   void getCellIndexes(in nsIDOMElement aCell,
00179                       out long aRowIndex, out long aColIndex);
00180 
00186   void getTableSize(in nsIDOMElement aTable,
00187                     out long aRowCount, out long aColCount);
00188 
00203   nsIDOMElement getCellAt(in nsIDOMElement aTable,
00204                           in long aRowIndex, in long aColIndex);
00205 
00231   void getCellDataAt(in nsIDOMElement aTable,
00232                      in long  aRowIndex, in long  aColIndex,
00233                      out nsIDOMElement aCell,
00234                      out long  aStartRowIndex, out long  aStartColIndex,
00235                      out long  aRowSpan, out long  aColSpan, 
00236                      out long  aActualRowSpan, out long  aActualColSpan, 
00237                      out boolean aIsSelected);
00238 
00246   nsIDOMNode getFirstRow(in nsIDOMElement aTableElement);
00247 
00258   nsIDOMNode getNextRow(in nsIDOMNode aTableElement);
00259   
00283   void setSelectionAfterTableEdit(in nsIDOMElement aTable,
00284                                   in long aRow, in long aCol, 
00285                                   in long aDirection, in boolean aSelected);
00286 
00301   nsIDOMElement getSelectedOrParentTableElement(out AString aTagName, out long aCount);
00302 
00323   PRUint32 getSelectedCellsType(in nsIDOMElement aElement);
00324 
00337   nsIDOMElement getFirstSelectedCell(out nsIDOMRange aRange);
00338   
00353   nsIDOMElement getFirstSelectedCellInTable(out long aRowIndex, out long aColIndex);
00354 
00368   nsIDOMElement getNextSelectedCell(out nsIDOMRange aRange);
00369 };