xref: /plan9/sys/include/scribble.h (revision 3f9c83932f326ae8b6d81b36429957bc06a9813e)
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