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

#ifndef __javax_swing_plaf_metal_MetalButtonListener__
#define __javax_swing_plaf_metal_MetalButtonListener__

#pragma interface

#include <javax/swing/plaf/basic/BasicButtonListener.h>
extern "Java"
{
  namespace java
  {
    namespace beans
    {
        class PropertyChangeEvent;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class AbstractButton;
      namespace plaf
      {
        namespace metal
        {
            class MetalButtonListener;
        }
      }
    }
  }
}

class javax::swing::plaf::metal::MetalButtonListener : public ::javax::swing::plaf::basic::BasicButtonListener
{

public:
  MetalButtonListener(::javax::swing::AbstractButton *);
  virtual void propertyChange(::java::beans::PropertyChangeEvent *);
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_metal_MetalButtonListener__
