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

#ifndef __java_awt_Panel__
#define __java_awt_Panel__

#pragma interface

#include <java/awt/Container.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class LayoutManager;
        class Panel;
    }
  }
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleContext;
    }
  }
}

class java::awt::Panel : public ::java::awt::Container
{

public:
  Panel();
  Panel(::java::awt::LayoutManager *);
  virtual void addNotify();
  virtual ::javax::accessibility::AccessibleContext * getAccessibleContext();
public: // actually package-private
  virtual ::java::lang::String * generateName();
private:
  static jlong getUniqueLong();
  static const jlong serialVersionUID = -2728009084054400034LL;
  ::javax::accessibility::AccessibleContext * __attribute__((aligned(__alignof__( ::java::awt::Container)))) context;
  jboolean initialSystemUpdateDone;
  jboolean initialUpdateConsumed;
  static jlong next_panel_number;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_Panel__
