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

#ifndef __javax_swing_plaf_basic_BasicComboPopup__
#define __javax_swing_plaf_basic_BasicComboPopup__

#pragma interface

#include <javax/swing/JPopupMenu.h>

extern "Java"
{
  namespace java
  {
    namespace beans
    {
      class PropertyChangeListener;
    }
    namespace awt
    {
      class Rectangle;
      namespace event
      {
        class MouseEvent;
        class MouseMotionListener;
        class MouseListener;
        class KeyListener;
        class ItemListener;
      }
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace plaf
      {
        namespace basic
        {
          class BasicComboPopup;
        }
      }
      class ComboBoxModel;
      class JScrollPane;
      namespace event
      {
        class ListSelectionListener;
        class ListDataListener;
      }
      class JList;
      class JComboBox;
      class Timer;
    }
  }
}

class javax::swing::plaf::basic::BasicComboPopup : public ::javax::swing::JPopupMenu
{
public:
  BasicComboPopup (::javax::swing::JComboBox *);
  virtual void show ();
  virtual void hide ();
  virtual ::javax::swing::JList *getList () { return list; }
  virtual ::java::awt::event::MouseListener *getMouseListener () { return mouseListener; }
  virtual ::java::awt::event::MouseMotionListener *getMouseMotionListener () { return mouseMotionListener; }
  virtual ::java::awt::event::KeyListener *getKeyListener () { return keyListener; }
  virtual void uninstallingUI ();
public:  // actually protected
  virtual void uninstallComboBoxModelListeners (::javax::swing::ComboBoxModel *);
  virtual void uninstallKeyboardActions () { }
  virtual void firePopupMenuWillBecomeVisible ();
  virtual void firePopupMenuWillBecomeInvisible ();
  virtual void firePopupMenuCanceled ();
  virtual ::java::awt::event::MouseListener *createMouseListener ();
  virtual ::java::awt::event::MouseMotionListener *createMouseMotionListener ();
  virtual ::java::awt::event::KeyListener *createKeyListener ();
  virtual ::javax::swing::event::ListSelectionListener *createListSelectionListener ();
  virtual ::javax::swing::event::ListDataListener *createListDataListener () { return 0; }
  virtual ::java::awt::event::MouseListener *createListMouseListener ();
  virtual ::java::awt::event::MouseMotionListener *createListMouseMotionListener ();
  virtual ::java::beans::PropertyChangeListener *createPropertyChangeListener ();
  virtual ::java::awt::event::ItemListener *createItemListener ();
  virtual ::javax::swing::JList *createList ();
  virtual void configureList ();
  virtual void installListListeners ();
  virtual ::javax::swing::JScrollPane *createScroller ();
  virtual void configureScroller ();
  virtual void configurePopup ();
  virtual void installComboBoxListeners ();
  virtual void installComboBoxModelListeners (::javax::swing::ComboBoxModel *);
  virtual void installKeyboardActions () { }
public:
  virtual jboolean isFocusTraversable ();
public:  // actually protected
  virtual void startAutoScrolling (jint);
  virtual void stopAutoScrolling ();
  virtual void autoScrollUp ();
  virtual void autoScrollDown ();
  virtual void delegateFocus (::java::awt::event::MouseEvent *);
  virtual void togglePopup ();
  virtual ::java::awt::event::MouseEvent *convertMouseEvent (::java::awt::event::MouseEvent *);
  virtual jint getPopupHeightForRowCount (jint);
  virtual ::java::awt::Rectangle *computePopupBounds (jint, jint, jint, jint);
  virtual void updateListBoxSelectionForEvent (::java::awt::event::MouseEvent *, jboolean);
private:
  void uninstallListeners ();
  void uninstallListListeners ();
  void uninstallComboBoxListeners ();
public: // actually package-private
  virtual void syncListSelection ();
public:  // actually protected
  ::javax::swing::Timer * __attribute__((aligned(__alignof__( ::javax::swing::JPopupMenu )))) autoscrollTimer;
  ::javax::swing::JComboBox *comboBox;
  jboolean hasEntered;
  jboolean isAutoScrolling;
  ::java::awt::event::ItemListener *itemListener;
  ::java::awt::event::KeyListener *keyListener;
  ::javax::swing::JList *list;
  ::javax::swing::event::ListDataListener *listDataListener;
  ::java::awt::event::MouseListener *listMouseListener;
  ::java::awt::event::MouseMotionListener *listMouseMotionListener;
  ::javax::swing::event::ListSelectionListener *listSelectionListener;
  ::java::awt::event::MouseListener *mouseListener;
  ::java::awt::event::MouseMotionListener *mouseMotionListener;
  ::java::beans::PropertyChangeListener *propertyChangeListener;
  static const jint SCROLL_DOWN = 1L;
  static const jint SCROLL_UP = 0L;
  jint scrollDirection;
  ::javax::swing::JScrollPane *scroller;
  jboolean valueIsAdjusting;

  friend class javax_swing_plaf_basic_BasicComboPopup$InvocationKeyHandler;
  friend class javax_swing_plaf_basic_BasicComboPopup$ListSelectionHandler;
  friend class javax_swing_plaf_basic_BasicComboPopup$ListDataHandler;
  friend class javax_swing_plaf_basic_BasicComboPopup$PropertyChangeHandler;
  friend class javax_swing_plaf_basic_BasicComboPopup$ListMouseMotionHandler;
  friend class javax_swing_plaf_basic_BasicComboPopup$ListMouseHandler;
  friend class javax_swing_plaf_basic_BasicComboPopup$ItemHandler;
  friend class javax_swing_plaf_basic_BasicComboPopup$InvocationMouseMotionHandler;
  friend class javax_swing_plaf_basic_BasicComboPopup$InvocationMouseHandler;
public:

  static ::java::lang::Class class$;
};

#endif /* __javax_swing_plaf_basic_BasicComboPopup__ */
