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

#ifndef __javax_swing_tree_FixedHeightLayoutCache__
#define __javax_swing_tree_FixedHeightLayoutCache__

#pragma interface

#include <javax/swing/tree/VariableHeightLayoutCache.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Rectangle;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace event
      {
          class TreeModelEvent;
      }
      namespace tree
      {
          class FixedHeightLayoutCache;
          class TreeModel;
          class TreePath;
      }
    }
  }
}

class javax::swing::tree::FixedHeightLayoutCache : public ::javax::swing::tree::VariableHeightLayoutCache
{

public:
  FixedHeightLayoutCache();
  virtual jint getRowCount();
private:
  void update();
  void countRows(::java::lang::Object *, ::java::lang::Object *, jint);
public:
  virtual void invalidatePathBounds(::javax::swing::tree::TreePath *);
  virtual void invalidateSizes();
  virtual void setExpandedState(::javax::swing::tree::TreePath *, jboolean);
  virtual jboolean isExpanded(::javax::swing::tree::TreePath *);
  virtual ::java::awt::Rectangle * getBounds(::javax::swing::tree::TreePath *, ::java::awt::Rectangle *);
  virtual ::javax::swing::tree::TreePath * getPathForRow(jint);
  virtual jint getRowForPath(::javax::swing::tree::TreePath *);
  virtual ::javax::swing::tree::TreePath * getPathClosestTo(jint, jint);
public: // actually package-private
  virtual jint distance(::java::awt::Rectangle *, jint, jint);
public:
  virtual jint getVisibleChildCount(::javax::swing::tree::TreePath *);
  virtual ::java::util::Enumeration * getVisiblePathsFrom(::javax::swing::tree::TreePath *);
  virtual jboolean getExpandedState(::javax::swing::tree::TreePath *);
  virtual void treeNodesChanged(::javax::swing::event::TreeModelEvent *);
  virtual void treeNodesInserted(::javax::swing::event::TreeModelEvent *);
  virtual void treeNodesRemoved(::javax::swing::event::TreeModelEvent *);
  virtual void treeStructureChanged(::javax::swing::event::TreeModelEvent *);
  virtual void setModel(::javax::swing::tree::TreeModel *);
  virtual void setRootVisible(jboolean);
  virtual jint getPreferredHeight();
  virtual jint getPreferredWidth(::java::awt::Rectangle *);
public: // actually protected
  virtual jboolean isFixedRowHeight();
public: // actually package-private
  ::java::util::Set * __attribute__((aligned(__alignof__( ::javax::swing::tree::VariableHeightLayoutCache)))) expanded;
  ::java::util::Hashtable * nodes;
  ::java::util::Hashtable * row2node;
  jboolean dirty;
  jint totalHeight;
  jint maximalWidth;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_tree_FixedHeightLayoutCache__