Diff for /rpl/modules/motif/XtCreateWidget.rplc between versions 1.2 and 1.3

version 1.2, 2017/07/05 19:07:19 version 1.3, 2017/07/06 10:18:04
Line 8  declareExternalFunction(XtCreateWidget) Line 8  declareExternalFunction(XtCreateWidget)
     declareObject(parametersObject);      declareObject(parametersObject);
     declareObject(list);      declareObject(list);
     declareObject(directive);      declareObject(directive);
       declareObject(widget);
   
       declareInteger(value);
   
     declareDaisyChain(current);      declareDaisyChain(current);
     declareDaisyChain(current2);      declareDaisyChain(current2);
   
     char            target(name);      char            target(name);
     char            target(class);      char            target(class);
       char            target(cvalue);
   
     ArgList         args;      ArgList         args;
     Cardinal        argNum;      Cardinal        argNum;
     String          argument;      String          argument;
     WidgetClass     wc;      WidgetClass     wc;
       XmString        x_string;
   
     HEADER      HEADER
         declareHelpString("Create a Motif widget\n"          declareHelpString("Create a Motif widget\n"
Line 149  declareExternalFunction(XtCreateWidget) Line 154  declareExternalFunction(XtCreateWidget)
                         freeObject(classObject);                          freeObject(classObject);
                         freeObject(nameObject));                          freeObject(nameObject));
   
                   ifIsExternal(fetchElementFromDaisyChain(current2), WIDGET) then
                       if ((strcmp(name, "XmNtopWidget") eq 0) or
                               (strcmp(name, "XmNbottomWidget") eq 0) or
                               (strcmp(name, "XmNleftWidget") eq 0) or
                               (strcmp(name, "XmNrightWidget") eq 0)) then
                           XtSetArg(args[argNum], argument,
                                   (XtArgVal) (*((sXtAppContext *)
                                   objectContainer(fetchElementFromDaisyChain(
                                   current2)))).widget);
                       orElse
                           executionError("Wait for XmN*Widget");
                           deallocate(args);
                           returnOnError(freeObject(parametersObject);
                                   freeObject(parentObject);
                                   freeObject(classObject);
                                   freeObject(nameObject));
                       endIf
                   elseIfIsName(fetchElementFromDaisyChain(current2)) then
                       directive = fetchElementFromDaisyChain(current2);
                       dupObject(directive);
                       intrinsic(pshcntxt);
                       pushOnStack(directive);
                       intrinsic(eval);
                       pullFromStack(directive, unknown);
                       intrinsic(pulcntxt);
   
                       ifIsInteger(directive) then
                           getInteger(directive, value);
                           XtSetArg(args[argNum], argument, (XtArgVal) value);
                       elseIfIsExternal(directive, WIDGET) then
                           if ((strcmp(name, "XmNtopWidget") eq 0) or
                                   (strcmp(name, "XmNbottomWidget") eq 0) or
                                   (strcmp(name, "XmNleftWidget") eq 0) or
                                   (strcmp(name, "XmNrightWidget") eq 0)) then
                               XtSetArg(args[argNum], argument,
                                       (XtArgVal) (*((sXtAppContext *)
                                       objectContainer(directive))).widget);
                           orElse
                               executionError("Wait for XmN*Widget");
                               deallocate(args);
                               returnOnError(freeObject(parametersObject);
                                       freeObject(parentObject);
                                       freeObject(classObject);
                                       freeObject(nameObject));
                           endIf
                       endIf
                   elseIfIsInteger(fetchElementFromDaisyChain(current2)) then
                       getInteger(fetchElementFromDaisyChain(current2), value);
                       XtSetArg(args[argNum], argument, (XtArgVal) value);
                   orElse // Allowed types are integer, name, widget or string
                       getString(fetchElementFromDaisyChain(current2), cvalue);
                       x_string = XmStringCreate(cvalue, XmFONTLIST_DEFAULT_TAG);
                       XtSetArg(args[argNum], argument, (XtArgVal) x_string);
                   endIf
             endWhile              endWhile
   
               createExternalObject(widget, WIDGET);
   
               target((Widget *) objectContainer(widget)) =
                       XtCreateWidget(name, wc, (*((sXtAppContext *)
                       objectContainer(parentObject))).widget, args, argNum);
               XtManageChild(target((Widget *) objectContainer(widget)));
   
               pushOnStack(widget);
               deallocate(args);
         orElse          orElse
             executionError("Application not initialized");              executionError("Application not initialized");
             returnOnError();              returnOnError();
         endIf          endIf
   
         setFalse(initializationDone);          freeObject(parametersObject);
           freeObject(parentObject);
           freeObject(classObject);
           freeObject(nameObject);
     END      END
 endExternalFunction  endExternalFunction
   
   // vim: ts=4

Removed from v.1.2  
changed lines
  Added in v.1.3


CVSweb interface <joel.bertrand@systella.fr>