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

#ifndef __javax_swing_JViewport__
#define __javax_swing_JViewport__

#pragma interface

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

extern "Java"
{
  namespace javax
  {
    namespace accessibility
    {
      class AccessibleContext;
    }
    namespace swing
    {
      class JViewport;
      namespace border
      {
        class Border;
      }
      namespace plaf
      {
        class ViewportUI;
      }
      class JViewport$ViewListener;
      namespace event
      {
        class ChangeListener;
        class ChangeEvent;
      }
    }
  }
  namespace java
  {
    namespace awt
    {
      class LayoutManager;
      class Graphics;
      class Insets;
      class Component;
      class Rectangle;
      class Dimension;
      class Point;
      class Image;
    }
  }
}

class javax::swing::JViewport : public ::javax::swing::JComponent
{
public:
  JViewport ();
  virtual ::java::awt::Dimension *getExtentSize ();
  virtual ::java::awt::Dimension *toViewCoordinates (::java::awt::Dimension *);
  virtual ::java::awt::Point *toViewCoordinates (::java::awt::Point *);
  virtual void setExtentSize (::java::awt::Dimension *);
  virtual ::java::awt::Dimension *getViewSize ();
  virtual void setViewSize (::java::awt::Dimension *);
  virtual ::java::awt::Point *getViewPosition ();
  virtual void setViewPosition (::java::awt::Point *);
  virtual ::java::awt::Rectangle *getViewRect ();
  virtual jboolean isBackingStoreEnabled ();
  virtual void setBackingStoreEnabled (jboolean);
  virtual void setScrollMode (jint);
  virtual jint getScrollMode () { return scrollMode; }
  virtual ::java::awt::Component *getView ();
  virtual void setView (::java::awt::Component *);
  virtual void reshape (jint, jint, jint, jint);
  virtual ::java::awt::Insets *getInsets ();
  virtual ::java::awt::Insets *getInsets (::java::awt::Insets *);
  virtual jboolean isOptimizedDrawingEnabled ();
  virtual void paint (::java::awt::Graphics *);
  virtual void addChangeListener (::javax::swing::event::ChangeListener *);
  virtual void removeChangeListener (::javax::swing::event::ChangeListener *);
  virtual JArray< ::javax::swing::event::ChangeListener *> *getChangeListeners ();
  virtual ::java::lang::String *getUIClassID ();
  virtual void updateUI ();
  virtual ::javax::swing::plaf::ViewportUI *getUI ();
  virtual void setUI (::javax::swing::plaf::ViewportUI *);
  virtual void setBorder (::javax::swing::border::Border *);
  virtual void scrollRectToVisible (::java::awt::Rectangle *);
  virtual ::javax::accessibility::AccessibleContext *getAccessibleContext ();
  virtual void repaint (jlong, jint, jint, jint, jint);
public:  // actually protected
  virtual void addImpl (::java::awt::Component *, ::java::lang::Object *, jint);
  virtual void fireStateChanged ();
  virtual ::javax::swing::JViewport$ViewListener *createViewListener ();
  virtual ::java::awt::LayoutManager *createLayoutManager ();
  virtual jboolean computeBlit (jint, jint, ::java::awt::Point *, ::java::awt::Point *, ::java::awt::Dimension *, ::java::awt::Rectangle *);
public: // actually package-private
  virtual void paintSimple (::java::awt::Graphics *);
  virtual void paintBackingStore (::java::awt::Graphics *);
  virtual void paintBlit (::java::awt::Graphics *);
  virtual void paintImmediately2 (::java::awt::Rectangle *);
public:
  static const jint SIMPLE_SCROLL_MODE = 0L;
  static const jint BLIT_SCROLL_MODE = 1L;
  static const jint BACKINGSTORE_SCROLL_MODE = 2L;
private:
  static const jlong serialVersionUID = -6925142919680527970LL;
  static jint defaultScrollMode;
public:  // actually protected
  jboolean __attribute__((aligned(__alignof__( ::javax::swing::JComponent ))))  scrollUnderway;
  jboolean isViewSizeSet;
  jboolean backingStore;
  ::java::awt::Image *backingStoreImage;
  ::java::awt::Point *lastPaintPosition;
public: // actually package-private
  ::javax::swing::event::ChangeEvent *changeEvent;
  jint scrollMode;
  ::java::awt::Dimension *extentSize;
  ::java::awt::Dimension *viewSize;
  ::javax::swing::JViewport$ViewListener *viewListener;
  ::java::awt::Point *cachedBlitFrom;
  ::java::awt::Point *cachedBlitTo;
  ::java::awt::Dimension *cachedBlitSize;
  ::java::awt::Rectangle *cachedBlitPaint;
  jboolean damaged;
  jboolean sizeChanged;
private:
  jboolean isPaintRoot;

  friend class javax_swing_JViewport$ViewListener;
  friend class javax_swing_JViewport$AccessibleJViewport;
public:

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

#endif /* __javax_swing_JViewport__ */
