Annotation of rpl/modules/motif/XtAppMainLoop.rplc, revision 1.1
1.1 ! bertrand 1: #include "src/rplexternals.h"
! 2: #include "motif.h"
! 3:
! 4: declareExternalFunction(XtAppMainLoop)
! 5: XEvent event;
! 6:
! 7: declareObject(appObject);
! 8:
! 9: HEADER
! 10: declareHelpString("Main loop of a Motif application\n"
! 11: " 1: AppContext\n");
! 12: numberOfArguments(1);
! 13: FUNCTION
! 14: if (initializationDone eq true) then
! 15: pullFromStack(appObject, external);
! 16: returnOnError(freeObject(appObject));
! 17:
! 18: if (subType(appObject) ne APPCONTEXT) then
! 19: executionError("Type mismatch");
! 20: returnOnError(freeObject(appObject));
! 21: endIf
! 22:
! 23: doUntil
! 24: if (XtAppPending(target((sXtAppContext *)
! 25: objectContainer(appObject)).context) ne 0) then
! 26: XtAppNextEvent(target((sXtAppContext *)
! 27: objectContainer(appObject)).context, &event);
! 28:
! 29: if (event.type eq DestroyNotify) then
! 30: if (event.xdestroywindow.window eq
! 31: XtWindow(target((sXtAppContext *)
! 32: objectContainer(appObject)).widget)) then
! 33: XtAppSetExitFlag(target((sXtAppContext *)
! 34: objectContainer(appObject)).context);
! 35: endIf
! 36: endIf
! 37:
! 38: XtDispatchEvent(&event);
! 39: orElse
! 40: pollSignalsAndInterrupts();
! 41: usleep(10000);
! 42: endIf
! 43: repeatUntil(XtAppGetExitFlag(target((sXtAppContext *)
! 44: objectContainer(appObject)).context) or
! 45: (stopRequest eq -1) or
! 46: (exitMainLoop ne 0))
! 47:
! 48: XtDestroyApplicationContext(target((sXtAppContext *)
! 49: objectContainer(appObject)).context);
! 50: orElse
! 51: executionError("Application not initialized");
! 52: returnOnError();
! 53: endIf
! 54:
! 55: setFalse(initializationDone);
! 56: END
! 57: endExternalFunction
CVSweb interface <joel.bertrand@systella.fr>