#include "src/rplexternals.h" #include "motif.h" declareExternalFunction(XtAppInitialize) int argc; String *argv; char *name; declareObject(appObject); declareObject(nameObject); declareObject(widgetObject); HEADER declareHelpString("Initialize application context\n" " 1: \"application name\"\n" " -> 2: AppContext\n" " 1: Widget\n"); numberOfArguments(1); FUNCTION pullFromStack(nameObject, string); returnOnError(freeObject(nameObject)); getString(nameObject, name); argc = 0; nullify(argv); createExternalObject(appObject, APPCONTEXT); createExternalObject(widgetObject, WIDGET); objectContainer(appObject) = allocate(size(sXtAppContext)); objectContainer(widgetObject) = allocate(size(Widget)); target((Widget *) objectContainer(widgetObject)) = XtVaAppInitialize(address(target((sXtAppContext *) objectContainer(appObject)).context), name, NULL, 0, address(argc), argv, NULL, NULL); target((sXtAppContext *) objectContainer(appObject)).widget = target((Widget *) objectContainer(widgetObject)); freeObject(nameObject); if (nullified(objectContainer(appObject))) then executionError("Nullified XtAppContext"); freeObject(appObject); freeObject(widgetObject); returnOnError(); endIf pushOnStack(appObject); pushOnStack(widgetObject); setFalse(exitMainLoop); setTrue(initializationDone); END endExternalFunction // vim: ts=4