void SpxAddCallback(Widget w,const char* reason,XtCallbackProc proc, XtPointer clientdata,SPXFILE* spx_file)
Cette fonction permet d'affecter un évènement lié à la souris à l'appel d'une fonction.
Widget est l'identificateur du Widget du client, utilisant la librairie Narcisse, au sens de la librairie Xt, fournie par le standard X11, dont on veut associer la fenêtre avec l'afficheur de Narcisse.
reason est le type d'évènement que l'on veut associer.
Les évènements possibles sont définis si on inclus narcisse.h dans l'application cliente :
Pour les trois derniers évènements, les structures de données associées à l'évènements différent des trois précédentes.
proc est le nom de la procédure que l'on veut associer. Cette procédure doit avoir un prototype de la forme définie par XtCallbackProc dans l'include standard X11 Intrinsic.h, soit :
typedef void (*XtCallbackProc)(Widget wid,XtPointer clientdata, XtPointer calldata)
cliendata est un pointeur sur une structure de données fournies par le client à l'appel de SpxAddCallback.
calldata est un pointeur sur une structure de donnée spécifique pour chaque type d'évènement.
Pour les évènements de types SpxNenterAffCallback et SpxNleaveAffCallback aucune structure de données spécifique n'est renvoyée.
Pour les évènements de types SpxNbpressAffCallback et SpxNbreleaseAffCallback, un pointeur sur la structure typedef struct { int x; int y; unsigned state; unsigned button; } SpxButtonCallbackStruct définie dans narcisse.h est envoyée à la procédure utilisateur proc comme paramêtre calldata. x et y sont donnés en pixels.
Pour les évènements de types SpxNbpressbaseAffCallback et SpxNbreleasebaseAffCallback, un pointeur sur la structure typedef struct { float x; float y; unsigned state; unsigned button; } SpxButtonBaseCallbackStruct définie dans narcisse.h est envoyée à la procédure utilisateur proc comme paramêtre calldata. x et y sont convertis dans l'espace utilisateur de l'image en cours.
Pour les évènements de types SpxNmnotifyAffCallback, un pointeur sur la structure typedef struct { int x; int y; unsigned state; } SpxMotionCallbackStruct définie dans narcisse.h est envoyée à la procédure utilisateur proc comme paramêtre calldata. x et y sont donnés en pixels.
Pour les évènements de types SpxNmnotifybaseAffCallback, un pointeur sur la structure typedef struct { float x; float y; unsigned state; } SpxMotionBaseCallbackStruct définie dans narcisse.h est envoyée à la procédure utilisateur proc comme paramêtre calldata. x et y convertis dans l'espace utilisateur de l'image en cours.
spx_file est le pointeur sur une connexion renvoyé par SpcOpen qui doit avoir été préalablement appelé.