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

#ifndef __java_awt_im_spi_InputMethodContext__
#define __java_awt_im_spi_InputMethodContext__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace awt
    {
        class Rectangle;
        class Window;
      namespace font
      {
          class TextHitInfo;
      }
      namespace im
      {
        namespace spi
        {
            class InputMethod;
            class InputMethodContext;
        }
      }
    }
    namespace text
    {
        class AttributedCharacterIterator;
        class AttributedCharacterIterator$Attribute;
    }
  }
  namespace javax
  {
    namespace swing
    {
        class JFrame;
    }
  }
}

class java::awt::im::spi::InputMethodContext : public ::java::lang::Object
{

public:
  virtual void dispatchInputMethodEvent(jint, ::java::text::AttributedCharacterIterator *, jint, ::java::awt::font::TextHitInfo *, ::java::awt::font::TextHitInfo *) = 0;
  virtual ::java::awt::Window * createInputMethodWindow(::java::lang::String *, jboolean) = 0;
  virtual ::javax::swing::JFrame * createInputMethodJFrame(::java::lang::String *, jboolean) = 0;
  virtual void enableClientWindowNotification(::java::awt::im::spi::InputMethod *, jboolean) = 0;
  virtual ::java::awt::Rectangle * getTextLocation(::java::awt::font::TextHitInfo *) = 0;
  virtual ::java::awt::font::TextHitInfo * getLocationOffset(jint, jint) = 0;
  virtual jint getInsertPositionOffset() = 0;
  virtual ::java::text::AttributedCharacterIterator * getCommittedText(jint, jint, JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
  virtual jint getCommittedTextLength() = 0;
  virtual ::java::text::AttributedCharacterIterator * cancelLatestCommittedText(JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
  virtual ::java::text::AttributedCharacterIterator * getSelectedText(JArray< ::java::text::AttributedCharacterIterator$Attribute * > *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_awt_im_spi_InputMethodContext__