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

#ifndef __java_awt_event_WindowListener__
#define __java_awt_event_WindowListener__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace event
      {
          class WindowEvent;
          class WindowListener;
      }
    }
  }
}

class java::awt::event::WindowListener : public ::java::lang::Object
{

public:
  virtual void windowOpened(::java::awt::event::WindowEvent *) = 0;
  virtual void windowClosing(::java::awt::event::WindowEvent *) = 0;
  virtual void windowClosed(::java::awt::event::WindowEvent *) = 0;
  virtual void windowIconified(::java::awt::event::WindowEvent *) = 0;
  virtual void windowDeiconified(::java::awt::event::WindowEvent *) = 0;
  virtual void windowActivated(::java::awt::event::WindowEvent *) = 0;
  virtual void windowDeactivated(::java::awt::event::WindowEvent *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_awt_event_WindowListener__
