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

#ifndef __java_awt_Component$AccessibleAWTComponent$AccessibleAWTComponentHandler__
#define __java_awt_Component$AccessibleAWTComponent$AccessibleAWTComponentHandler__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component$AccessibleAWTComponent;
        class Component$AccessibleAWTComponent$AccessibleAWTComponentHandler;
      namespace event
      {
          class ComponentEvent;
      }
    }
  }
}

class java::awt::Component$AccessibleAWTComponent$AccessibleAWTComponentHandler : public ::java::lang::Object
{

public: // actually protected
  Component$AccessibleAWTComponent$AccessibleAWTComponentHandler(::java::awt::Component$AccessibleAWTComponent *);
public:
  virtual void componentHidden(::java::awt::event::ComponentEvent *);
  virtual void componentShown(::java::awt::event::ComponentEvent *);
  virtual void componentMoved(::java::awt::event::ComponentEvent *);
  virtual void componentResized(::java::awt::event::ComponentEvent *);
public: // actually package-private
  ::java::awt::Component$AccessibleAWTComponent * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_Component$AccessibleAWTComponent$AccessibleAWTComponentHandler__
