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

#ifndef __javax_swing_plaf_basic_BasicMenuBarUI$ChangeHandler__
#define __javax_swing_plaf_basic_BasicMenuBarUI$ChangeHandler__

#pragma interface

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

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

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

#endif // __javax_swing_plaf_basic_BasicMenuBarUI$ChangeHandler__
