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

#ifndef __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFramePropertyChangeListener__
#define __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFramePropertyChangeListener__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace beans
    {
        class PropertyChangeEvent;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace basic
        {
            class BasicInternalFrameUI;
            class BasicInternalFrameUI$InternalFramePropertyChangeListener;
        }
      }
    }
  }
}

class javax::swing::plaf::basic::BasicInternalFrameUI$InternalFramePropertyChangeListener : public ::java::lang::Object
{

public:
  BasicInternalFrameUI$InternalFramePropertyChangeListener(::javax::swing::plaf::basic::BasicInternalFrameUI *);
  virtual void propertyChange(::java::beans::PropertyChangeEvent *);
public: // actually package-private
  ::javax::swing::plaf::basic::BasicInternalFrameUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicInternalFrameUI$InternalFramePropertyChangeListener__
