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

#ifndef __javax_swing_plaf_basic_BasicSliderUI$ChangeHandler__
#define __javax_swing_plaf_basic_BasicSliderUI$ChangeHandler__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace event
      {
          class ChangeEvent;
      }
      namespace plaf
      {
        namespace basic
        {
            class BasicSliderUI;
            class BasicSliderUI$ChangeHandler;
        }
      }
    }
  }
}

class javax::swing::plaf::basic::BasicSliderUI$ChangeHandler : public ::java::lang::Object
{

public:
  BasicSliderUI$ChangeHandler(::javax::swing::plaf::basic::BasicSliderUI *);
  virtual void stateChanged(::javax::swing::event::ChangeEvent *);
public: // actually package-private
  ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicSliderUI$ChangeHandler__
