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

#ifndef __java_awt_Frame$AccessibleAWTFrame__
#define __java_awt_Frame$AccessibleAWTFrame__

#pragma interface

#include <java/awt/Window$AccessibleAWTWindow.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Frame;
        class Frame$AccessibleAWTFrame;
    }
  }
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleRole;
        class AccessibleStateSet;
    }
  }
}

class java::awt::Frame$AccessibleAWTFrame : public ::java::awt::Window$AccessibleAWTWindow
{

public: // actually protected
  Frame$AccessibleAWTFrame(::java::awt::Frame *);
public:
  virtual ::javax::accessibility::AccessibleRole * getAccessibleRole();
  virtual ::javax::accessibility::AccessibleStateSet * getAccessibleStateSet();
private:
  static const jlong serialVersionUID = -6172960752956030250LL;
public: // actually package-private
  ::java::awt::Frame * __attribute__((aligned(__alignof__( ::java::awt::Window$AccessibleAWTWindow)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_Frame$AccessibleAWTFrame__
