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.