scribble man page on Plan9

Man page or keyword search:  
man Server   549 pages
apropos Keyword Search (all sections)
Output format
Plan9 logo
[printable version]

SCRIBBLE(2)							   SCRIBBLE(2)

       scribblealloc, recognize - character recognition

       #include <u.h>
       #include <libc.h>
       #include <draw.h>
       #include <scribble.h>

       Scribble	   *scribblealloc(void);
       Rune	   recognize(Scribble *);

       The  scribble  library  implements  simple  character recognition.  All
       characters are drawn using a single stroke of the pen (mouse button  1)
       as  on  a  palmtop computer.  A reference card is in /sys/src/libscrib‐

       The library is not really intended for standalone use.  Its primary use
       is by the scribble graphical control (see control(2)).

       Scribblealloc allocates and returns an appropriately initialized Scrib‐
       ble structure:

	      #define CS_LETTERS	  0
	      #define CS_DIGITS		  1
	      #define CS_PUNCTUATION  2

	      struct Scribble {
		  /* private state */
		  Point		  *pt;
		  int	      ppasize;
		  Stroke     ps;
		  Graffiti	  *graf;
		  int	      capsLock;
		  int	      puncShift;
		  int	      tmpShift;
		  int	      ctrlShift;
		  int	      curCharSet;

       This structure encodes the points making up the	stroke	to  be	recog‐
       nized,  as  well	 as  the character group in which the stroke should be

       There are three such groups: letters,  digits,  and  punctuation.   The
       current group is encoded in the curCharSet field of the Scribble struc‐
       ture.  Special strokes are recognized to	 switch	 between  groups.   In
       addition,  the charater recognized is influenced by mode parameters and
       modifies them.  These are identified by the capsLock,  puncShift,  tmp‐
       Shift,  and ctrlShift fields of the Scribble structure.	When puncShift
       is non-zero, the character is recognized in the	punctuation  character
       set.   Similarly,  when the character recognized is printable and ctrl‐
       Shift is set, the associated control character is returned  as  if  the
       control key were depressed, and when the character is a letter and cap‐
       sLock or tmpShift is set, the  upper-case  version  is  returned.   The
       puncShift  and  tmpShift flags are turned off once a character has been
       recognized; the others are left set.

       The character to be recognized is encoded as an array of pen_points  in
       the  ps field.  To allow easy drawing of the stroke as it is drawn, the
       pt and ppasize fields are available to the application code for storing
       an array of points for a call to poly (see draw(2)).

       Recognize  recognizes  the  character  provided	in the ps field of the
       Scribble structure; it returns the rune or zero if nothing  was	recog‐

       /sys/src/libscribble/quickref.gif serves as a quick reference card.

       /sys/lib/scribble/classifiers contains the stroke definitions.


       This library is adapted from software reproduced by permission:

       Graffiti.c  is  based  on  the  file  Scribble.c	 copyrighted  by Keith

	      Copyright © 1999 Keith Packard

       Permission to use, copy, modify, distribute, and sell this software and
       its  documentation  for any purpose is hereby granted without fee, pro‐
       vided that the above copyright notice appear in	all  copies  and  that
       both  that  copyright  notice and this permission notice appear in sup‐
       porting documentation, and that the name of Keith Packard not  be  used
       in  advertising or publicity pertaining to distribution of the software
       without specific, written prior permission.   Keith  Packard  makes  no
       representations about the suitability of this software for any purpose.
       It is provided "as is" without express or implied warranty.

       Portions of the software Copyright © 1994 by Sun Microsystems  Computer

       Portions	 of  the software Copyright © 2000 by Compaq Computer Corpora‐

       Keyboard and prompter in bitsyload(1), draw(2), control(2)

                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Plan9

List of man pages available for Plan9

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net