You should have received a copy of the GNU Lesser General Public
License along with the m17n library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
02111-1307, USA. */
#ifndef _M17N_INPUT_H_
#define _M17N_INPUT_H_
-typedef struct
+typedef struct _MInputMethodInfo MInputMethodInfo;
+
+struct _MInputMethodInfo
{
+ MDatabase *mdb;
+ MSymbol language, name, extra;
+ MPlist *cmds, *configured_cmds, *bc_cmds;
+ MPlist *vars, *configured_vars, *bc_vars;
+ MText *description;
MText *title;
+ MPlist *maps;
MPlist *states;
MPlist *macros;
MPlist *externals;
-} MInputMethodInfo;
+ unsigned long tick;
+};
typedef struct MIMState MIMState;
/** Index of the key not yet handled. */
int key_head;
+ /** Index of the key at the time of committing. */
+ int commit_key_head;
+
/** Saved M-text when entered in the current state. */
MText *preedit_saved;
/** List of markers. */
MPlist *markers;
- /* List of variables. */
+ /** List of variables. */
MPlist *vars;
+ MPlist *vars_saved;
+
+ MText *preceding_text, *following_text;
+
int key_unhandled;
/** Used by minput_win_driver (input-win.c). */
void *win_info;
+
+ unsigned long tick;
} MInputContextInfo;
#define MINPUT_KEY_SHIFT_MODIFIER (1 << 0)
#define MINPUT_KEY_SUPER_MODIFIER (1 << 4)
#define MINPUT_KEY_HYPER_MODIFIER (1 << 5)
-extern void minput__callback (MInputContext *ic, MSymbol command);
extern MSymbol minput__char_to_key (int c);
#endif /* not _M17N_INPUT_H_ */