FOREIGN MODULE java_awt_im_spi;

IMPORT
    java_util := "java.util",
    java_awt := "java.awt",
    java_lang := "java.lang",
    java_awt_im := "java.awt.im",
    java_text := "java.text",
    java_awt_font := "java.awt.font",
    javax_swing := "javax.swing";

TYPE

  InputMethod* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                 END;

  InputMethodContext* = POINTER TO INTERFACE RECORD (java_lang.Object + java_awt_im.InputMethodRequests)    (* Typebound Procedures *)
                        END;

  InputMethodDescriptor* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                           END;




PROCEDURE (self:InputMethod) activate*(),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) deactivate*(p0 : BOOLEAN),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) dispatchEvent*(p0 : java_awt.AWTEvent),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) dispose*(),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) endComposition*(),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) getControlObject*() : java_lang.Object,NEW,ABSTRACT;

PROCEDURE (self:InputMethod) getLocale*() : java_util.Locale,NEW,ABSTRACT;

PROCEDURE (self:InputMethod) hideWindows*(),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) isCompositionEnabled*() : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:InputMethod) notifyClientWindowChange*(p0 : java_awt.Rectangle),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) reconvert*(),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) removeNotify*(),NEW,ABSTRACT;

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

PROCEDURE (self:InputMethod) setCompositionEnabled*(p0 : BOOLEAN),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) setInputMethodContext*(p0 : InputMethodContext),NEW,ABSTRACT;

PROCEDURE (self:InputMethod) setLocale*(p0 : java_util.Locale) : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:InputMethodContext) createInputMethodJFrame*(p0 : java_lang.String;
                                                             p1 : BOOLEAN) : javax_swing.JFrame,NEW,ABSTRACT;

PROCEDURE (self:InputMethodContext) createInputMethodWindow*(p0 : java_lang.String;
                                                             p1 : BOOLEAN) : java_awt.Window,NEW,ABSTRACT;

PROCEDURE (self:InputMethodContext) dispatchInputMethodEvent*(p0 : INTEGER;
                                                              p1 : java_text.AttributedCharacterIterator;
                                                              p2 : INTEGER;
                                                              p3 : java_awt_font.TextHitInfo;
                                                              p4 : java_awt_font.TextHitInfo),NEW,ABSTRACT;

PROCEDURE (self:InputMethodContext) enableClientWindowNotification*(p0 : InputMethod;
                                                                    p1 : BOOLEAN),NEW,ABSTRACT;

PROCEDURE (self:InputMethodDescriptor) createInputMethod*() : InputMethod,NEW,ABSTRACT;

PROCEDURE (self:InputMethodDescriptor) getAvailableLocales*() : POINTER TO ARRAY OF java_util.Locale,NEW,ABSTRACT;

PROCEDURE (self:InputMethodDescriptor) getInputMethodDisplayName*(p0 : java_util.Locale;
                                                                  p1 : java_util.Locale) : java_lang.String,NEW,ABSTRACT;

PROCEDURE (self:InputMethodDescriptor) getInputMethodIcon*(p0 : java_util.Locale) : java_awt.Image,NEW,ABSTRACT;

PROCEDURE (self:InputMethodDescriptor) hasDynamicLocaleList*() : BOOLEAN,NEW,ABSTRACT;

END java_awt_im_spi.