Diff for /rpl/modules/motif/XtAddCallback.rplc between versions 1.2 and 1.6

version 1.2, 2017/07/10 14:48:43 version 1.6, 2017/07/30 21:59:40
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);  
             createObject(procStatus);  
   
             objectContainer(procStatus) = address(procStatus(rpl_arguments));  
   
             insertObjectIntoList(subList, callbackProc);              sCallback = allocate(size(sXtCallback));
             insertObjectIntoList(subList, procStatus);              sCallback->status = procStatus(rpl_arguments);
             insertObjectIntoList(callbacksList, subList);              sCallback->callback = callbackProc;
               sCallback->widget = target(objectContainer(Widget, widget));
               objectOf(callbackObject) = sCallback;
   
               XtAddCallback(target(objectContainer(Widget, widget)),
                       callback, rplCallback, (XtPointer) sCallback);
   
               tmp = allocate(size(daisyChain));
               tmp->next = lCallbacks;
               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.2  
changed lines
  Added in v.1.6


CVSweb interface <joel.bertrand@systella.fr>