Project

General

Profile

mouse.p

Igor Skornyakov, 02/02/2016 11:03 AM

Download (7.06 KB)

 
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
*/
114
WITH 4 DOWN TITLE "Static browse".
115

    
116

    
117
DEF BUTTON btn LABEL "Button".
118

    
119
DEF VAR ed AS CHARACTER VIEW-AS EDITOR INNER-CHARS 20  INNER-LINES 4 LABEL "Editor".
120
DEF VAR fi AS CHARACTER FORMAT "X(10)" VIEW-AS FILL-IN BGCOLOR 3 LABEL "Fill-In".
121
DEF VAR fi1 AS CHARACTER FORMAT "X(10)" VIEW-AS FILL-IN LABEL "Fill-In".
122
DEF VAR tb AS LOGICAL VIEW-AS TOGGLE-BOX LABEL "toggle-box".
123

    
124
DEF VAR cb AS CHARACTER VIEW-AS COMBO-BOX
125
	SIZE 20 BY 1
126
	LIST-ITEM-PAIRS "L1", "V1", "L2" ,"V2", "L3", "V3", "L4", "V4", "L5", "V5".
127

    
128
DEF VAR cb1 AS CHARACTER VIEW-AS COMBO-BOX SIMPLE
129
	SIZE 20 BY 4
130
	LIST-ITEM-PAIRS "L1", "V1", "L2" ,"V2", "L3", "V3", "L4", "V4", "L5", "V5".
131

    
132
DEF VAR cb2 AS CHARACTER VIEW-AS COMBO-BOX DROP-DOWN
133
	SIZE 20 BY 1
134
	LIST-ITEM-PAIRS "L1", "V1", "L2" ,"V2", "L3", "V3", "L4", "V4", "L5", "V5".
135

    
136
DEF VAR rs AS CHARACTER FORMAT "X(10)" VIEW-AS RADIO-SET
137
        RADIO-BUTTONS "L1", "V1", "L2", "V2", "L3", "V3", "L4", "V4", "L5", "V5".
138

    
139
DEF VAR sl AS CHARACTER FORMAT "X(10)" VIEW-AS SELECTION-LIST
140
    INNER-CHARS 12
141
    INNER-LINES 4
142
	LIST-ITEM-PAIRS "L1", "V1", "L2" ,"V2", "L3", "V3", "L4", "V4", "L5", "V5".
143
/*
144
DEF VAR sldr AS INTEGER VIEW-AS SLIDER
145
	MAX-VALUE 25
146
    MIN-VALUE 1
147
    TIC-MARKS top
148
    FREQUENCY 1.
149

    
150
DEF VAR hs AS HANDLE.
151
CREATE SLIDER hs ASSIGN
152
	MAX-VALUE = 25
153
    MIN-VALUE = 1
154
    VISIBLE = TRUE
155
    TIC-MARKS = "top"
156
    FREQUENCY = 1
157
.
158

    
159
DEF VAR hfr AS HANDLE.
160
CREATE FRAME hfr ASSIGN
161
        WIDTH-CHARS = 30
162
        HEIGHT-CHARS = 5
163
        TITLE = "Embedded frame"
164
.
165

    
166
hs:FRAME = hfr.
167
hs:SENSITIVE = TRUE.
168
*/
169

    
170
DEF FRAME fr 
171
	cur wcur SKIP(1)
172
	fcur SKIP(1)
173
	br SKIP(1)
174
	rs sl ed SKIP(1)
175
	cb cb1 cb2 SKIP(1)
176
	btn /* sldr  SKIP(1) */
177
	fi fi1 SKIP(1)
178
	tb
179
WITH TITLE "Frame" SIDE-LABELS SIZE 100 BY 25.
180

    
181

    
182
OPEN QUERY q FOR EACH tt.
183

    
184
/*
185
hfr:ROW = tb:ROW IN FRAME fr.
186
hfr:COLUMN = tb:ROW IN FRAME fr + 20.
187
hfr:FRAME = FRAME fr:HANDLE.
188
*/
189

    
190
DEF VAR hw AS HANDLE.
191

    
192
CREATE WINDOW hw ASSIGN 
193
	WIDTH-CHARS = 120
194
	HEIGHT-CHARS = 27
195
	TITLE = "Window".
196

    
197
VIEW FRAME fr IN WINDOW hw.
198

    
199
DEF VAR hcw AS HANDLE.
200
DEF VAR hcwn AS HANDLE.
201

    
202
ON ENTRY ANYWHERE DO:
203
	hcwn = LAST-EVENT:WIDGET-ENTER.
204
	IF hcwn ne ? THEN DO:
205
		IF (hcwn:TYPE ne "COMBO-BOX") OR (hcwn:NAME eq "cb") OR (hcwn:NAME eq "cb1") OR (hcwn:NAME eq "cb2") THEN DO:
