[scriptable, uuid(64ba5199-c4f4-4498-bbdc-f8e4c369086c)]
interface nsITreeBoxObject : nsISupports

Attributes

 Obtain the columns.
readonly attribute nsITreeColumns columns
 Whether or not we are currently focused.
attribute boolean focused
 Get the pixel position of the horizontal scrollbar. 
readonly attribute long horizontalPosition
 Obtain the height of a row.
readonly attribute long rowHeight
 Obtain the width of a row.
readonly attribute long rowWidth
 Return the region for the visible parts of the selection, in device pixels.
readonly attribute nsIScriptableRegion selectionRegion
 Obtain the treebody content node
readonly attribute nsIDOMElement treeBody
 The view that backs the tree and that supplies it with its data.
 It is dynamically settable, either using a view attribute on the
 tree tag or by setting this attribute to a new value.
attribute nsITreeView view

Methods

 Notify the tree that the view is about to perform a batch
 update, that is, add, remove or invalidate several rows at once.
 This must be followed by calling endUpdateBatch(), otherwise the tree
 will get out of sync.
void beginUpdateBatch()
 Called on a theme switch to flush out the tree's style and image caches.
void clearStyleAndImageCaches()
 Notify the tree that the view has completed a batch update.
void endUpdateBatch()
 Ensures that a given cell in the tree is visible.
void ensureCellIsVisible(in long row, in nsITreeColumn col)
 Ensures that a row at a given index is visible.
void ensureRowIsVisible(in long index)
 A hit test that can tell you what cell the mouse is over.  Row is the row index
 hit,  returns -1 for invalid mouse coordinates.  ColID is the column hit.
 ChildElt is the pseudoelement hit: this can have values of
 "cell", "twisty", "image", and "text".

 The coordinate system is the client coordinate system for the
 document this boxObject lives in, and the units are CSS pixels.
void getCellAt(in long x, in long y, out long row, out nsITreeColumn col, out ACString childElt)
 
 Find the coordinates of an element within a specific cell. 
void getCoordsForCellItem(in long row, in nsITreeColumn col, in ACString element, out long x, out long y, out long width, out long height)
 Get the index of the first visible row.
long getFirstVisibleRow()
 Get the index of the last visible row.
long getLastVisibleRow()
 Gets the number of possible visible rows.
long getPageLength()
 A hit test that can tell you what row the mouse is over.
 returns -1 for invalid mouse coordinates.

 The coordinate system is the client coordinate system for the
 document this boxObject lives in, and the units are CSS pixels.
long getRowAt(in long x, in long y)
 Invalidation methods for fine-grained painting control.
void invalidate()

          
void invalidateCell(in long row, in nsITreeColumn col)

          
void invalidateColumn(in nsITreeColumn col)

          
void invalidateColumnRange(in long startIndex, in long endIndex, in nsITreeColumn col)

          
void invalidateRange(in long startIndex, in long endIndex)

          
void invalidateRow(in long index)
 
 Determine if the text of a cell is being cropped or not.
boolean isCellCropped(in long row, in nsITreeColumn col)
 The view is responsible for calling these notification methods when
 rows are added or removed.  Index is the position at which the new
 rows were added or at which rows were removed.  For
 non-contiguous additions/removals, this method should be called multiple times.
void rowCountChanged(in long index, in long count)
 Scroll the tree up or down by numLines lines. Positive
 values move down in the tree. Prevents scrolling off the
 end of the tree. 
void scrollByLines(in long numLines)
 Scroll the tree up or down by numPages pages. A page
 is considered to be the amount displayed by the tree.
 Positive values move down in the tree. Prevents scrolling
 off the end of the tree.
void scrollByPages(in long numPages)
 Scrolls such that a given cell is visible (if possible) 
 at the top left corner of the visible view. 
void scrollToCell(in long row, in nsITreeColumn col)
 Scrolls horizontally so that the specified column is 
 at the left of the view (if possible).
void scrollToColumn(in nsITreeColumn col)
 Scroll to a specific horizontal pixel position.
void scrollToHorizontalPosition(in long horizontalPosition)
 Scrolls such that the row at index is at the top of the visible view.
void scrollToRow(in long index)