Annotation of rpl/modules/motif/types.rplc, revision 1.1
1.1 ! bertrand 1: #define TYPE_DECLARATION
! 2: #include "src/rplexternals.h"
! 3: #include "motif.h"
! 4:
! 5: declareTypeExtension(dup)
! 6: declareObject(nObject);
! 7: declareObject(oObject);
! 8:
! 9: oObject = (*((structObject **) arg));
! 10:
! 11: if (nullified(nObject = allocation(s_etat_processus, EXT)))
! 12: {
! 13: typeSystemError;
! 14: }
! 15:
! 16: initializeObject(nObject, oObject);
! 17:
! 18: if (subType(oObject) == APPCONTEXT)
! 19: {
! 20: if (nullified(objectContainer(nObject) =
! 21: malloc(sizeof(XtAppContext))))
! 22: {
! 23: typeSystemError;
! 24: }
! 25:
! 26: target((sXtAppContext *) objectContainer(nObject)).widget =
! 27: target((sXtAppContext *) objectContainer(oObject)).widget;
! 28: target((sXtAppContext *) objectContainer(nObject)).context =
! 29: target((sXtAppContext *) objectContainer(oObject)).context;
! 30: }
! 31: else if (subType(oObject) == WIDGET)
! 32: {
! 33: if (nullified(objectContainer(nObject) =
! 34: malloc(sizeof(sXtAppContext))))
! 35: {
! 36: typeSystemError;
! 37: }
! 38:
! 39: target((Widget *) objectContainer(nObject)) =
! 40: target((Widget *) objectContainer(oObject));
! 41: }
! 42: else
! 43: {
! 44: typeError;
! 45: }
! 46:
! 47: typeSuccess;
! 48: endTypeExtension
! 49:
! 50: declareTypeExtension(drop)
! 51: declareObject(oObject);
! 52:
! 53: oObject = (*((structObject **) arg));
! 54:
! 55: if (subType(oObject) == APPCONTEXT)
! 56: {
! 57: free(objectContainer(oObject));
! 58: }
! 59: else if (subType(oObject) == WIDGET)
! 60: {
! 61: free(objectContainer(oObject));
! 62: }
! 63: else
! 64: {
! 65: typeError;
! 66: }
! 67:
! 68: typeSuccess;
! 69: endTypeExtension
! 70:
! 71: declareTypeExtension(disp)
! 72: declareObject(oObject);
! 73:
! 74: string s;
! 75:
! 76: oObject = (*((structObject **) arg));
! 77:
! 78: if (subType(oObject) == APPCONTEXT)
! 79: {
! 80: if ((s = malloc(32 * sizeof(unsigned char))) == NULL)
! 81: {
! 82: typeSystemError;
! 83: }
! 84:
! 85: sprintf(s, "XtAppContext $ %016llX",
! 86: (long long unsigned int) objectContainer(oObject));
! 87: }
! 88: else if (subType(oObject) == WIDGET)
! 89: {
! 90: if ((s = malloc(26 * sizeof(unsigned char))) == NULL)
! 91: {
! 92: typeSystemError;
! 93: }
! 94:
! 95: sprintf(s, "Widget $ %016llX",
! 96: (long long unsigned int) objectContainer(oObject));
! 97: }
! 98: else
! 99: {
! 100: typeSystemError;
! 101: }
! 102:
! 103: (*arg) = s;
! 104: typeSuccess;
! 105: endTypeExtension
! 106:
! 107: // vim: ts=4
CVSweb interface <joel.bertrand@systella.fr>