#### 9.1.4 Macros ClicG(), ClicD(), LButtonUp(), RButtonUp(), MouseMove(), MouseWheel(), CtrlClicG() and CtrlClicD()

A left mouse click automatically launch the macro ClicG( <affix> ) with the affix of the clicked point if the Ctrl key is not pressed, else this is the macro CtrlClicG( <affix> ). Those macros do not exist by default, can be created by the user.

As soon as the left button is released, the macro LButtonUp( <affix> ) is executed with the pointer’s affix as parameter. This macro, that doesn’t exist by default, can be created by the user.

A right-click launch the macro ClicD( <affix> ) with the pointer’s affix as parameter if the Ctrl key is not activated, else this is the macro CtrlClicD( <affix> ). By default, the macro ClicD( <affix> ) creates a global variable.

When the right button is released, it launches the macro RButtonUp( <affix> ) with the pointer’s affix as parameter.This macro does not exist by default and can be created by the user.

Moving the mouse launches the macro MouseMove( <affix> ) with the pointer’s affix as parameter. This macro does not exist by default and can be created by the user.

Moving the wheelmouse launches the macro MouseWheel( <delta> ) with delta a positive integer if the wheel is turning forward, negative integer if not. By default, the macro MouseWheel( <delta> ) is used to zoom in/out on the graphic.

Exemple(s): draw a polyline using the mouse:

• A global variable $L$ is created and set for example to Nil.
• A graphical element is created: a Polyline called line and defined by the command L.
• the macro ClicG() is created with the command: [ Insert(L, %1), ReCalc(line)].
• The macro ClicD() is created with the command: [ Del(L, -1, 1), ReCalc(line)] (It removes the last element from the list).

At each left-click, the clicked point is added to the list L and the command ReCalc(line) update the graphical element called line, the polyline is then built using the mouse.