#ifndef __IML_H__
#define __IML_H__

#include "SunIM.h"
#include "koinput.h"
#include "le.h"

extern IMFeedbackList *create_feedback(iml_session_t *s, int size);
extern void free_feedback(iml_session_t *s, IMFeedbackList *feedback, int size);
extern int get_feedback(IMFeedbackList * fbl);
extern void set_feedback(IMFeedbackList * fbl, int value);
extern void set_feedback_private(IMFeedbackList * fbl, int normalfeedback, int fg, int bg, int underline);
extern int UTFCHARCat(UTFCHAR *dest, UTFCHAR *str1, UTFCHAR *str2);
extern int UTFCHARCpy(UTFCHAR * dest, UTFCHAR * original);
extern int UTFCHARLen(UTFCHAR * p);
extern IMText *make_imtext(iml_session_t * s, UTFCHAR * p);
extern void iml_commit(iml_session_t * s, UTFCHAR *commit_buf);
extern void iml_sendback_key(iml_session_t *s, IMKeyEventStruct *key);
extern void iml_conversion_on(iml_session_t * s);
extern void iml_conversion_off(iml_session_t * s);
extern void iml_status_enddraw(iml_session_t * s);
extern void iml_status_draw(iml_session_t * s);
extern void iml_preedit_start(iml_session_t * s);
extern void iml_preedit_enddraw(iml_session_t * s);
extern void iml_preedit_draw(iml_session_t * s, UTFCHAR *preedit_buf, int caret_pos);
extern void iml_lookup_start(iml_session_t * s);
extern void iml_lookup_enddraw(iml_session_t *s);
extern void iml_lookup_draw(iml_session_t * s, UTFCHAR ** luc_tmp, int luc_num,
			    int current_candidate, int label_type);
extern void iml_aux_start(iml_session_t * s, char *classname);
extern void iml_aux_done(iml_session_t * s, char *classname);
extern void iml_aux_draw(iml_session_t *s, char *classname, 
		  int count_integers,  int *integers,
		  int count_strings,   int *len_strings,
                  unsigned char **strings);

#endif /* __IML_H__ */
