Diff for /rpl/modules/motif/XtAddCallback.rplc between versions 1.1 and 1.5

version 1.1, 2017/07/10 07:25:24 version 1.5, 2017/07/22 11:29:49
Line 4 Line 4
 declareExternalFunction(XtAddCallback)  declareExternalFunction(XtAddCallback)
     declareObject(widget);      declareObject(widget);
     declareObject(callbackName);      declareObject(callbackName);
       declareObject(callbackObject);
     declareObject(callbackProc);      declareObject(callbackProc);
     declareObject(subList);      declareDaisyChain(tmp);
     declareObject(procStatus);  
   
     string              type;      sXtCallback             *sCallback;
   
     String              callback;      string                  type;
   
       String                  callback;
   
     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 47  declareExternalFunction(XtAddCallback) Line 50  declareExternalFunction(XtAddCallback)
                         freeObject(callbackName); freeObject(widget));                          freeObject(callbackName); freeObject(widget));
             endIf              endIf
   
             // Adding a copy of expression in a list.              createExternalObject(callbackObject, CALLBACK);
   
             dupObject(callbackProc);  
   
             createListObject(subList);              sCallback = allocate(size(sXtCallback));
             createObject(procStatus);              sCallback->status = procStatus(rpl_arguments);
               sCallback->callback = callbackProc;
               sCallback->widget = target((Widget *) objectContainer(widget));
               objectContainer(callbackObject) = sCallback;
   
             objectContainer(procStatus) = address(procStatus(rpl_arguments));              XtAddCallback(target((Widget *) objectContainer(widget)),
                       callback, rplCallback, (XtPointer) sCallback);
   
             insertObjectIntoList(subList, callbackProc);              tmp = allocate(size(daisyChain));
             insertObjectIntoList(subList, procStatus);              tmp->next = lCallbacks;
             insertObjectIntoList(callbacksList, subList);              tmp->data = callbackObject;
               lCallbacks = tmp;
   
             XtAddCallback(target((Widget *) objectContainer(widget)),              dupObject(callbackObject);
                     callback, rplCallback, (XtPointer) subList);              pushOnStack(callbackObject);
         orElse          orElse
             executionError("Application not initialized");              executionError("Application not initialized");
             returnOnError();              returnOnError();

Removed from v.1.1  
changed lines
  Added in v.1.5


CVSweb interface <joel.bertrand@systella.fr>