version 1.2, 2017/07/05 19:07:19
|
version 1.4, 2017/07/10 07:25:24
|
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 37 declareExternalFunction(XtCreateWidget)
|
Line 42 declareExternalFunction(XtCreateWidget)
|
returnOnError(freeObject(parametersObject); |
returnOnError(freeObject(parametersObject); |
freeObject(parentObject)); |
freeObject(parentObject)); |
|
|
|
ifIsExternal(widget, WIDGET) then |
|
orElse |
|
executionError("Type mismatch error"); |
|
returnOnError(freeObject(parametersObject); |
|
freeObject(parentObject)); |
|
endIf |
|
|
pullFromStack(classObject, string); |
pullFromStack(classObject, string); |
returnOnError(freeObject(parametersObject); |
returnOnError(freeObject(parametersObject); |
freeObject(parentObject); |
freeObject(parentObject); |
Line 149 declareExternalFunction(XtCreateWidget)
|
Line 161 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, target((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 |