'=========================================================================== ' Subject: TEXT WINDOW DRAWING ROUTINES Date: 06-28-00 (18:48) ' Author: Edward L. Blake Code: QB, QBasic, PDS ' Origin: blakee@cyanwerks.com Packet: TEXT.ABC '=========================================================================== ' Copyright 1995-1996 Edward L. Blake ' Old Text Based Window Drawing Routines. ' A bunch of different types of windows can be drawn with ' this library. ' Email: blakee@cyanwerks.com ' ' ' DECLARE SUB TXTIMA (X!, Y!, A$) DECLARE SUB BCKGNDB () DECLARE SUB BCKGNDA () DECLARE SUB CHDIALOG (X!, Y!, A$) DECLARE SUB CHBUTTON (X!, Y!, A$) DECLARE SUB BCKGND (A$) DECLARE SUB CHWIN (X1!, Y1!, X2!, Y2!) DECLARE SUB CHWINB (X1!, Y1!, X2!, Y2!) DECLARE SUB CHWINC (X1!, Y1!, X2!, Y2!) DECLARE SUB CHWIND (X1!, Y1!, X2!, Y2!) DECLARE SUB CHWINE (X1!, Y1!, X2!, Y2!) DECLARE SUB CHWINF (X1!, Y1!, X2!, Y2!) DECLARE SUB CHWING (X1!, Y1!, X2!, Y2!) SUB BCKGND (A$) FOR I = 1 TO 24 LOCATE I, 1: PRINT STRING$(80, A$); NEXT I LOCATE 25, 1: PRINT STRING$(80, A$); END SUB SUB BCKGNDA FOR I = 1 TO 24 LOCATE I, 1: PRINT STRING$(80, 177); NEXT I LOCATE 25, 1: PRINT STRING$(80, 177); END SUB SUB BCKGNDB LOCATE 1, 1: PRINT STRING$(80, 219); LOCATE 2, 1: PRINT STRING$(80, 219); LOCATE 3, 1: PRINT STRING$(80, 219); LOCATE 4, 1: PRINT STRING$(80, 219); LOCATE 5, 1: PRINT STRING$(80, 178); LOCATE 6, 1: PRINT STRING$(80, 178); LOCATE 7, 1: PRINT STRING$(80, 178); LOCATE 8, 1: PRINT STRING$(80, 177); LOCATE 9, 1: PRINT STRING$(80, 177); LOCATE 10, 1: PRINT STRING$(80, 176); LOCATE 11, 1: PRINT STRING$(80, 32); LOCATE 12, 1: PRINT STRING$(80, 32); LOCATE 13, 1: PRINT STRING$(80, 32); LOCATE 14, 1: PRINT STRING$(80, 32); LOCATE 15, 1: PRINT STRING$(80, 32); LOCATE 16, 1: PRINT STRING$(80, 176); LOCATE 17, 1: PRINT STRING$(80, 177); LOCATE 18, 1: PRINT STRING$(80, 177); LOCATE 19, 1: PRINT STRING$(80, 178); LOCATE 20, 1: PRINT STRING$(80, 178); LOCATE 21, 1: PRINT STRING$(80, 178); LOCATE 22, 1: PRINT STRING$(80, 219); LOCATE 23, 1: PRINT STRING$(80, 219); LOCATE 24, 1: PRINT STRING$(80, 219); LOCATE 25, 1: PRINT STRING$(80, 219); END SUB SUB CHBUTTON (X, Y, A$) Y2 = Y + 2 X2 = X + LEN(A$) + 1 FOR I = Y TO Y2 LOCATE I, X: PRINT STRING$(X2 - X, 32); NEXT I LOCATE Y, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y2, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y + 1, X: PRINT CHR$(179); LOCATE Y + 1, X2: PRINT CHR$(179); LOCATE Y, X: PRINT CHR$(218); LOCATE Y, X2: PRINT CHR$(191); LOCATE Y2, X: PRINT CHR$(192); LOCATE Y2, X2: PRINT CHR$(217); LOCATE Y + 1, X + 1: PRINT A$; END SUB SUB CHDIALOG (X, Y, A$) Y2 = Y + 4 X2 = X + (LEN(A$) * 2) + 1 FOR I = Y TO Y2 LOCATE I, X: PRINT STRING$(X2 - X, 32); NEXT I LOCATE Y, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y + 2, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y2, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y, X: PRINT CHR$(218); LOCATE Y, X2: PRINT CHR$(191); LOCATE Y2, X: PRINT CHR$(192); LOCATE Y2, X2: PRINT CHR$(217); FOR I = Y + 1 TO Y2 - 1 LOCATE I, X: PRINT CHR$(179); LOCATE I, X2: PRINT CHR$(179); NEXT I LOCATE Y + 1, X + 1: PRINT SPACE$(LEN(A$) / 2) + A$ + SPACE$(LEN(A$) / 2 - 1); LOCATE Y + 3, X + 1: PRINT SPACE$(((X2 - X - 1) / 2) - 3) + "[ENTER]"; DO UNTIL I$ = CHR$(13) I$ = INKEY$ LOOP FOR I = Y TO Y2 LOCATE I, X: PRINT STRING$(X2 - X + 1, 32); NEXT I END SUB SUB CHWIN (X1, Y1, X2, Y2) FOR I = Y1 TO Y2 LOCATE I, X1: PRINT STRING$(X2 - X1, 32); NEXT I LOCATE Y1, X1 + 1: PRINT STRING$(X2 - X1 - 1, 196); LOCATE Y2, X1 + 1: PRINT STRING$(X2 - X1 - 1, 196); FOR I = Y1 + 1 TO Y2 - 1 LOCATE I, X1: PRINT CHR$(179); LOCATE I, X2: PRINT CHR$(179); NEXT I LOCATE Y1, X1: PRINT CHR$(218); LOCATE Y1, X2: PRINT CHR$(191); LOCATE Y2, X1: PRINT CHR$(192); LOCATE Y2, X2: PRINT CHR$(217); END SUB SUB CHWINB (X1, Y1, X2, Y2) FOR I = Y1 TO Y2 LOCATE I, X1: PRINT STRING$(X2 - X1, 32); NEXT I LOCATE Y1, X1 + 1: PRINT STRING$(X2 - X1 - 1, 205); LOCATE Y2, X1 + 1: PRINT STRING$(X2 - X1 - 1, 205); FOR I = Y1 + 1 TO Y2 - 1 LOCATE I, X1: PRINT CHR$(186); LOCATE I, X2: PRINT CHR$(186); NEXT I LOCATE Y1, X1: PRINT CHR$(201); LOCATE Y1, X2: PRINT CHR$(187); LOCATE Y2, X1: PRINT CHR$(200); LOCATE Y2, X2: PRINT CHR$(188); END SUB SUB CHWINC (X1, Y1, X2, Y2) FOR I = Y1 TO Y2 LOCATE I, X1: PRINT STRING$(X2 - X1, 32); NEXT I LOCATE Y1, X1: PRINT STRING$(X2 - X1, 223); LOCATE Y2, X1: PRINT STRING$(X2 - X1, 220); FOR I = Y1 TO Y2 LOCATE I, X1: PRINT CHR$(219); LOCATE I, X2: PRINT CHR$(219); NEXT I END SUB SUB CHWIND (X1, Y1, X2, Y2) FOR I = Y1 TO Y2 LOCATE I, X1: PRINT STRING$(X2 - X1, 32); NEXT I LOCATE Y1, X1 + 1: PRINT STRING$(X2 - X1 - 1, 223); LOCATE Y2, X1 + 1: PRINT STRING$(X2 - X1 - 1, 220); FOR I = Y1 TO Y2 LOCATE I, X1: PRINT CHR$(222); LOCATE I, X2: PRINT CHR$(221); NEXT I END SUB SUB CHWINE (X1, Y1, X2, Y2) FOR I = Y1 TO Y2 LOCATE I, X1: PRINT STRING$(X2 - X1, 32); NEXT I LOCATE Y1, X1 + 1: PRINT STRING$(X2 - X1 - 1, 196); LOCATE Y2, X1 + 1: PRINT STRING$(X2 - X1 - 1, 196); FOR I = Y1 + 1 TO Y2 - 1 LOCATE I, X1: PRINT CHR$(186); LOCATE I, X2: PRINT CHR$(186); NEXT I LOCATE Y1, X1: PRINT CHR$(214); LOCATE Y1, X2: PRINT CHR$(183); LOCATE Y2, X1: PRINT CHR$(211); LOCATE Y2, X2: PRINT CHR$(189); END SUB SUB CHWINF (X1, Y1, X2, Y2) FOR I = Y1 TO Y2 LOCATE I, X1: PRINT STRING$(X2 - X1, 32); NEXT I LOCATE Y1, X1 + 1: PRINT STRING$(X2 - X1 - 1, 205); LOCATE Y2, X1 + 1: PRINT STRING$(X2 - X1 - 1, 205); FOR I = Y1 + 1 TO Y2 - 1 LOCATE I, X1: PRINT CHR$(179); LOCATE I, X2: PRINT CHR$(179); NEXT I LOCATE Y1, X1: PRINT CHR$(213); LOCATE Y1, X2: PRINT CHR$(184); LOCATE Y2, X1: PRINT CHR$(212); LOCATE Y2, X2: PRINT CHR$(190); END SUB SUB CLBUTTON (X, Y, A$) Y2 = Y + 2 X2 = X + LEN(A$) + 1 COLOR 15, 7 FOR I = Y TO Y2 LOCATE I, X: PRINT STRING$(X2 - X, 32); NEXT I LOCATE Y, X: PRINT CHR$(218); LOCATE Y2, X: PRINT CHR$(192); LOCATE Y, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y + 1, X: PRINT CHR$(179); COLOR 0, 7 LOCATE Y2, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y + 1, X2: PRINT CHR$(179); LOCATE Y, X2: PRINT CHR$(191); LOCATE Y2, X2: PRINT CHR$(217); LOCATE Y + 1, X + 1: PRINT A$; END SUB SUB CLBUTTONPS (X, Y, A$) Y2 = Y + 2 X2 = X + LEN(A$) + 1 COLOR 0, 7 FOR I = Y TO Y2 LOCATE I, X: PRINT STRING$(X2 - X, 32); NEXT I LOCATE Y, X: PRINT CHR$(218); LOCATE Y2, X: PRINT CHR$(192); LOCATE Y, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y + 1, X: PRINT CHR$(179); COLOR 15, 7 LOCATE Y2, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y + 1, X2: PRINT CHR$(179); LOCATE Y, X2: PRINT CHR$(191); LOCATE Y2, X2: PRINT CHR$(217); LOCATE Y + 1, X + 1: PRINT A$; T1 = TIMER DO IF TIMER > T1 + .2 THEN EXIT DO LOOP Y2 = Y + 2 X2 = X + LEN(A$) + 1 COLOR 15, 7 FOR I = Y TO Y2 LOCATE I, X: PRINT STRING$(X2 - X, 32); NEXT I LOCATE Y, X: PRINT CHR$(218); LOCATE Y2, X: PRINT CHR$(192); LOCATE Y, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y + 1, X: PRINT CHR$(179); COLOR 0, 7 LOCATE Y2, X + 1: PRINT STRING$(X2 - X - 1, 196); LOCATE Y + 1, X2: PRINT CHR$(179); LOCATE Y, X2: PRINT CHR$(191); LOCATE Y2, X2: PRINT CHR$(217); LOCATE Y + 1, X + 1: PRINT A$; T1 = TIMER DO IF TIMER > T1 + .05 THEN EXIT DO LOOP END SUB SUB TXTIMA (X, Y, A$) OPEN A$ FOR INPUT AS #1 DO UNTIL EOF(1) LINE INPUT #1, B$ LOCATE Y + I, X: PRINT B$; I = I + 1 LOOP CLOSE #1 END SUB