[Back to TEXTWNDW SWAG index] [Back to Main SWAG index] [Original]

    unit windows;

    interface
    uses crt;

    procedure sh;
    procedure sn;
    procedure Drawbox(x1,y1,x2,y2: byte);
    procedure PopWindow(x1,y1,x2,y2: byte);
    procedure CloseWindow;
    procedure Drawshadowbox(x1,y1,x2,y2: byte);
    procedure shh;
    procedure snn;

    const
     color: boolean = true;

    type
     windowtype = record
                   x1,x2,y1,y2: byte;
                   scrsave: array[1..4096] of byte;
                  end;
     scrarray= array[1..4096] of byte;
     scrptr= ^scrarray;
    const
     screenbase: word =$B800;
    var
     numwindows: byte;
     ws: array[1..3] of windowtype;
     cursorpos: integer;
     fileabs: array[1..20] of word;
     searchdir: byte;
     searchwild: string;
     searchdate: string;
     searchuploader: string;
     searchsize: longint;
     searchtext: string;
     numindex: word;
     sortprimary,sortsecondary: byte;
     filelow: longint;
     numentries: byte;

    procedure textcolor(i: byte);
    procedure textbackground(i: byte);

    implementation

    procedure Textcolor(i: byte);
    begin;
     if color then crt.textcolor(i) else begin;
      case i of
        0: crt.textcolor(0);
        7: crt.textcolor(7);
       11..15: crt.textcolor(15);
      end;
     end;
    end;

    procedure TextBackGround(i: byte);
    begin;
     if color then crt.textbackground(i) else begin;
      case i of
       0..6: crt.textbackground(0);
       7: crt.textbackground(7);
      end;
     end;
    end;

    procedure sh;
    begin;
     if color then begin;
      textcolor(blue);
      textbackground(7);
     end else begin;
      textcolor(0);
      textbackground(7);
     end;
    end;

    procedure sn;
    begin;
     textcolor(white);
     textbackground(blue);
    end;

    procedure Drawbox(x1,y1,x2,y2: byte);
    var
     x,y: byte;
    begin;
     gotoxy(x1,y1);
     for x:=x1+1 to x2 do write('Í');
     gotoxy(x1,y2);
     for x:=x1+1 to x2 do write('Í');
     for y:=y1+1 to y2-1 do begin;
      gotoxy(x1,y);
      write('³');
      gotoxy(x2,y);
      write('³');
     end;
     gotoxy(x1,y1);
     write('Õ');
     gotoxy(x2,y1);
     write('¸');
     gotoxy(x1,y2);
     write('Ô');
     gotoxy(x2,y2);
     write('¾');
    end;

    procedure PopWindow(x1,y1,x2,y2: byte);
    begin;
     inc(numwindows);
     ws[numwindows].x1:=lo(windmin)+1;
     ws[numwindows].x2:=lo(windmax)+1;
     ws[numwindows].y1:=hi(windmin)+1;
     ws[numwindows].y2:=hi(windmax)+1;
     move(mem[screenbase:0000],ws[numwindows].scrsave,4096);
     window(1,1,80,25);
     drawbox(x1,y1,x2,y2);
     window(x1+1,y1+1,x2-1,y2-1);
    end;

    procedure CloseWindow;
    begin;
     move(ws[numwindows].scrsave,mem[screenbase:0000],4096);
     window(ws[numwindows].x1,ws[numwindows].y1,ws[numwindows].x2,ws[numwindows].y2);
     dec(numwindows);
    end;

    procedure Drawshadowbox(x1,y1,x2,y2: byte);
    var
     x,y: byte;
    begin;
     textbackground(0);
     textcolor(7);
     gotoxy(x1,y1);
     for x:=x1+1 to x2 do write('Í');
     gotoxy(x1,y2);
     for x:=x1+1 to x2 do write('Í');
     for y:=y1+1 to y2-1 do begin;
      gotoxy(x1,y);
      write('³');
      gotoxy(x2,y);
      write('³');
     end;
     gotoxy(x1,y1);
     write('Õ');
     gotoxy(x2,y1);
     write('¸');
     gotoxy(x1,y2);
     write('Ô');
     gotoxy(x2,y2);
     write('¾');
     textcolor(7);
     textbackground(0);
     for y:=y1+1 to y2+1 do begin;
      gotoxy(x2+1,y);
      write(' ');
     end;
     for x:=x1+1 to x2+1 do begin;
      gotoxy(x,y2+1);
      write(' ');
     end;
    end;

    procedure shh;
    begin;
     textcolor(0);
     textbackground(7);
    end;

    procedure snn;
    begin;
     textcolor(7);
     textbackground(0);
    end;

    end.

[Back to TEXTWNDW SWAG index] [Back to Main SWAG index] [Original]