STROKES(5)

NAME
Strokes - X(1) action invocation with simple mouse movements

DESCRIPTION
What are strokes? Simply put, they are a method to invoke program actions with mouse drags. They are defined by the following grid:

    1 2 3
    4 5 6
    7 8 9

Stroke 456 is the horizontal movement from left to right with the stroke button pressed. Holding down the stroke button and tracing out the letter `C' would be stroke 3214789. Simple, right?

The Stroke library allows you to add strokes to any X(1) program with one simple function call, StrokeInstall(3). For example:

    W = XmCreateMessageDialog(Parent,
    	"StrokeEnabledDialog",
    	NULL, 0);
    StrokeInstall(W);

will enable strokes in the dialog W.

When a stroke is entered the action corresponding to the stroke is called. For the above example the action `Stroke-456' would be called when `456 is stroked'.

In order to specify a different action you can specify this with the `strokes' resource for the Widget that the strokes have been installed in. So `*StrokeEnabledDialog.strokes: 456 ManagerGadgetSelect' would call the ManagerGadgetSelect action of the message dialog when 456 is stroked. The exact syntax is:

Resource.strokes: stroke action [[,stroke action]...]

  Resources

strokes: stroke action [[,stroke action]...]
    This provides a mapping of strokes to actions. By default the action `Stroke-456' is called for stroke `456'.

strokeSlop: int
    This is used to define a buffer zone between the boxes of the grid. The amount of slop tolerated is actually the resulting box dimension divided by this slop number. Therefore the larger the slop number the more accurate your strokes must be. A value approaching 3 will make it all but impossible to recognize a stroke. The default value is currently 20. Run the stroke(1) program with StrokeDebug turned on to show what this means.

strokeDebug: True | False
    Turns on `stroke debug mode'. In this mode the strokes are not erased from the screen when the button is released and a grid is drawn around the stroke. Try the stroke(1) program to see what I mean.

strokeButton: 1 | 2 | 3 | 4 | 5
    Specifies the button to be used to draw strokes. By default Btn3 is used.

strokeSound: sound file
    If given, the contents of this resource will be provided as an argument to the `PlaySound' action at the conclusion of the stroke. If the PlaySound action is not defined in your application do not specify this resource. Specifically the following call is made:
    XtCallActionProc(W, "PlaySound", NULL, "sound file", 1);

AUTHOR
Rick Scott <rwscott@magi.com>
Check out LessTif at http://www.LessTif.org

SEE ALSO
stroke(1) StrokeInstall(3) StrokeRemove(3) StrokeSetButton(3) StrokeGetButton(3) StrokeSetDebug(3) StrokeGetDebug(3) StrokeSetMapping(3) StrokeGetMapping(3)