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

#ifndef __javax_swing_text_LayeredHighlighter$LayerPainter__
#define __javax_swing_text_LayeredHighlighter$LayerPainter__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Graphics;
        class Shape;
    }
  }
  namespace javax
  {
    namespace swing
    {
      namespace text
      {
          class JTextComponent;
          class LayeredHighlighter$LayerPainter;
          class View;
      }
    }
  }
}

class javax::swing::text::LayeredHighlighter$LayerPainter : public ::java::lang::Object
{

public:
  LayeredHighlighter$LayerPainter();
  virtual ::java::awt::Shape * paintLayer(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *, ::javax::swing::text::View *) = 0;
  virtual void paint(::java::awt::Graphics *, jint, jint, ::java::awt::Shape *, ::javax::swing::text::JTextComponent *) = 0;
  static ::java::lang::Class class$;
};

#endif // __javax_swing_text_LayeredHighlighter$LayerPainter__
