File:
[local] /
rpl /
modules /
motif /
motif.rplc
Revision
1.11:
download - view:
text,
annotated -
select for diffs -
revision graph
Wed Aug 23 12:21:59 2017 UTC (7 years, 8 months ago) by
bertrand
Branches:
MAIN
CVS tags:
rpl-4_1_35,
rpl-4_1_34,
rpl-4_1_33,
rpl-4_1_32,
rpl-4_1_31,
rpl-4_1_30,
rpl-4_1_29,
rpl-4_1_28,
HEAD
Ajout de XmSetIcon.
1: #define __RPLC_MAIN
2: #include "src/rplexternals.h"
3: #include "motif.h"
4:
5: libraryName(motif);
6:
7: exportExternalFunctions(
8: XSynchronize,
9: XStoreName,
10: XmSetIcon,
11: XtAddCallback,
12: XtAppExitMainLoop,
13: XtAppInitialize,
14: XtAppMainLoop,
15: XtCreatePopupShell,
16: XtCreateManagedWidget,
17: XtCreateWidget,
18: XtDestroyWidget,
19: XtOpenApplication,
20: XtPopdown,
21: XtPopup,
22: XtRealizeWidget,
23: XtRemoveCallback);
24:
25: declareSubroutine(onLoading)
26: notice(stdout, "\nMotif library V2R1 for RPL/2 (C) 2017 BERTRAND Joel\n");
27: notice(stdout, "Motif library loaded.\n\n");
28:
29: // Création des variables spécifiques
30:
31: declareObject(variable);
32: declareObject(value);
33:
34: #define createVariable(var) createVariable2(var, var)
35: #define createVariable2(var, val) \
36: do { \
37: createNameObject(variable); \
38: setSymbolicName(variable, #var); \
39: createIntegerObject(value); \
40: setInteger(value, val); \
41: pushOnStack(variable); \
42: pushOnStack(value); \
43: intrinsic(over); \
44: intrinsic(save); \
45: intrinsic(parameter); \
46: } while(0)
47:
48: createVariable2(XmFalse, 0);
49: createVariable2(XmTrue, 1);
50:
51: createVariable(XmATTACH_NONE);
52: createVariable(XmATTACH_FORM);
53: createVariable(XmATTACH_OPPOSITE_FORM);
54: createVariable(XmATTACH_WIDGET);
55: createVariable(XmATTACH_OPPOSITE_WIDGET);
56: createVariable(XmATTACH_POSITION);
57: createVariable(XmATTACH_SELF);
58:
59: createVariable(XmALIGNMENT_BEGINNING);
60: createVariable(XmALIGNMENT_CENTER);
61: createVariable(XmALIGNMENT_END);
62:
63: createVariable(XmHORIZONTAL);
64: createVariable(XmVERTICAL);
65:
66: createVariable(XtGrabNone);
67: createVariable(XtGrabNonexclusive);
68: createVariable(XtGrabExclusive);
69:
70: createVariable(XmSTRING);
71:
72: setFalse(initializationDone);
73: nullify(lCallbacks);
74: endSubroutine
75:
76: declareSubroutine(onClosing)
77: // Destruction des variables spécifiques et des callbacks
78: declareObject(variable);
79: declareDaisyChain(current);
80: declareDaisyChain(next);
81:
82: current = lCallbacks;
83:
84: repeatWhile(not nullified(current))
85: next = nextElementOfDaisyChain(current);
86: variable = fetchElementFromDaisyChain(current);
87: freeObject(variable);
88: free(current);
89: current = next;
90: endWhile
91:
92: nullify(lCallbacks);
93:
94: #define purgeVariable(var) \
95: do { \
96: createNameObject(variable); \
97: setName(variable, #var); \
98: pushOnStack(variable); \
99: intrinsic(dup); \
100: intrinsic(variable); \
101: intrinsic(purge); \
102: } while(0)
103:
104: purgeVariable(XmFalse);
105: purgeVariable(XmTrue);
106:
107: purgeVariable(XmATTACH_NONE);
108: purgeVariable(XmATTACH_FORM);
109: purgeVariable(XmATTACH_OPPOSITE_FORM);
110: purgeVariable(XmATTACH_WIDGET);
111: purgeVariable(XmATTACH_OPPOSITE_WIDGET);
112: purgeVariable(XmATTACH_POSITION);
113: purgeVariable(XmATTACH_SELF);
114:
115: purgeVariable(XmALIGNMENT_BEGINNING);
116: purgeVariable(XmALIGNMENT_CENTER);
117: purgeVariable(XmALIGNMENT_END);
118:
119: purgeVariable(XmHORIZONTAL);
120: purgeVariable(XmVERTICAL);
121:
122: purgeVariable(XtGrabNone);
123: purgeVariable(XtGrabNonexclusive);
124: purgeVariable(XtGrabExclusive);
125:
126: purgeVariable(XmSTRING);
127:
128: notice(stdout, "Motif library unloaded.\n\n");
129: endSubroutine
130:
131: // vim: ts=4
CVSweb interface <joel.bertrand@systella.fr>