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

#ifndef __javax_swing_plaf_basic_BasicComboBoxUI__
#define __javax_swing_plaf_basic_BasicComboBoxUI__

#pragma interface

#include <javax/swing/plaf/ComboBoxUI.h>

extern "Java"
{
  namespace java
  {
    namespace beans
    {
      class PropertyChangeListener;
    }
    namespace awt
    {
      class Insets;
      class Rectangle;
      class Graphics;
      class LayoutManager;
      class Dimension;
      class Color;
      namespace event
      {
        class MouseMotionListener;
        class MouseListener;
        class KeyListener;
        class ItemListener;
        class FocusListener;
      }
      class Component;
    }
  }
  namespace javax
  {
    namespace accessibility
    {
      class Accessible;
    }
    namespace swing
    {
      class ComboBoxEditor;
      class ListCellRenderer;
      class JComponent;
      class CellRendererPane;
      namespace plaf
      {
        class ComponentUI;
        namespace basic
        {
          class BasicComboBoxUI;
          class ComboPopup;
        }
      }
      namespace event
      {
        class ListDataListener;
      }
      class JList;
      class JComboBox;
      class JButton;
    }
  }
}

class javax::swing::plaf::basic::BasicComboBoxUI : public ::javax::swing::plaf::ComboBoxUI
{
public:
  BasicComboBoxUI ();
  static ::javax::swing::plaf::ComponentUI *createUI (::javax::swing::JComponent *);
  virtual void installUI (::javax::swing::JComponent *);
  virtual void uninstallUI (::javax::swing::JComponent *);
public:  // actually protected
  virtual void installDefaults ();
  virtual void installListeners ();
  virtual void uninstallDefaults ();
  virtual void uninstallListeners ();
  virtual ::javax::swing::plaf::basic::ComboPopup *createPopup ();
  virtual ::java::awt::event::KeyListener *createKeyListener ();
private:
  ::java::awt::event::MouseListener *createMouseListener ();
public:  // actually protected
  virtual ::java::awt::event::FocusListener *createFocusListener ();
  virtual ::javax::swing::event::ListDataListener *createListDataListener ();
  virtual ::java::awt::event::ItemListener *createItemListener ();
  virtual ::java::beans::PropertyChangeListener *createPropertyChangeListener ();
  virtual ::java::awt::LayoutManager *createLayoutManager ();
  virtual ::javax::swing::ListCellRenderer *createRenderer ();
  virtual ::javax::swing::ComboBoxEditor *createEditor ();
  virtual void installComponents ();
  virtual void uninstallComponents ();
public:
  virtual void addEditor ();
  virtual void removeEditor ();
public:  // actually protected
  virtual void configureEditor ();
  virtual void unconfigureEditor () { }
public:
  virtual void configureArrowButton ();
  virtual void unconfigureArrowButton () { }
public:  // actually protected
  virtual ::javax::swing::JButton *createArrowButton ();
public:
  virtual jboolean isPopupVisible (::javax::swing::JComboBox *);
  virtual void setPopupVisible (::javax::swing::JComboBox *, jboolean);
  virtual jboolean isFocusTraversable (::javax::swing::JComboBox *);
  virtual void paint (::java::awt::Graphics *, ::javax::swing::JComponent *);
  virtual ::java::awt::Dimension *getPreferredSize (::javax::swing::JComponent *);
  virtual ::java::awt::Dimension *getMinimumSize (::javax::swing::JComponent *);
  virtual ::java::awt::Dimension *getMaximumSize (::javax::swing::JComponent *);
  virtual jint getAccessibleChildrenCount (::javax::swing::JComponent *);
  virtual ::javax::accessibility::Accessible *getAccessibleChild (::javax::swing::JComponent *, jint) { return 0; }
public:  // actually protected
  virtual jboolean isNavigationKey (jint);
  virtual void selectNextPossibleValue ();
  virtual void selectPreviousPossibleValue ();
  virtual void toggleOpenClose ();
  virtual ::java::awt::Rectangle *rectangleForCurrentValue ();
  virtual ::java::awt::Insets *getInsets ();
public:
  virtual void paintCurrentValue (::java::awt::Graphics *, ::java::awt::Rectangle *, jboolean);
  virtual void paintCurrentValueBackground (::java::awt::Graphics *, ::java::awt::Rectangle *, jboolean) { }
public:  // actually protected
  virtual ::java::awt::Dimension *getDefaultSize ();
  virtual ::java::awt::Dimension *getDisplaySize ();
  virtual void installKeyboardActions () { }
  virtual void uninstallKeyboardActions () { }
  ::javax::swing::JButton * __attribute__((aligned(__alignof__( ::javax::swing::plaf::ComboBoxUI )))) arrowButton;
  ::javax::swing::JComboBox *comboBox;
  ::java::awt::Component *editor;
  ::java::awt::event::FocusListener *focusListener;
  jboolean hasFocus;
  ::java::awt::event::ItemListener *itemListener;
  ::java::awt::event::KeyListener *keyListener;
private:
  ::java::awt::event::MouseListener *mouseListener;
public:  // actually protected
  ::javax::swing::JList *listBox;
  ::javax::swing::event::ListDataListener *listDataListener;
  ::javax::swing::plaf::basic::ComboPopup *popup;
  ::java::awt::event::KeyListener *popupKeyListener;
  ::java::awt::event::MouseListener *popupMouseListener;
  ::java::awt::event::MouseMotionListener *popupMouseMotionListener;
  ::java::beans::PropertyChangeListener *propertyChangeListener;
private:
  ::java::awt::Color *buttonBackground;
  ::java::awt::Color *buttonShadow;
  ::java::awt::Color *buttonDarkShadow;
  ::java::awt::Color *buttonHighlight;
public: // actually package-private
  ::java::awt::Dimension *displaySize;
public:  // actually protected
  ::java::awt::Dimension *cachedMinimumSize;
  ::javax::swing::CellRendererPane *currentValuePane;
  jboolean isMinimumSizeDirty;
private:
  static ::java::awt::Dimension *MAXIMUM_SIZE;

  friend class javax_swing_plaf_basic_BasicComboBoxUI$MouseHandler;
  friend class javax_swing_plaf_basic_BasicComboBoxUI$PropertyChangeHandler;
  friend class javax_swing_plaf_basic_BasicComboBoxUI$ListDataHandler;
  friend class javax_swing_plaf_basic_BasicComboBoxUI$KeyHandler;
  friend class javax_swing_plaf_basic_BasicComboBoxUI$ItemHandler;
  friend class javax_swing_plaf_basic_BasicComboBoxUI$FocusHandler;
  friend class javax_swing_plaf_basic_BasicComboBoxUI$ComboBoxLayoutManager;
public:

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

#endif /* __javax_swing_plaf_basic_BasicComboBoxUI__ */
