    FOREIGN MODULE java_awt_im;

    IMPORT
        java_awt,
        java_lang,
        java_util,
        java_text,
        java_awt_font;

    TYPE

      InputContext* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                      STATIC
                        PROCEDURE Init!() : InputContext,CONSTRUCTOR;
                        PROCEDURE getInstance*() : InputContext;
                      END;

      InputMethodHighlight* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                              STATIC
                                RAW_TEXT* = 0;
                                CONVERTED_TEXT* = 1;
                                UNSELECTED_RAW_TEXT_HIGHLIGHT* : InputMethodHighlight;
                                SELECTED_RAW_TEXT_HIGHLIGHT* : InputMethodHighlight;
                                UNSELECTED_CONVERTED_TEXT_HIGHLIGHT* : InputMethodHighlight;
                                SELECTED_CONVERTED_TEXT_HIGHLIGHT* : InputMethodHighlight;
                                PROCEDURE Init*(p0 : BOOLEAN;
                                                p1 : INTEGER) : InputMethodHighlight,CONSTRUCTOR;
                                PROCEDURE Init*(p0 : BOOLEAN;
                                                p1 : INTEGER;
                                                p2 : INTEGER) : InputMethodHighlight,CONSTRUCTOR;
                              END;

      InputMethodRequests* = POINTER TO INTERFACE RECORD (java_lang.Object)
                             END;

      InputSubset* = POINTER TO RECORD (java_lang.Character$Subset)
                     STATIC
                       LATIN* : InputSubset;
                       LATIN_DIGITS* : InputSubset;
                       TRADITIONAL_HANZI* : InputSubset;
                       SIMPLIFIED_HANZI* : InputSubset;
                       KANJI* : InputSubset;
                       HANJA* : InputSubset;
                       HALFWIDTH_KATAKANA* : InputSubset;
                     END;

    PROCEDURE (self:InputContext) dispatchEvent*(p0 : java_awt.AWTEvent),NEW,EXTENSIBLE;

    PROCEDURE (self:InputContext) dispose*(),NEW,EXTENSIBLE;

    PROCEDURE (self:InputContext) endComposition*(),NEW,EXTENSIBLE;

    PROCEDURE (self:InputContext) getInputMethodControlObject*() : java_lang.Object,NEW,EXTENSIBLE;

    PROCEDURE (self:InputContext) removeNotify*(p0 : java_awt.Component),NEW,EXTENSIBLE;

    PROCEDURE (self:InputContext) selectInputMethod*(p0 : java_util.Locale) : BOOLEAN,NEW,EXTENSIBLE;

    PROCEDURE (self:InputContext) setCharacterSubsets*(IN  p0 : ARRAY OF java_lang.Character$Subset),NEW,EXTENSIBLE;

    PROCEDURE (self:InputMethodHighlight) getState*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:InputMethodHighlight) getVariation*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:InputMethodHighlight) isSelected*() : BOOLEAN,NEW,EXTENSIBLE;

    PROCEDURE (self:InputMethodRequests) cancelLatestCommittedText*(IN  p0 : ARRAY OF java_text.AttributedCharacterIterator$Attribute) : java_text.AttributedCharacterIterator,NEW,ABSTRACT;

    PROCEDURE (self:InputMethodRequests) getCommittedText*(    p0 : INTEGER;
                                                               p1 : INTEGER;
                                                           IN  p2 : ARRAY OF java_text.AttributedCharacterIterator$Attribute) : java_text.AttributedCharacterIterator,NEW,ABSTRACT;

    PROCEDURE (self:InputMethodRequests) getCommittedTextLength*() : INTEGER,NEW,ABSTRACT;

    PROCEDURE (self:InputMethodRequests) getInsertPositionOffset*() : INTEGER,NEW,ABSTRACT;

    PROCEDURE (self:InputMethodRequests) getLocationOffset*(p0 : INTEGER;
                                                            p1 : INTEGER) : java_awt_font.TextHitInfo,NEW,ABSTRACT;

    PROCEDURE (self:InputMethodRequests) getSelectedText*(IN  p0 : ARRAY OF java_text.AttributedCharacterIterator$Attribute) : java_text.AttributedCharacterIterator,NEW,ABSTRACT;

    PROCEDURE (self:InputMethodRequests) getTextLocation*(p0 : java_awt_font.TextHitInfo) : java_awt.Rectangle,NEW,ABSTRACT;

    END java_awt_im.