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

#ifndef __javax_swing_text_ComponentView$Interceptor__
#define __javax_swing_text_ComponentView$Interceptor__

#pragma interface

#include <java/awt/Container.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Component;
        class Dimension;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class ComponentView;
          class ComponentView$Interceptor;
      }
    }
  }
}

class javax::swing::text::ComponentView$Interceptor : public ::java::awt::Container
{

public: // actually package-private
  ComponentView$Interceptor(::javax::swing::text::ComponentView *, ::java::awt::Component *);
public:
  virtual void invalidate();
  virtual void doLayout();
  virtual void reshape(jint, jint, jint, jint);
  virtual void show();
  virtual void hide();
  virtual ::java::awt::Dimension * getMinimumSize();
  virtual ::java::awt::Dimension * getPreferredSize();
  virtual ::java::awt::Dimension * getMaximumSize();
  virtual jfloat getAlignmentX();
  virtual jfloat getAlignmentY();
private:
  void maybeValidate();
  void cacheComponentSizes();
public: // actually package-private
  ::java::awt::Dimension * __attribute__((aligned(__alignof__( ::java::awt::Container)))) min;
  ::java::awt::Dimension * pref;
  ::java::awt::Dimension * max;
  jfloat alignX;
  jfloat alignY;
  ::javax::swing::text::ComponentView * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_ComponentView$Interceptor__
