// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_swing_tree_AbstractLayoutCache__
#define __javax_swing_tree_AbstractLayoutCache__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
      class Rectangle;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace event
      {
        class TreeModelEvent;
      }
      namespace tree
      {
        class AbstractLayoutCache;
        class TreePath;
        class TreeSelectionModel;
        class TreeModel;
        class AbstractLayoutCache$NodeDimensions;
      }
    }
  }
}

class javax::swing::tree::AbstractLayoutCache : public ::java::lang::Object
{
public:
  AbstractLayoutCache ();
  virtual void setNodeDimensions (::javax::swing::tree::AbstractLayoutCache$NodeDimensions *);
  virtual ::javax::swing::tree::AbstractLayoutCache$NodeDimensions *getNodeDimensions () { return nodeDimensions; }
public:  // actually protected
  virtual ::java::awt::Rectangle *getNodeDimensions (::java::lang::Object *, jint, jint, jboolean, ::java::awt::Rectangle *);
public:
  virtual void setModel (::javax::swing::tree::TreeModel *);
  virtual ::javax::swing::tree::TreeModel *getModel () { return treeModel; }
  virtual void setRootVisible (jboolean);
  virtual jboolean isRootVisible () { return rootVisible; }
  virtual void setRowHeight (jint);
  virtual jint getRowHeight () { return rowHeight; }
  virtual void setSelectionModel (::javax::swing::tree::TreeSelectionModel *);
  virtual ::javax::swing::tree::TreeSelectionModel *getSelectionModel () { return treeSelectionModel; }
  virtual jint getPreferredHeight ();
  virtual jint getPreferredWidth (::java::awt::Rectangle *);
  virtual jboolean isExpanded (::javax::swing::tree::TreePath *) = 0;
  virtual ::java::awt::Rectangle *getBounds (::javax::swing::tree::TreePath *, ::java::awt::Rectangle *) = 0;
  virtual ::javax::swing::tree::TreePath *getPathForRow (jint) = 0;
  virtual jint getRowForPath (::javax::swing::tree::TreePath *) = 0;
  virtual ::javax::swing::tree::TreePath *getPathClosestTo (jint, jint) = 0;
  virtual ::java::util::Enumeration *getVisiblePathsFrom (::javax::swing::tree::TreePath *) = 0;
  virtual jint getVisibleChildCount (::javax::swing::tree::TreePath *) = 0;
  virtual void setExpandedState (::javax::swing::tree::TreePath *, jboolean) = 0;
  virtual jboolean getExpandedState (::javax::swing::tree::TreePath *) = 0;
  virtual jint getRowCount () = 0;
  virtual void invalidateSizes () = 0;
  virtual void invalidatePathBounds (::javax::swing::tree::TreePath *) = 0;
  virtual void treeNodesChanged (::javax::swing::event::TreeModelEvent *) = 0;
  virtual void treeNodesInserted (::javax::swing::event::TreeModelEvent *) = 0;
  virtual void treeNodesRemoved (::javax::swing::event::TreeModelEvent *) = 0;
  virtual void treeStructureChanged (::javax::swing::event::TreeModelEvent *) = 0;
  virtual jintArray getRowsForPaths (JArray< ::javax::swing::tree::TreePath *> *);
public:  // actually protected
  virtual jboolean isFixedRowHeight ();
  ::javax::swing::tree::AbstractLayoutCache$NodeDimensions * __attribute__((aligned(__alignof__( ::java::lang::Object )))) nodeDimensions;
  ::javax::swing::tree::TreeModel *treeModel;
  ::javax::swing::tree::TreeSelectionModel *treeSelectionModel;
  jboolean rootVisible;
  jint rowHeight;

  friend class javax_swing_tree_AbstractLayoutCache$NodeDimensions;
public:

  static ::java::lang::Class class$;
};

#endif /* __javax_swing_tree_AbstractLayoutCache__ */
