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

#ifndef __gnu_java_awt_ComponentReshapeEvent__
#define __gnu_java_awt_ComponentReshapeEvent__

#pragma interface

#include <java/awt/AWTEvent.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace awt
      {
          class ComponentReshapeEvent;
      }
    }
  }
  namespace java
  {
    namespace awt
    {
        class Component;
    }
  }
}

class gnu::java::awt::ComponentReshapeEvent : public ::java::awt::AWTEvent
{

public:
  ComponentReshapeEvent(::java::awt::Component *, jint, jint, jint, jint);
  jint __attribute__((aligned(__alignof__( ::java::awt::AWTEvent)))) x;
  jint y;
  jint width;
  jint height;
  static ::java::lang::Class class$;
};

#endif // __gnu_java_awt_ComponentReshapeEvent__
