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

#ifndef __javax_swing_plaf_basic_BasicSliderUI$ComponentHandler__
#define __javax_swing_plaf_basic_BasicSliderUI$ComponentHandler__

#pragma interface

#include <java/awt/event/ComponentAdapter.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace event
      {
          class ComponentEvent;
      }
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace basic
        {
            class BasicSliderUI;
            class BasicSliderUI$ComponentHandler;
        }
      }
    }
  }
}

class javax::swing::plaf::basic::BasicSliderUI$ComponentHandler : public ::java::awt::event::ComponentAdapter
{

public:
  BasicSliderUI$ComponentHandler(::javax::swing::plaf::basic::BasicSliderUI *);
  virtual void componentResized(::java::awt::event::ComponentEvent *);
public: // actually package-private
  ::javax::swing::plaf::basic::BasicSliderUI * __attribute__((aligned(__alignof__( ::java::awt::event::ComponentAdapter)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicSliderUI$ComponentHandler__
