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

#ifndef __java_awt_event_ContainerEvent__
#define __java_awt_event_ContainerEvent__

#pragma interface

#include <java/awt/event/ComponentEvent.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
        class Container;
      namespace event
      {
          class ContainerEvent;
      }
    }
  }
}

class java::awt::event::ContainerEvent : public ::java::awt::event::ComponentEvent
{

public:
  ContainerEvent(::java::awt::Component *, jint, ::java::awt::Component *);
  virtual ::java::awt::Container * getContainer();
  virtual ::java::awt::Component * getChild();
  virtual ::java::lang::String * paramString();
private:
  static const jlong serialVersionUID = -4114942250539772041LL;
public:
  static const jint CONTAINER_FIRST = 300;
  static const jint CONTAINER_LAST = 301;
  static const jint COMPONENT_ADDED = 300;
  static const jint COMPONENT_REMOVED = 301;
private:
  ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentEvent)))) child;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_event_ContainerEvent__
