#include "src/rplexternals.h" #include "motif.h" declareExternalFunction(XtPopup) declareObject(grab); declareObject(widget); integer8 gv; XtGrabKind xt_gv; HEADER declareHelpString("Popup a widget\n" " 2: widget\n" " 1: flag (XtGrabNonexclusive/XtGrabExclusive)\n"); numberOfArguments(2); FUNCTION if (initializationDone eq true) then pullFromStack(grab, integer); returnOnError(freeObject(grab)); pullFromStack(widget, external); returnOnError(freeObject(grab); freeObject(widget)); getInteger(grab, gv); if (gv eq XtGrabNonexclusive) then xt_gv = XtGrabNonexclusive; elseIf (gv eq XtGrabExclusive) then xt_gv = XtGrabExclusive; orElse executionError("Unknown grab value"); returnOnError(freeObject(grab); freeObject(widget)); endIf ifIsExternal(widget, WIDGET) then orElse executionError("Type mismath error"); returnOnError(freeObject(grab); freeObject(widget)); endIf XtPopup(target((Widget *) objectContainer(widget)), xt_gv); freeObject(widget); freeObject(grab); orElse executionError("Application not initialized"); returnOnError(); endIf END endExternalFunction // vim: ts=4