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

#ifndef __java_awt_font_LineBreakMeasurer__
#define __java_awt_font_LineBreakMeasurer__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace font
      {
          class FontRenderContext;
          class LineBreakMeasurer;
          class TextLayout;
          class TextMeasurer;
      }
    }
    namespace text
    {
        class AttributedCharacterIterator;
        class BreakIterator;
    }
  }
}

class java::awt::font::LineBreakMeasurer : public ::java::lang::Object
{

public:
  LineBreakMeasurer(::java::text::AttributedCharacterIterator *, ::java::text::BreakIterator *, ::java::awt::font::FontRenderContext *);
  LineBreakMeasurer(::java::text::AttributedCharacterIterator *, ::java::awt::font::FontRenderContext *);
  void deleteChar(::java::text::AttributedCharacterIterator *, jint);
  void insertChar(::java::text::AttributedCharacterIterator *, jint);
  ::java::awt::font::TextLayout * nextLayout(jfloat);
  ::java::awt::font::TextLayout * nextLayout(jfloat, jint, jboolean);
  jint nextOffset(jfloat);
  jint nextOffset(jfloat, jint, jboolean);
  void setPosition(jint);
  jint getPosition();
private:
  ::java::text::AttributedCharacterIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) text;
  jint position;
  ::java::awt::font::TextMeasurer * tm;
  jint numChars;
public:
  static ::java::lang::Class class$;
};

#endif // __java_awt_font_LineBreakMeasurer__
