// ----- BBgesture v0.3b ----- \\

Author  : Kaloth
Website : http://www.geocities.com/madant8
email   : mulletwarriorextreem@hotmail.com

Licence : GNU General Public License (GPL version 2 or later)

// ----- What is it? ----- \\

It's a gesture recognition plugin! To bring up the gesture pad press
the windows key.

NOTE: This is a beta release, it works on my comp but is far from
being certified stable, use at you own risk!

// ----- Bro@ms ----- \\

None as yet, maybe in the future :)

// ----- RC Settings ----- \\

An example rc file is included and should be fairly self explanitory.

But just in case here is a list of the settings and what they do...

Example rc...

    BBgesture.plugin.x: 77
    BBgesture.plugin.y: 743
    BBgesture.plugin.alwaysontop: false
    BBgesture.plugin.snapwindow: true
    BBgesture.plugin.togglewithplugins: true
    BBgesture.plugin.transparency.enabled: true
    BBgesture.plugin.transparency.alpha: 160

    bbgesture.plugin.gesture0: tr br
    bbgesture.plugin.command0: notepad

    bbgesture.plugin.gesture1: ld rd ld
    bbgesture.plugin.command1: explorer
    bbgesture.plugin.argument1: /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}


Description...

BBoscilliscope.plugin.x:

    Plugin x coordinate on screen.

BBoscilliscope.plugin.y:

    Plugin y coordinate on screen.

BBoscilliscope.plugin.alwaysontop:

    Plugin sits ontop of all other windows.

BBoscilliscope.plugin.snapwindow:

    Plugin snaps to the screen edges.

BBoscilliscope.plugin.togglewithplugins:

    Plugin visual window can be turned on/off using bb toggle plugins menu function.

BBoscilliscope.plugin.transparency.enabled:

    Plugin is/isn't transparent.

BBoscilliscope.plugin.transparency.alpha:

    Plugin's transparency when above set true.


// ----- How do I define my own gesture? ----- \\

Well, now here's the kind of tricky bit....

In the interests of speed bbgesture uses a very simple recognition process.
All it does is look for turning points in your gesture. So for example take the
notepad gesture (above in example rc) which is a capital 'N'. This is represented
by it's two turning points, "tr br". What this means is a top curve going to the right
followed by a bottom curve to the right :) You don't have to be completely accurate as
bbgesture will try and guess which of your defined gestures you are trying to draw
however its not that great at it ;)


// ----- The Curve Codes ----- \\

Hint: think of it as a circle with four corners (top, bottom, left, right) and each
corner can be approached from a different way depending on which way your going round
the circle ;) If you get stuck just scribble on the gesture pad and see what it displays
in the toolbar, this should give you some idea of what to write.

....^....
tr = top curve going to the right
tl = top curve going to the left

....v....
br = bottom curve going to the right
bl = bottom curve going to the left

....<....
lu = right curve going up
ld = right curve going down

....>....
ru = left curve going up
rd = left curve going down



// ----- Change History ----- \\

-- v0.3b

    Made some improvements to the accuracy of the recognition procedure, now distance as apposed to time based :)

    Other minor usability bugs fixed.

-- v0.2b

    Removed permanent mouse hook in exchage for GetMessagePos(), vastly improved idle performance.

-- v0.1b

    Initial Code Version.