X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Finput.h;h=a08dcbc82d3ea3d132f81d3a51f160b6fbd200d7;hb=bab0794258d2c28f537812b7e582d2f45ffca034;hp=f6ac59c179c194084670ef6c784125f2821b0a1f;hpb=d586416902d4db85e1b4cceacd31982569fdd3a1;p=m17n%2Fm17n-lib.git diff --git a/src/input.h b/src/input.h index f6ac59c..a08dcbc 100644 --- a/src/input.h +++ b/src/input.h @@ -17,19 +17,28 @@ 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; @@ -56,6 +65,9 @@ typedef struct /** 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; @@ -65,13 +77,19 @@ typedef struct /** 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) @@ -81,7 +99,6 @@ typedef struct #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_ */