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

#ifndef __javax_swing_event_InternalFrameEvent__
#define __javax_swing_event_InternalFrameEvent__

#pragma interface

#include <java/awt/AWTEvent.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
        class JInternalFrame;
      namespace event
      {
          class InternalFrameEvent;
      }
    }
  }
}

class javax::swing::event::InternalFrameEvent : public ::java::awt::AWTEvent
{

public:
  InternalFrameEvent(::javax::swing::JInternalFrame *, jint);
  virtual ::javax::swing::JInternalFrame * getInternalFrame();
  virtual ::java::lang::String * paramString();
private:
  static const jlong serialVersionUID = -5204823611874873183LL;
public:
  static const jint INTERNAL_FRAME_ACTIVATED = 25554;
  static const jint INTERNAL_FRAME_CLOSED = 25551;
  static const jint INTERNAL_FRAME_CLOSING = 25550;
  static const jint INTERNAL_FRAME_DEACTIVATED = 25555;
  static const jint INTERNAL_FRAME_DEICONIFIED = 25553;
  static const jint INTERNAL_FRAME_FIRST = 25549;
  static const jint INTERNAL_FRAME_ICONIFIED = 25552;
  static const jint INTERNAL_FRAME_LAST = 25555;
  static const jint INTERNAL_FRAME_OPENED = 25549;
  static ::java::lang::Class class$;
};

#endif // __javax_swing_event_InternalFrameEvent__
