1
|
DEF VAR cur AS CHARACTER FORMAT "X(20)" NO-UNDO VIEW-AS COMBO-BOX
|
2
|
LIST-ITEMS
|
3
|
" ",
|
4
|
"APPSTARTING ",
|
5
|
"ARROW",
|
6
|
"CROSS",
|
7
|
"HELP",
|
8
|
"IBEAM",
|
9
|
"NO",
|
10
|
"RECTANGLE",
|
11
|
"SIZE",
|
12
|
"SIZE-E",
|
13
|
"SIZE-N",
|
14
|
"SIZE-NE",
|
15
|
"SIZE-NW",
|
16
|
"SIZE-S",
|
17
|
"SIZE-SE",
|
18
|
"SIZE-SW",
|
19
|
"SIZE-W",
|
20
|
"UPARROW",
|
21
|
"WAIT",
|
22
|
"GLOVE",
|
23
|
"COMPILER-WAIT",
|
24
|
"Busy",
|
25
|
"Busy.cur",
|
26
|
"blkglitwrkbgnd.ani",
|
27
|
"Hand-Cursor.ico",
|
28
|
"XBusy.cur".
|
29
|
|
30
|
DEF VAR fcur AS CHARACTER FORMAT "X(60)" NO-UNDO VIEW-AS COMBO-BOX
|
31
|
LIST-ITEMS
|
32
|
" ",
|
33
|
"APPSTARTING ",
|
34
|
"ARROW",
|
35
|
"CROSS",
|
36
|
"HELP",
|
37
|
"IBEAM",
|
38
|
"NO",
|
39
|
"RECTANGLE",
|
40
|
"SIZE",
|
41
|
"SIZE-E",
|
42
|
"SIZE-N",
|
43
|
"SIZE-NE",
|
44
|
"SIZE-NW",
|
45
|
"SIZE-S",
|
46
|
"SIZE-SE",
|
47
|
"SIZE-SW",
|
48
|
"SIZE-W",
|
49
|
"UPARROW",
|
50
|
"WAIT",
|
51
|
"GLOVE",
|
52
|
"COMPILER-WAIT",
|
53
|
"Busy.cur",
|
54
|
"Graphicloads-Colorful-Long-Shadow-Hand-thumbs-up-3.ico",
|
55
|
"Hand-Cursor.ico",
|
56
|
"Hand-icon.png",
|
57
|
"Icons8-Windows-8-Very-Basic-Hand-Cursor.ico",
|
58
|
"Iconshock-Real-Vista-Construction-Hand-driller.ico",
|
59
|
"Iconsmind-Outline-Hand.icns",
|
60
|
"Iconsmind-Outline-Hand.ico".
|
61
|
|
62
|
DEF VAR wcur AS CHARACTER FORMAT "X(20)" NO-UNDO VIEW-AS COMBO-BOX
|
63
|
LIST-ITEMS
|
64
|
" ",
|
65
|
"APPSTARTING ",
|
66
|
"ARROW",
|
67
|
"CROSS",
|
68
|
"HELP",
|
69
|
"IBEAM",
|
70
|
"NO",
|
71
|
"RECTANGLE",
|
72
|
"SIZE",
|
73
|
"SIZE-E",
|
74
|
"SIZE-N",
|
75
|
"SIZE-NE",
|
76
|
"SIZE-NW",
|
77
|
"SIZE-S",
|
78
|
"SIZE-SE",
|
79
|
"SIZE-SW",
|
80
|
"SIZE-W",
|
81
|
"UPARROW",
|
82
|
"WAIT",
|
83
|
"GLOVE",
|
84
|
"COMPILER-WAIT",
|
85
|
"Busy.cur",
|
86
|
"XBusy.cur".
|
87
|
/*
|
88
|
DEF TEMP-TABLE tt FIELD f1 AS INTEGER
|
89
|
FIELD f2 AS logical
|
90
|
FIELD f3 AS CHARACTER
|
91
|
FIELD f4 AS CHARACTER
|
92
|
FIELD f5 AS CHARACTER.
|
93
|
|
94
|
CREATE tt. tt.f1 = 1. tt.f2 = true. tt.f3 = "test-f3 1". tt.f4 = "test-f4 1". tt.f5 = "test-f5 1".
|
95
|
CREATE tt. tt.f1 = 2. tt.f2 = true. tt.f3 = "test-f3 2". tt.f4 = "test-f4 2". tt.f5 = "test-f5 2".
|
96
|
CREATE tt. tt.f1 = 3. tt.f2 = true. tt.f3 = "test-f3 3". tt.f4 = "test-f4 3". tt.f5 = "test-f5 3".
|
97
|
CREATE tt. tt.f1 = 4. tt.f2 = true. tt.f3 = "test-f3 4". tt.f4 = "test-f4 4". tt.f5 = "test-f5 4".
|
98
|
|
99
|
DEFINE QUERY q FOR tt SCROLLING.
|
100
|
|
101
|
|
102
|
DEF BROWSE br QUERY q
|
103
|
DISPLAY tt.f1 WIDTH 8
|
104
|
tt.f2 /*VIEW-AS TOGGLE-BOX*/ WIDTH 8
|
105
|
tt.f3 WIDTH 8
|
106
|
tt.f4 WIDTH 8 /*VIEW-AS COMBO-BOX LIST-ITEMS "item1", "item2", "item3"*/
|
107
|
tt.f5 WIDTH 8
|
108
|
|
109
|
ENABLE tt.f1
|
110
|
tt.f2
|
111
|
tt.f3
|
112
|
tt.f4
|
113
|
WITH 4 DOWN TITLE "Static browse".
|
114
|
*/
|
115
|
|
116
|
DEF BUTTON btn LABEL "Button".
|
117
|
|
118
|
DEF VAR ed AS CHARACTER VIEW-AS EDITOR INNER-CHARS 20 INNER-LINES 4 LABEL "Editor".
|
119
|
DEF VAR fi AS CHARACTER FORMAT "X(10)" VIEW-AS FILL-IN BGCOLOR 3 LABEL "Fill-In".
|
120
|
DEF VAR fi1 AS CHARACTER FORMAT "X(10)" VIEW-AS FILL-IN LABEL "Fill-In".
|
121
|
DEF VAR tb AS LOGICAL VIEW-AS TOGGLE-BOX LABEL "toggle-box".
|
122
|
|
123
|
DEF VAR cb AS CHARACTER VIEW-AS COMBO-BOX
|
124
|
SIZE 20 BY 1
|
125
|
LIST-ITEM-PAIRS "L1", "V1", "L2" ,"V2", "L3", "V3", "L4", "V4", "L5", "V5".
|
126
|
|
127
|
DEF VAR cb1 AS CHARACTER VIEW-AS COMBO-BOX SIMPLE
|
128
|
SIZE 20 BY 4
|
129
|
LIST-ITEM-PAIRS "L1", "V1", "L2" ,"V2", "L3", "V3", "L4", "V4", "L5", "V5".
|
130
|
|
131
|
DEF VAR cb2 AS CHARACTER VIEW-AS COMBO-BOX DROP-DOWN
|
132
|
SIZE 20 BY 1
|
133
|
LIST-ITEM-PAIRS "L1", "V1", "L2" ,"V2", "L3", "V3", "L4", "V4", "L5", "V5".
|
134
|
|
135
|
DEF VAR rs AS CHARACTER FORMAT "X(10)" VIEW-AS RADIO-SET
|
136
|
RADIO-BUTTONS "L1", "V1", "L2", "V2", "L3", "V3", "L4", "V4", "L5", "V5".
|
137
|
|
138
|
DEF VAR sl AS CHARACTER FORMAT "X(10)" VIEW-AS SELECTION-LIST
|
139
|
INNER-CHARS 12
|
140
|
INNER-LINES 4
|
141
|
LIST-ITEM-PAIRS "L1", "V1", "L2" ,"V2", "L3", "V3", "L4", "V4", "L5", "V5".
|
142
|
|
143
|
DEF VAR sldr AS INTEGER VIEW-AS SLIDER
|
144
|
MAX-VALUE 25
|
145
|
MIN-VALUE 1
|
146
|
TIC-MARKS top
|
147
|
FREQUENCY 1.
|
148
|
/*
|
149
|
DEF VAR hs AS HANDLE.
|
150
|
CREATE SLIDER hs ASSIGN
|
151
|
MAX-VALUE = 25
|
152
|
MIN-VALUE = 1
|
153
|
VISIBLE = TRUE
|
154
|
TIC-MARKS = "top"
|
155
|
FREQUENCY = 1
|
156
|
.
|
157
|
|
158
|
DEF VAR hfr AS HANDLE.
|
159
|
CREATE FRAME hfr ASSIGN
|
160
|
WIDTH-CHARS = 30
|
161
|
HEIGHT-CHARS = 5
|
162
|
TITLE = "Embedded frame"
|
163
|
.
|
164
|
|
165
|
hs:FRAME = hfr.
|
166
|
hs:SENSITIVE = TRUE.
|
167
|
*/
|
168
|
|
169
|
DEF FRAME fr
|
170
|
cur wcur SKIP(1)
|
171
|
fcur SKIP(1)
|
172
|
/*br SKIP(1)*/
|
173
|
rs sl ed SKIP(1)
|
174
|
cb cb1 cb2 SKIP(1)
|
175
|
btn sldr SKIP(1)
|
176
|
fi fi1 SKIP(1)
|
177
|
tb
|
178
|
WITH TITLE "Frame" SIDE-LABELS SIZE 100 BY 25.
|
179
|
|
180
|
/*
|
181
|
OPEN QUERY q FOR EACH tt.
|
182
|
*/
|
183
|
/*
|
184
|
hfr:ROW = tb:ROW IN FRAME fr.
|
185
|
hfr:COLUMN = tb:ROW IN FRAME fr + 20.
|
186
|
hfr:FRAME = FRAME fr:HANDLE.
|
187
|
*/
|
188
|
|
189
|
DEF VAR hw AS HANDLE.
|
190
|
|
191
|
CREATE WINDOW hw ASSIGN
|
192
|
WIDTH-CHARS = 120
|
193
|
HEIGHT-CHARS = 27
|
194
|
TITLE = "Window".
|
195
|
|
196
|
VIEW FRAME fr IN WINDOW hw.
|
197
|
|
198
|
DEF VAR hcw AS HANDLE.
|
199
|
DEF VAR hcwn AS HANDLE.
|
200
|
|
201
|
ON ENTRY ANYWHERE DO:
|
202
|
hcwn = LAST-EVENT:WIDGET-ENTER.
|
203
|
IF hcwn ne ? THEN DO:
|
204
|
IF (hcwn:TYPE ne "COMBO-BOX") OR (hcwn:NAME eq "cb") OR (hcwn:NAME eq "cb1") OR (hcwn:NAME eq "cb2") THEN DO:
|
205
|
message "Entered:" hcwn:TYPE hcwn:NAME "MOUSE-POINTER: [" + hcwn:MOUSE-POINTER + "]" IN WINDOW hw.
|
206
|
IF (hcwn:TYPE ne "WINDOW") AND (hcwn:TYPE ne "FRAME") THEN DO:
|
207
|
hcw = hcwn.
|
208
|
END.
|
209
|
END.
|
210
|
END.
|
211
|
END.
|
212
|
|
213
|
DEF VAR c AS CHARACTER NO-UNDO.
|
214
|
DEF VAR cf AS CHARACTER NO-UNDO.
|
215
|
DEF VAR cw AS CHARACTER NO-UNDO.
|
216
|
|
217
|
ON VALUE-CHANGED OF cur IN FRAME fr DO:
|
218
|
c = cur:SCREEN-VALUE.
|
219
|
IF hcw ne ? THEN DO:
|
220
|
message "new cursor:" c "loaded:" hcw:LOAD-MOUSE-POINTER(c) hcw:TYPE + "(" + hcw:NAME + "):MOUSE-POINTER:[" + hcw:MOUSE-POINTER + "]" IN WINDOW hw.
|
221
|
END.
|
222
|
END.
|
223
|
|
224
|
ON VALUE-CHANGED OF fcur IN FRAME fr DO:
|
225
|
cf = fcur:SCREEN-VALUE.
|
226
|
message "new frame cursor:" cf "loaded:" FRAME fr:LOAD-MOUSE-POINTER(cf) "FRAME fr:MOUSE-POINTER:[" + FRAME fr:MOUSE-POINTER + "]" IN WINDOW hw.
|
227
|
END.
|
228
|
|
229
|
ON VALUE-CHANGED OF wcur IN FRAME fr DO:
|
230
|
cw = wcur:SCREEN-VALUE.
|
231
|
message "new window cursor:" cw "loaded:" hw:LOAD-MOUSE-POINTER(cw) "hw:MOUSE-POINTER:[" + hw:MOUSE-POINTER + "]" IN WINDOW hw.
|
232
|
END.
|
233
|
|
234
|
ON "CTRL-X" ANYWHERE DO:
|
235
|
IF hcw ne ? THEN DO:
|
236
|
message "DISABLING" hcw:TYPE + "(" + hcw:NAME + ")" IN WINDOW hw.
|
237
|
hcw:SENSITIVE = false.
|
238
|
END.
|
239
|
END.
|
240
|
|
241
|
ON "CTRL-Y" ANYWHERE DO:
|
242
|
IF hcw ne ? THEN DO:
|
243
|
message "ENABLING" hcw:TYPE + "(" + hcw:NAME + ")" IN WINDOW hw.
|
244
|
hcw:SENSITIVE = true.
|
245
|
END.
|
246
|
END.
|
247
|
|
248
|
ON "CTRL-A" ANYWHERE DO:
|
249
|
IF hcw ne ? THEN DO:
|
250
|
message hcw:TYPE "(" hcw:NAME "):MOUSE-POINTER:[" hcw:MOUSE-POINTER "]" IN WINDOW hw.
|
251
|
END.
|
252
|
END.
|
253
|
|
254
|
/*
|
255
|
ON "CTRL-B" ANYWHERE DO:
|
256
|
message "new embedded frame cursor:" cf "loaded:" hfr:LOAD-MOUSE-POINTER(cf) "hfr:MOUSE-POINTER:[" + hfr:MOUSE-POINTER + "]" IN WINDOW hw.
|
257
|
END.
|
258
|
*/
|
259
|
|
260
|
ON "CTRL-D" ANYWHERE DO:
|
261
|
IF hcw ne ? THEN DO:
|
262
|
message "new cursor:" c "loaded:" hcw:LOAD-MOUSE-POINTER(c) hcw:TYPE + "(" + hcw:NAME + "):MOUSE-POINTER:[" + hcw:MOUSE-POINTER + "]" IN WINDOW hw.
|
263
|
END.
|
264
|
END.
|
265
|
|
266
|
DEF VAR mptr AS CHARACTER.
|
267
|
mptr = "GENERal".
|
268
|
|
269
|
ON "CTRL-W" ANYWHERE DO:
|
270
|
/*
|
271
|
message "SET-WAIT-STATE will be initiated in 5 seconds" IN WINDOW hw.
|
272
|
WAIT-FOR ENDKEY OF hw PAUSE 5.
|
273
|
*/
|
274
|
message "10 sec pause started" mptr SESSION:SET-WAIT-STATE(mptr) SESSION:GET-WAIT-STATE() IN WINDOW hw.
|
275
|
WAIT-FOR ENDKEY OF hw PAUSE 10.
|
276
|
message "10 sec pause ended" SESSION:SET-WAIT-STATE("") IN WINDOW hw.
|
277
|
END.
|
278
|
|
279
|
ON "CTRL-U" ANYWHERE DO:
|
280
|
ENABLE fi WITH FRAME fr IN WINDOW hw.
|
281
|
message "fi enabled" IN WINDOW hw.
|
282
|
END.
|
283
|
|
284
|
ON "CTRL-V" ANYWHERE DO:
|
285
|
DISABLE fi WITH FRAME fr.
|
286
|
message "fi diabled" IN WINDOW hw.
|
287
|
END.
|
288
|
|
289
|
ENABLE ALL WITH FRAME fr IN WINDOW hw.
|
290
|
WAIT-FOR WINDOW-CLOSE OF hw.
|