Example: Pushbutton Widget
|
10 ! *********************************************************************
20 ! Example: PUSHBUTTON Widget
30 !
40 ! This program generates a PUSHBUTTON widget with
50 ! three states. Each time the button is pressed, the
60 ! display cycles through Label ONE, Label TWO, and
70 ! Label THREE, and the associated state (0, 1, or 2).
80 ! is displayed.
90 !
100 ! ************************************************
110 !
120 DIM L$(1:3)[50]
130 INTEGER D(1:4),Dw,Dh,Bh,Bw,Bx,By,N
140 DATA "Label ONE","Label TWO","Label THREE"
150 READ L$(*)
160 !
170 GESCAPE CRT,3;D(*)
180 Dw=D(3)-D(1)
190 Dh=(D(4)-D(2))
200 Bw=128
210 Bh=Bw/2
220 Bx=(Dw-Bw)/2
230 By=(Dh-Bh)/2
240 !
250 ASSIGN @Btn TO WIDGET "PUSHBUTTON"
260 CONTROL @Btn;SET ("TITLE":" Example: PUSHBUTTON Widget")
270 CONTROL @Btn;SET ("SYSTEM MENU":"Quit")
280 CONTROL @Btn;SET ("X":Bx/2,"Y":By/2,"WIDTH":2.25*Bw,"HEIGHT":Bh)
290 CONTROL @Btn;SET ("LABELS":L$(*),"STATES":3)
300 !
310 ON EVENT @Btn,"ACTIVATED" GOSUB Handler
320 ON EVENT @Btn,"SYSTEM MENU" GOTO Finis
330 !
340 LOOP
350 WAIT FOR EVENT
360 END LOOP
370 STOP
380 !
390 Handler: !
400 STATUS @Btn;RETURN ("STATE":N)
410 DISP "State = "&VAL$(N)
420 RETURN
430 !
440 Finis: !
450 ASSIGN @Btn TO * ! Delete PUSHBUTTON widget
460 END