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

#ifndef __javax_swing_plaf_basic_BasicComboBoxUI$ListDataHandler__
#define __javax_swing_plaf_basic_BasicComboBoxUI$ListDataHandler__

#pragma interface

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

class javax::swing::plaf::basic::BasicComboBoxUI$ListDataHandler : public ::java::lang::Object
{

public:
  BasicComboBoxUI$ListDataHandler(::javax::swing::plaf::basic::BasicComboBoxUI *);
  virtual void contentsChanged(::javax::swing::event::ListDataEvent *);
  virtual void intervalAdded(::javax::swing::event::ListDataEvent *);
  virtual void intervalRemoved(::javax::swing::event::ListDataEvent *);
public: // actually package-private
  ::javax::swing::plaf::basic::BasicComboBoxUI * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_plaf_basic_BasicComboBoxUI$ListDataHandler__
