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

#ifndef __javax_swing_tree_VariableHeightLayoutCache$NodeRecord__
#define __javax_swing_tree_VariableHeightLayoutCache$NodeRecord__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Rectangle;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace tree
      {
          class TreePath;
          class VariableHeightLayoutCache;
          class VariableHeightLayoutCache$NodeRecord;
      }
    }
  }
}

class javax::swing::tree::VariableHeightLayoutCache$NodeRecord : public ::java::lang::Object
{

public: // actually package-private
  VariableHeightLayoutCache$NodeRecord(::javax::swing::tree::VariableHeightLayoutCache *, jint, jint, ::java::lang::Object *, ::java::lang::Object *);
  virtual ::javax::swing::tree::TreePath * getPath();
  virtual ::java::awt::Rectangle * getBounds();
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) row;
  jint depth;
  ::java::lang::Object * parent;
  ::java::lang::Object * node;
  jboolean isExpanded;
  ::java::awt::Rectangle * bounds;
private:
  ::javax::swing::tree::TreePath * path;
public: // actually package-private
  ::javax::swing::tree::VariableHeightLayoutCache * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_tree_VariableHeightLayoutCache$NodeRecord__
