version 1.3, 2017/07/11 16:04:53
|
version 1.4, 2017/07/17 21:35:32
|
Line 4
|
Line 4
|
declareExternalFunction(XtAddCallback) |
declareExternalFunction(XtAddCallback) |
declareObject(widget); |
declareObject(widget); |
declareObject(callbackName); |
declareObject(callbackName); |
|
declareObject(callbackObject); |
declareObject(callbackProc); |
declareObject(callbackProc); |
|
declareDaisyChain(tmp); |
|
|
sXtCallback *sCallback; |
sXtCallback *sCallback; |
|
|
Line 12 declareExternalFunction(XtAddCallback)
|
Line 14 declareExternalFunction(XtAddCallback)
|
|
|
String callback; |
String callback; |
|
|
struct_liste_chainee *tmp; |
|
|
|
HEADER |
HEADER |
declareHelpString("Add callback to a widget\n" |
declareHelpString("Add callback to a widget\n" |
" 3: widget\n" |
" 3: widget\n" |
" 2: callback name (XmNactivateCallback)\n" |
" 2: callback name (XmNactivateCallback)\n" |
" 1: expression\n"); |
" 1: expression\n" |
|
" -> 1: callback\n"); |
numberOfArguments(3); |
numberOfArguments(3); |
FUNCTION |
FUNCTION |
if (initializationDone eq true) then |
if (initializationDone eq true) then |
Line 49 declareExternalFunction(XtAddCallback)
|
Line 50 declareExternalFunction(XtAddCallback)
|
freeObject(callbackName); freeObject(widget)); |
freeObject(callbackName); freeObject(widget)); |
endIf |
endIf |
|
|
|
createExternalObject(callbackObject, CALLBACK); |
|
|
sCallback = allocate(size(sXtCallback)); |
sCallback = allocate(size(sXtCallback)); |
sCallback->status = procStatus(rpl_arguments); |
sCallback->status = procStatus(rpl_arguments); |
sCallback->callback = callbackProc; |
sCallback->callback = callbackProc; |
sCallback->widget = target((Widget *) objectContainer(widget)); |
sCallback->widget = target((Widget *) objectContainer(widget)); |
|
objectContainer(callbackObject) = sCallback; |
|
|
XtAddCallback(target((Widget *) objectContainer(widget)), |
XtAddCallback(target((Widget *) objectContainer(widget)), |
callback, rplCallback, (XtPointer) sCallback); |
callback, rplCallback, (XtPointer) sCallback); |
|
|
tmp = allocate(size(struct_liste_chainee)); |
tmp = allocate(size(struct_liste_chainee)); |
tmp->suivant = lCallbacks; |
tmp->next = lCallbacks; |
tmp->donnee = (void *) sCallback; |
tmp->data = callbackObject; |
lCallbacks = tmp; |
lCallbacks = tmp; |
|
|
|
pushOnStack(callbackObject); |
orElse |
orElse |
executionError("Application not initialized"); |
executionError("Application not initialized"); |
returnOnError(); |
returnOnError(); |