#include "src/rplexternals.h" #include "motif.h" declareExternalFunction(XtPopup) declareObject(grab); declareObject(widget); string 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, string); returnOnError(freeObject(grab)); pullFromStack(widget, external); returnOnError(freeObject(grab); freeObject(widget)); getString(grab, gv); if (strcmp(gv, "XtGrabNonexclusive") eq 0) then xt_gv = XtGrabNonexclusive; elseIf (strcmp(gv, "XtGrabExclusive") eq 0) 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