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