#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); objectOf(appObject) = allocate(size(sXtAppContext)); objectOf(widgetObject) = allocate(size(Widget)); target(objectContainer(Widget, widgetObject)) = XtVaAppInitialize(address(target( objectContainer(sXtAppContext, appObject)).context), name, NULL, 0, address(argc), argv, NULL, NULL); target(objectContainer(sXtAppContext, appObject)).widget = target(objectContainer(Widget, widgetObject)); freeObject(nameObject); if (nullified(objectOf(appObject))) then executionError("Nullified XtAppContext"); freeObject(appObject); freeObject(widgetObject); returnOnError(); endIf pushOnStack(appObject); pushOnStack(widgetObject); setFalse(exitMainLoop); setTrue(initializationDone); END endExternalFunction // vim: ts=4