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

#ifndef __java_awt_font_TextLayout__
#define __java_awt_font_TextLayout__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace awt
      {
        namespace peer
        {
          class ClasspathTextLayoutPeer;
        }
      }
    }
  }
  namespace java
  {
    namespace text
    {
      class AttributedCharacterIterator;
    }
    namespace awt
    {
      namespace geom
      {
        class AffineTransform;
        class Rectangle2D;
      }
      class Shape;
      class Graphics2D;
      class Font;
      namespace font
      {
        class TextHitInfo;
        class TextLayout;
        class FontRenderContext;
        class TextLayout$CaretPolicy;
      }
    }
  }
}

class java::awt::font::TextLayout : public ::java::lang::Object
{
public:
  TextLayout (::java::text::AttributedCharacterIterator *, ::java::awt::font::FontRenderContext *);
  TextLayout (::java::lang::String *, ::java::awt::Font *, ::java::awt::font::FontRenderContext *);
  TextLayout (::java::lang::String *, ::java::util::Map *, ::java::awt::font::FontRenderContext *);
public:  // actually protected
  virtual ::java::lang::Object *clone ();
public:
  virtual void draw (::java::awt::Graphics2D *, jfloat, jfloat);
  virtual jboolean equals (::java::lang::Object *);
  virtual jboolean equals (::java::awt::font::TextLayout *);
  virtual jfloat getAdvance ();
  virtual jfloat getAscent ();
  virtual jbyte getBaseline ();
  virtual jfloatArray getBaselineOffsets ();
  virtual ::java::awt::Shape *getBlackBoxBounds (jint, jint);
  virtual ::java::awt::geom::Rectangle2D *getBounds ();
  virtual jfloatArray getCaretInfo (::java::awt::font::TextHitInfo *);
  virtual jfloatArray getCaretInfo (::java::awt::font::TextHitInfo *, ::java::awt::geom::Rectangle2D *);
  virtual ::java::awt::Shape *getCaretShape (::java::awt::font::TextHitInfo *);
  virtual ::java::awt::Shape *getCaretShape (::java::awt::font::TextHitInfo *, ::java::awt::geom::Rectangle2D *);
  virtual JArray< ::java::awt::Shape *> *getCaretShapes (jint);
  virtual JArray< ::java::awt::Shape *> *getCaretShapes (jint, ::java::awt::geom::Rectangle2D *);
  virtual JArray< ::java::awt::Shape *> *getCaretShapes (jint, ::java::awt::geom::Rectangle2D *, ::java::awt::font::TextLayout$CaretPolicy *);
  virtual jint getCharacterCount ();
  virtual jbyte getCharacterLevel (jint);
  virtual jfloat getDescent ();
  virtual ::java::awt::font::TextLayout *getJustifiedLayout (jfloat);
  virtual jfloat getLeading ();
  virtual ::java::awt::Shape *getLogicalHighlightShape (jint, jint);
  virtual ::java::awt::Shape *getLogicalHighlightShape (jint, jint, ::java::awt::geom::Rectangle2D *);
  virtual jintArray getLogicalRangesForVisualSelection (::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *);
  virtual ::java::awt::font::TextHitInfo *getNextLeftHit (jint);
  virtual ::java::awt::font::TextHitInfo *getNextLeftHit (jint, ::java::awt::font::TextLayout$CaretPolicy *);
  virtual ::java::awt::font::TextHitInfo *getNextLeftHit (::java::awt::font::TextHitInfo *);
  virtual ::java::awt::font::TextHitInfo *getNextRightHit (jint);
  virtual ::java::awt::font::TextHitInfo *getNextRightHit (jint, ::java::awt::font::TextLayout$CaretPolicy *);
  virtual ::java::awt::font::TextHitInfo *getNextRightHit (::java::awt::font::TextHitInfo *);
  virtual ::java::awt::Shape *getOutline (::java::awt::geom::AffineTransform *);
  virtual jfloat getVisibleAdvance ();
  virtual ::java::awt::Shape *getVisualHighlightShape (::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *);
  virtual ::java::awt::Shape *getVisualHighlightShape (::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *, ::java::awt::geom::Rectangle2D *);
  virtual ::java::awt::font::TextHitInfo *getVisualOtherHit (::java::awt::font::TextHitInfo *);
public:  // actually protected
  virtual void handleJustify (jfloat);
public:
  virtual jint hashCode ();
  virtual ::java::awt::font::TextHitInfo *hitTestChar (jfloat, jfloat);
  virtual ::java::awt::font::TextHitInfo *hitTestChar (jfloat, jfloat, ::java::awt::geom::Rectangle2D *);
  virtual jboolean isLeftToRight ();
  virtual jboolean isVertical ();
  virtual ::java::lang::String *toString ();
  static ::java::awt::font::TextLayout$CaretPolicy *DEFAULT_CARET_POLICY;
public: // actually package-private
  ::gnu::java::awt::peer::ClasspathTextLayoutPeer * __attribute__((aligned(__alignof__( ::java::lang::Object )))) peer;

  friend class java_awt_font_TextLayout$CaretPolicy;
public:

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

#endif /* __java_awt_font_TextLayout__ */
