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

#ifndef __javax_swing_JList__
#define __javax_swing_JList__

#pragma interface

#include <javax/swing/JComponent.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
      class Rectangle;
      class Dimension;
      class Point;
      class Color;
    }
  }
  namespace javax
  {
    namespace accessibility
    {
      class AccessibleContext;
    }
    namespace swing
    {
      class JList;
      namespace text
      {
        class Position$Bias;
      }
      namespace plaf
      {
        class ListUI;
      }
      namespace event
      {
        class ListSelectionListener;
      }
      class JList$ListListener;
      class ListSelectionModel;
      class ListModel;
      class ListCellRenderer;
    }
  }
}

class javax::swing::JList : public ::javax::swing::JComponent
{
public:  // actually protected
  virtual void fireSelectionValueChanged (jint, jint, jboolean);
public:
  JList ();
  JList (JArray< ::java::lang::Object *> *);
  JList (::java::util::Vector *);
  JList (::javax::swing::ListModel *);
private:
  void init (::javax::swing::ListModel *);
public:  // actually protected
  virtual ::javax::swing::ListSelectionModel *createSelectionModel ();
public:
  virtual jint getFixedCellHeight () { return fixedCellHeight; }
  virtual void setFixedCellHeight (jint);
  virtual jint getFixedCellWidth () { return fixedCellWidth; }
  virtual void setFixedCellWidth (jint);
  virtual jint getVisibleRowCount () { return visibleRowCount; }
  virtual void setVisibleRowCount (jint);
  virtual void addListSelectionListener (::javax::swing::event::ListSelectionListener *);
  virtual void removeListSelectionListener (::javax::swing::event::ListSelectionListener *);
  virtual JArray< ::javax::swing::event::ListSelectionListener *> *getListSelectionListeners ();
  virtual jint getSelectionMode ();
  virtual void setSelectionMode (jint);
  virtual void setSelectedIndex (jint);
  virtual void setSelectedIndices (jintArray);
  virtual jint getSelectedIndex ();
  virtual jboolean isSelectionEmpty ();
  virtual jint getFirstVisibleIndex ();
  virtual jint locationToIndex (::java::awt::Point *);
  virtual ::java::awt::Point *indexToLocation (jint);
  virtual jint getLastVisibleIndex ();
  virtual jintArray getSelectedIndices ();
  virtual jboolean isSelectedIndex (jint);
  virtual ::java::lang::Object *getSelectedValue ();
  virtual JArray< ::java::lang::Object *> *getSelectedValues ();
  virtual ::java::awt::Color *getSelectionBackground () { return selectionBackground; }
  virtual void setSelectionBackground (::java::awt::Color *);
  virtual ::java::awt::Color *getSelectionForeground () { return selectionForeground; }
  virtual void setSelectionForeground (::java::awt::Color *);
  virtual void setSelectedValue (::java::lang::Object *, jboolean);
  virtual void ensureIndexIsVisible (jint);
  virtual void setListData (JArray< ::java::lang::Object *> *);
private:
  ::javax::swing::ListModel *createListModel (JArray< ::java::lang::Object *> *);
  ::javax::swing::ListModel *createListModel (::java::util::Vector *);
public:
  virtual void setListData (::java::util::Vector *);
  virtual ::javax::swing::ListCellRenderer *getCellRenderer () { return cellRenderer; }
  virtual void setCellRenderer (::javax::swing::ListCellRenderer *);
  virtual ::javax::swing::ListModel *getModel () { return model; }
  virtual void setModel (::javax::swing::ListModel *);
  virtual ::javax::swing::ListSelectionModel *getSelectionModel () { return selectionModel; }
  virtual void setSelectionModel (::javax::swing::ListSelectionModel *);
  virtual ::javax::swing::plaf::ListUI *getUI ();
  virtual void setUI (::javax::swing::plaf::ListUI *);
  virtual void updateUI ();
  virtual ::java::lang::String *getUIClassID ();
  virtual ::java::lang::Object *getPrototypeCellValue () { return prototypeCellValue; }
  virtual void setPrototypeCellValue (::java::lang::Object *);
  virtual ::javax::accessibility::AccessibleContext *getAccessibleContext ();
  virtual ::java::awt::Dimension *getPreferredScrollableViewportSize ();
  virtual jint getScrollableUnitIncrement (::java::awt::Rectangle *, jint, jint);
  virtual jint getScrollableBlockIncrement (::java::awt::Rectangle *, jint, jint);
  virtual jboolean getScrollableTracksViewportWidth ();
  virtual jboolean getScrollableTracksViewportHeight ();
  virtual jint getAnchorSelectionIndex ();
  virtual jint getLeadSelectionIndex ();
  virtual jint getMinSelectionIndex ();
  virtual jint getMaxSelectionIndex ();
  virtual void clearSelection ();
  virtual void setSelectionInterval (jint, jint);
  virtual void addSelectionInterval (jint, jint);
  virtual void removeSelectionInterval (jint, jint);
  virtual jboolean getValueIsAdjusting ();
  virtual void setValueIsAdjusting (jboolean);
  virtual jboolean getDragEnabled () { return dragEnabled; }
  virtual void setDragEnabled (jboolean);
  virtual jint getLayoutOrientation () { return layoutOrientation; }
  virtual void setLayoutOrientation (jint);
  virtual ::java::awt::Rectangle *getCellBounds (jint, jint);
  virtual jint getNextMatch (::java::lang::String *, jint, ::javax::swing::text::Position$Bias *);
public:  // actually protected
  virtual ::java::lang::String *paramString ();
private:
  static const jlong serialVersionUID = 4406629526391098046LL;
public:
  static const jint VERTICAL = 0L;
  static const jint VERTICAL_WRAP = 1L;
  static const jint HORIZONTAL_WRAP = 2L;
public: // actually package-private
  jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent ))))  dragEnabled;
  ::javax::swing::ListCellRenderer *cellRenderer;
  jint fixedCellWidth;
  jint fixedCellHeight;
  jint layoutOrientation;
  ::javax::swing::ListModel *model;
  ::java::lang::Object *prototypeCellValue;
  ::java::awt::Color *selectionBackground;
  ::java::awt::Color *selectionForeground;
  ::javax::swing::ListSelectionModel *selectionModel;
  jint visibleRowCount;
  ::javax::swing::JList$ListListener *listListener;

  friend class javax_swing_JList$2;
  friend class javax_swing_JList$1;
  friend class javax_swing_JList$ListListener;
  friend class javax_swing_JList$AccessibleJList;
public:

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

#endif /* __javax_swing_JList__ */
