home *** CD-ROM | disk | FTP | other *** search
-
- (*
- * border.inc - draw a border around a window
- *
- * S.H.Smith, 14-Nov-87
- *
- *)
-
- type
- border_styles = (blank_border, single_border,
- double_border, mixed_border,
- taildouble_border,
- solid_border, evensolid_border,
- thinsolid_border, lohatch_border,
- medhatch_border, hihatch_border);
-
- const
- border_table: array[blank_border..hihatch_border] of string[8] =
- (' ', { blank } '┌─┐││└─┘', { single }
- '╔═╗║║╚═╝', { double } '╒═╕││╘═╛', { mixed }
- '╠═╗║║╚═╝', { taildouble}
- '████████', { solid } '█▀████▄█', { evensolid }
- '▐▀▌▐▌▐▄▌', { thinsolid } '░░░░░░░░', { lohatch }
- '▒▒▒▒▒▒▒▒', { medhatch } '▓▓▓▓▓▓▓▓'); { hihatch }
-
- procedure display_border(topx,topy,botx,boty: integer;
- style: border_styles);
- (* display a window border. enter with desired color settingx*)
- var
- left: string[80];
- right: string[80];
- top: string[80];
- bottom: string[80];
- width: integer;
- b: string[8];
- i,j: integer;
-
- const
- topleft = 1; {border character locations in border strings}
- tophor = 2;
- topright = 3;
- leftver = 4;
- rightver = 5;
- botleft = 6;
- bothor = 7;
- botright = 8;
-
- filler = ^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J^@^H^J;
-
- begin
- b := border_table[style];
- width := botx - topx - 2;
-
- (* top and bottom of frame *)
- top := b[topleft] + make_string(b[tophor], width) + b[topright];
- bottom := b[botleft] + make_string(b[bothor], width) + b[botright];
-
- (* sides of frame *)
- left := filler + filler;
- right := left;
- j := 1;
- for i := 2 to boty - topy do
- begin
- left[j]:= b[leftver];
- right[j]:= b[rightver];
- j := j + 3;
- end;
- left[0]:= chr (j - 1);
- right[0]:= left[0];
-
- (* draw the frame *)
- gotoxy(topx,topy); disp(top);
- gotoxy(topx,topy+1); disp(left);
- gotoxy(botx-1,topy+1); disp(right);
- gotoxy(topx,boty); disp(bottom);
- end;
-