#ifndef _LE_SESSION_H_
#define _LE_SESSION_H_

#include "le_info.h"
#include "le_desktop.h"

/*
typedef struct TImePCAuxOption {
    int    type;
    int    showSystemBar;
    int    followCursor;
    int    composite;
    int    showPageControl;
    int    ignorCandidateTitle;

    int    candidateVertical;
    int    candidatePosition;
    int    candidateTitlePosition;
} TImePCAuxOption;

*/

typedef struct _LeSessionContextRec {
    ImeEncoding client_encoding;

    ImeModuleRec *current_ime_module;
    int current_conversion_status;
    int current_qjbj_status;
    int current_punct_status;

    iml_session_t *s;

    void *ime_user_data;
    void *ime_desktop_data;
    void *ime_session_data;

    // to restore the data when focus in/out
    int                 preedit_show;
    ImePreeditRec       preedit_backup;
    int                 candidates_show;
    ImeCandidatesRec    candidates_backup;

    //int                 pc_aux_x;
    //int                 pc_aux_y;
    //int                 pc_cursor_x, pc_cursor_y, pc_cursor_w, pc_cursor_h;
    //char               *pc_aux_name;            //preedit_candidates aux name
    //TImePCAuxOption    *pc_aux_options;         //preedit_candidates aux options
} LeSessionContextRec;

#endif	/* _LE_SESSION_H_ */
