Annotation of rpl/modules/motif/motif.rplc, revision 1.4
1.1 bertrand 1: #define __RPLC_MAIN
2: #include "src/rplexternals.h"
3: #include "motif.h"
4:
5: libraryName(motif);
6:
7: exportExternalFunctions(
1.4 ! bertrand 8: XSynchronize,
! 9: XtAddCallback,
1.3 bertrand 10: XtAppExitMainLoop,
1.1 bertrand 11: XtAppInitialize,
12: XtAppMainLoop,
1.4 ! bertrand 13: XtCreatePopupShell,
! 14: XtCreateWidget,
! 15: XtDestroyWidget,
! 16: XtPopdown,
! 17: XtPopup,
! 18: XtRealizeWidget);
1.1 bertrand 19:
20: declareSubroutine(onLoading)
1.2 bertrand 21: notice(stdout, "\nMotif library V2R1 for RPL/2 (C) 2017 BERTRAND Joel\n");
1.1 bertrand 22: notice(stdout, "Motif library loaded.\n\n");
23:
24: // Création des variables spécifiques
25:
26: declareObject(variable);
27: declareObject(value);
28:
29: #define createVariable(var) createVariable2(var, var)
30: #define createVariable2(var, val) \
31: do { \
32: createNameObject(variable); \
33: setSymbolicName(variable, #var); \
34: createIntegerObject(value); \
35: setInteger(value, val); \
36: pushOnStack(variable); \
37: pushOnStack(value); \
38: intrinsic(over); \
39: intrinsic(save); \
40: intrinsic(parameter); \
41: } while(0)
42:
43: createVariable2(XmFalse, 0);
44: createVariable2(XmTrue, 1);
45:
46: createVariable(XmATTACH_NONE);
47: createVariable(XmATTACH_FORM);
48: createVariable(XmATTACH_OPPOSITE_FORM);
49: createVariable(XmATTACH_WIDGET);
50: createVariable(XmATTACH_OPPOSITE_WIDGET);
51: createVariable(XmATTACH_POSITION);
52: createVariable(XmATTACH_SELF);
53:
54: createVariable(XmALIGNMENT_BEGINNING);
55: createVariable(XmALIGNMENT_CENTER);
56: createVariable(XmALIGNMENT_END);
57:
58: createVariable(XmHORIZONTAL);
59: createVariable(XmVERTICAL);
60:
61: createVariable(XtGrabNone);
62: createVariable(XtGrabNonexclusive);
63: createVariable(XtGrabExclusive);
64:
65: createVariable(XmSTRING);
1.4 ! bertrand 66:
! 67: createListObject(callbacksList);
! 68:
! 69: setFalse(initializationDone);
1.1 bertrand 70: endSubroutine
71:
72: declareSubroutine(onClosing)
73: // Destruction des variables spécifiques
74: declareObject(variable);
75:
1.4 ! bertrand 76: freeObject(callbacksList);
! 77:
1.1 bertrand 78: #define purgeVariable(var) \
79: do { \
80: createNameObject(variable); \
81: setName(variable, #var); \
82: pushOnStack(variable); \
83: intrinsic(dup); \
84: intrinsic(variable); \
85: intrinsic(purge); \
86: } while(0)
87:
88: purgeVariable(XmFalse);
89: purgeVariable(XmTrue);
90:
91: purgeVariable(XmATTACH_NONE);
92: purgeVariable(XmATTACH_FORM);
93: purgeVariable(XmATTACH_OPPOSITE_FORM);
94: purgeVariable(XmATTACH_WIDGET);
95: purgeVariable(XmATTACH_OPPOSITE_WIDGET);
96: purgeVariable(XmATTACH_POSITION);
97: purgeVariable(XmATTACH_SELF);
98:
99: purgeVariable(XmALIGNMENT_BEGINNING);
100: purgeVariable(XmALIGNMENT_CENTER);
101: purgeVariable(XmALIGNMENT_END);
102:
103: purgeVariable(XmHORIZONTAL);
104: purgeVariable(XmVERTICAL);
105:
106: purgeVariable(XtGrabNone);
107: purgeVariable(XtGrabNonexclusive);
108: purgeVariable(XtGrabExclusive);
109:
110: purgeVariable(XmSTRING);
111:
112: notice(stdout, "Motif library unloaded.\n\n");
113: endSubroutine
114:
115: // vim: ts=4
CVSweb interface <joel.bertrand@systella.fr>