180ee5cbfSDavid du Colombier #pragma src "/sys/src/libscribble" 280ee5cbfSDavid du Colombier #pragma lib "libscribble.a" 380ee5cbfSDavid du Colombier 4*3f9c8393SDavid du Colombier #pragma incomplete struct graffiti 5*3f9c8393SDavid du Colombier 680ee5cbfSDavid du Colombier typedef struct Scribble Scribble; 780ee5cbfSDavid du Colombier typedef struct graffiti Graffiti; 880ee5cbfSDavid du Colombier 980ee5cbfSDavid du Colombier typedef struct pen_point { 1080ee5cbfSDavid du Colombier Point; 1180ee5cbfSDavid du Colombier long chaincode; 1280ee5cbfSDavid du Colombier } pen_point; 1380ee5cbfSDavid du Colombier 1480ee5cbfSDavid du Colombier typedef struct Stroke { 1580ee5cbfSDavid du Colombier uint npts; /*Number of pen_point in array.*/ 1680ee5cbfSDavid du Colombier pen_point* pts; /*Array of points.*/ 1780ee5cbfSDavid du Colombier } Stroke; 1880ee5cbfSDavid du Colombier 1980ee5cbfSDavid du Colombier #define CS_LETTERS 0 2080ee5cbfSDavid du Colombier #define CS_DIGITS 1 2180ee5cbfSDavid du Colombier #define CS_PUNCTUATION 2 2280ee5cbfSDavid du Colombier 2380ee5cbfSDavid du Colombier struct Scribble { 2480ee5cbfSDavid du Colombier /* private state */ 2580ee5cbfSDavid du Colombier Point *pt; 2680ee5cbfSDavid du Colombier int ppasize; 2780ee5cbfSDavid du Colombier Stroke ps; 2880ee5cbfSDavid du Colombier Graffiti *graf; 2980ee5cbfSDavid du Colombier int capsLock; 3080ee5cbfSDavid du Colombier int puncShift; 3180ee5cbfSDavid du Colombier int tmpShift; 3280ee5cbfSDavid du Colombier int ctrlShift; 3380ee5cbfSDavid du Colombier int curCharSet; 3480ee5cbfSDavid du Colombier }; 3580ee5cbfSDavid du Colombier 3680ee5cbfSDavid du Colombier Rune recognize(Scribble *); 3780ee5cbfSDavid du Colombier Scribble * scribblealloc(void); 3880ee5cbfSDavid du Colombier 3980ee5cbfSDavid du Colombier extern int ScribbleDebug; 40