56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
|
|
{*******************************************************}
|
|
{ }
|
|
{ Turbo Pascal Version 6.0 }
|
|
{ Turbo Vision Unit }
|
|
{ }
|
|
{ Copyright (c) 1990 Borland International }
|
|
{ }
|
|
{*******************************************************}
|
|
|
|
unit TextView;
|
|
|
|
{$F+,O+,S-}
|
|
|
|
interface
|
|
|
|
uses Objects, Drivers, Views, Dos;
|
|
|
|
type
|
|
|
|
{ TTextDevice }
|
|
|
|
PTextDevice = ^TTextDevice;
|
|
TTextDevice = object(TScroller)
|
|
Dummy: Word;
|
|
function StrRead(var S: TextBuf): Byte; virtual;
|
|
procedure StrWrite(var S: TextBuf; Count: Byte); virtual;
|
|
end;
|
|
|
|
{ TTerminal }
|
|
|
|
PTerminalBuffer = ^TTerminalBuffer;
|
|
TTerminalBuffer = array[0..65534] of Char;
|
|
|
|
PTerminal = ^TTerminal;
|
|
TTerminal = object(TTextDevice)
|
|
BufSize: Word;
|
|
Buffer: PTerminalBuffer;
|
|
QueFront, QueBack: Word;
|
|
constructor Init(var Bounds:TRect; AHScrollBar, AVScrollBar: PScrollBar;
|
|
ABufSize: Word);
|
|
destructor Done; virtual;
|
|
procedure BufDec(var Val: Word);
|
|
procedure BufInc(var Val: Word);
|
|
function CalcWidth: Integer;
|
|
function CanInsert(Amount: Word): Boolean;
|
|
procedure Draw; virtual;
|
|
function NextLine(Pos:Word): Word;
|
|
function PrevLines(Pos:Word; Lines: Word): Word;
|
|
function StrRead(var S: TextBuf): Byte; virtual;
|
|
procedure StrWrite(var S: TextBuf; Count: Byte); virtual;
|
|
function QueEmpty: Boolean;
|
|
end;
|
|
|
|
procedure AssignDevice(var T: Text; Screen: PTextDevice);
|