Back to index

lightning-sunbird  0.9+nobinonly
nsITreeView.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  *   Dave Hyatt <hyatt@mozilla.org> (Original Author)
00024  *   Jan Varga <varga@ku.sk>
00025  *
00026  * Alternatively, the contents of this file may be used under the terms of
00027  * either of the GNU General Public License Version 2 or later (the "GPL"),
00028  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00029  * in which case the provisions of the GPL or the LGPL are applicable instead
00030  * of those above. If you wish to allow use of your version of this file only
00031  * under the terms of either the GPL or the LGPL, and not to allow others to
00032  * use your version of this file under the terms of the MPL, indicate your
00033  * decision by deleting the provisions above and replace them with the notice
00034  * and other provisions required by the GPL or the LGPL. If you do not delete
00035  * the provisions above, a recipient may use your version of this file under
00036  * the terms of any one of the MPL, the GPL or the LGPL.
00037  *
00038  * ***** END LICENSE BLOCK ***** */
00039 
00040 #include "nsITreeBoxObject.idl"
00041 #include "nsISupportsArray.idl"
00042 #include "domstubs.idl"
00043 
00044 interface nsITreeSelection;
00045 interface nsITreeColumn;
00046 
00047 [scriptable, uuid(22f034b7-a879-43ad-baee-ba6fd4d466ce)]
00048 interface nsITreeView : nsISupports
00049 {
00053   readonly attribute long rowCount;
00054 
00058   attribute nsITreeSelection selection;
00059 
00065   void getRowProperties(in long index, in nsISupportsArray properties);
00066 
00072   void getCellProperties(in long row, in nsITreeColumn col, in nsISupportsArray properties);
00073   
00078   void getColumnProperties(in nsITreeColumn col, in nsISupportsArray properties);
00079 
00084   boolean isContainer(in long index);
00085   boolean isContainerOpen(in long index);
00086   boolean isContainerEmpty(in long index);
00087  
00093   boolean isSeparator(in long index);
00094 
00099   boolean isSorted();
00100   
00101   const short DROP_BEFORE = -1;
00102   const short DROP_ON = 0;
00103   const short DROP_AFTER = 1;
00110   boolean canDrop(in long index, in long orientation);
00111   
00116   void drop(in long row, in long orientation); 
00117   
00123   long getParentIndex(in long rowIndex);
00124 
00131   boolean hasNextSibling(in long rowIndex, in long afterIndex);
00132 
00138   long getLevel(in long index);
00139 
00145   AString getImageSrc(in long row, in nsITreeColumn col);
00146 
00151   const short PROGRESS_NORMAL = 1;
00152   const short PROGRESS_UNDETERMINED = 2;
00153   const short PROGRESS_NONE = 3;
00154   long getProgressMode(in long row, in nsITreeColumn col);
00155 
00160   AString getCellValue(in long row, in nsITreeColumn col);
00161 
00166   AString getCellText(in long row, in nsITreeColumn col);
00167 
00171   void setTree(in nsITreeBoxObject tree);
00172   
00176   void toggleOpenState(in long index);
00177 
00181   void cycleHeader(in nsITreeColumn col);
00182 
00186   void selectionChanged();
00187 
00191   void cycleCell(in long row, in nsITreeColumn col);
00192   
00198   boolean isEditable(in long row, in nsITreeColumn col);
00199 
00204   void setCellValue(in long row, in nsITreeColumn col, in AString value);
00205 
00209   void setCellText(in long row, in nsITreeColumn col, in AString value);
00210 
00216   void performAction(in wstring action);
00217 
00221   void performActionOnRow(in wstring action, in long row);
00222 
00226   void performActionOnCell(in wstring action, in long row, in nsITreeColumn col);
00227 };
00228 
00234 [uuid(38e0b44d-fa08-458c-83fb-3e10b12aeb45)]
00235 interface nsINativeTreeView : nsITreeView
00236 {
00237   [noscript] void ensureNative();
00238 };