206
			message "Entered:" hcwn:TYPE hcwn:NAME "MOUSE-POINTER: [" + hcwn:MOUSE-POINTER + "]" IN WINDOW hw.
207
			IF (hcwn:TYPE ne "WINDOW") AND (hcwn:TYPE ne "FRAME") THEN DO:
208
				hcw = hcwn.
209
			END.
210
		END. 
211
	END.
212
END.
213

    
214
DEF VAR c AS CHARACTER NO-UNDO.
215
DEF VAR cf AS CHARACTER NO-UNDO.
216
DEF VAR cw AS CHARACTER NO-UNDO.
217

    
218
ON  VALUE-CHANGED OF cur IN FRAME fr DO:
219
	c = cur:SCREEN-VALUE.
220
	IF hcw ne ? THEN DO:
221
		message "new cursor:" c "loaded:" hcw:LOAD-MOUSE-POINTER(c) hcw:TYPE + "(" + hcw:NAME + "):MOUSE-POINTER:[" + hcw:MOUSE-POINTER + "]" IN WINDOW hw.
222
	END.
223
END.
224

    
225
ON  VALUE-CHANGED OF fcur IN FRAME fr DO:
226
	cf = fcur:SCREEN-VALUE.
227
	message "new frame cursor:" cf "loaded:" FRAME fr:LOAD-MOUSE-POINTER(cf) "FRAME fr:MOUSE-POINTER:[" + FRAME fr:MOUSE-POINTER + "]" IN WINDOW hw.
228
END.
229

    
230
ON  VALUE-CHANGED OF wcur IN FRAME fr DO:
231
	cw = wcur:SCREEN-VALUE.
232
	message "new window cursor:" cw "loaded:" hw:LOAD-MOUSE-POINTER(cw) "hw:MOUSE-POINTER:[" + hw:MOUSE-POINTER + "]" IN WINDOW hw.
233
END.
234

    
235
ON "CTRL-X" ANYWHERE DO: 
236
	IF hcw ne ? THEN DO:
237
		message "DISABLING" hcw:TYPE + "(" + hcw:NAME + ")" IN WINDOW hw.
238
		hcw:SENSITIVE = false.
239
	END.
240
END.
241

    
242
ON "CTRL-Y" ANYWHERE DO: 
243
	IF hcw ne ? THEN DO:
244
		message "ENABLING" hcw:TYPE + "(" + hcw:NAME + ")" IN WINDOW hw.
245
		hcw:SENSITIVE = true.
246
	END.
247
END.
248

    
249
ON "CTRL-A" ANYWHERE DO: 
250
	IF hcw ne ? THEN DO:
251
		message hcw:TYPE  "("  hcw:NAME  "):MOUSE-POINTER:["  hcw:MOUSE-POINTER  "]" IN WINDOW hw.
252
	END.
253
END.
254

    
255
/*
256
ON "CTRL-B" ANYWHERE DO: 
257
	message "new embedded frame cursor:" cf "loaded:" hfr:LOAD-MOUSE-POINTER(cf) "hfr:MOUSE-POINTER:[" + hfr:MOUSE-POINTER + "]" IN WINDOW hw.
258
END.
259
*/
260

    
261
ON "CTRL-D" ANYWHERE DO: 
262
	IF hcw ne ? THEN DO:
263
		message "new cursor:" c "loaded:" hcw:LOAD-MOUSE-POINTER(c) hcw:TYPE + "(" + hcw:NAME + "):MOUSE-POINTER:[" + hcw:MOUSE-POINTER + "]" IN WINDOW hw.
264
	END.
265
END.
266

    
267
DEF VAR mptr AS CHARACTER.
268
mptr = "GENERAL".
269

    
270
ON "CTRL-W" ANYWHERE DO: 
271
/*
272
        message "SET-WAIT-STATE will be initiated in 5 seconds" IN WINDOW hw.
273
        WAIT-FOR ENDKEY OF hw PAUSE 5.
274
*/
275
        message "10 sec pause started" mptr SESSION:SET-WAIT-STATE(mptr) IN WINDOW hw.
276
        WAIT-FOR ENDKEY OF hw PAUSE 10.
277
        message "10 sec pause ended" SESSION:SET-WAIT-STATE("") IN WINDOW hw.
278
END.
279

    
280
ON "CTRL-U" ANYWHERE DO: 
281
	ENABLE fi IN FRAME fr.
282
    message "fi enabled" IN WINDOW hw.
283
END.
284

    
285
ON "CTRL-V" ANYWHERE DO: 
286
	DISABLE fi IN FRAME fr.
287
   message "fi diabled" IN WINDOW hw.
288
END.
289

    
290
ENABLE ALL WITH FRAME fr IN WINDOW hw.
291
WAIT-FOR WINDOW-CLOSE OF hw.