2
$Id: wformat.pp,v 1.3 2003/10/04 13:33:43 florian Exp $
3
This file is part of the Free Component Library (FCL)
4
Copyright (c) 1999-2000 by the Free Pascal development team
6
See the file COPYING.FPC, included in this distribution,
7
for details about the copyright.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
**********************************************************************}
22
uses Classes,SysUtils;
25
TlistType = (ltNumbered,ltOrdered,ltDefinition);
27
TFormattingWriter = Class
31
Constructor Create (AStream : TStream); Virtual;
32
// To be overridden by descendents
33
Function EscapeText (AText : String) : String; Virtual;
35
Procedure Dump(Const AText : String);
36
Procedure DumpLn(Const AText : String);
37
// Formatted write. Calls escapetext.
38
Procedure Write(Const AText : String);
39
Procedure WriteFmt(Const Fmt : String; Args : Array of const);
41
Procedure DocumentStart(Const Title : String); Virtual;
42
Procedure DocumentEnd; Virtual;
44
Procedure Header(Alevel : Integer; Msg : String);
45
Procedure HeaderStart(Alevel : Integer); virtual;
46
Procedure HeaderEnd(Alevel : Integer); virtual;
47
// Basic line formatting.
48
Procedure ParagraphStart; virtual;
49
Procedure ParagraphEnd; virtual;
50
Procedure LineBreak; virtual;
51
Procedure Rule; virtual;
53
Procedure BoldStart; Virtual;
54
Procedure BoldEnd;Virtual;
55
Procedure ItalicStart;Virtual;
56
Procedure ItalicEnd;Virtual;
57
Procedure UnderlineStart;Virtual;
58
Procedure UnderlineEnd;Virtual;
60
Procedure PreformatStart; virtual;
61
Procedure PreformatEnd; virtual;
63
Procedure TableStart( NoCols: Integer; Border : Boolean); virtual;
64
Procedure TableEnd; virtual;
65
Procedure RowStart; virtual;
66
Procedure RowEnd; virtual;
68
Procedure CellStart; virtual;
69
Procedure CellEnd; virtual;
71
Procedure HeaderCellStart; virtual;
72
Procedure HeaderCellEnd; virtual;
73
Procedure HeaderCellNext;
75
Procedure ListStart(ListType : TListType); Virtual;
76
Procedure ListEnd(ListType : TListType); Virtual;
77
Procedure ListItemStart; Virtual;
78
Procedure ListItemEnd; Virtual;
79
Procedure ListItem(Const AText : String);
80
Procedure DefinitionItem(Const Aname,AText : String); Virtual;
81
Procedure WriteList(ListType : TListType; List : TStrings);
83
Property Stream : TStream Read FStream;
87
LineFeed = LineEnding;
93
procedure TFormattingWriter.BoldEnd;
97
procedure TFormattingWriter.BoldStart;
101
procedure TFormattingWriter.CellEnd;
105
procedure TFormattingWriter.CellStart;
109
procedure TFormattingWriter.CellNext;
115
constructor TFormattingWriter.Create(AStream: TStream);
120
procedure TFormattingWriter.DefinitionItem(const Aname, AText: String);
125
procedure TFormattingWriter.DocumentEnd;
130
procedure TFormattingWriter.DocumentStart(const Title: String);
135
procedure TFormattingWriter.Dump(const AText: String);
137
FStream.WriteBuffer(Atext[1],Length(AText));
140
procedure TFormattingWriter.DumpLn(const AText: String);
147
Function TFormattingWriter.EscapeText(AText: String) : String;
152
procedure TFormattingWriter.Header(Alevel: Integer; Msg: String);
159
procedure TFormattingWriter.HeaderCellEnd;
164
procedure TFormattingWriter.HeaderCellStart;
169
procedure TFormattingWriter.HeaderCellNext;
175
procedure TFormattingWriter.HeaderEnd(Alevel: Integer);
179
procedure TFormattingWriter.HeaderStart(Alevel: Integer);
184
procedure TFormattingWriter.ItalicEnd;
189
procedure TFormattingWriter.ItalicStart;
194
procedure TFormattingWriter.LineBreak;
198
procedure TFormattingWriter.ListEnd(ListType: TListType);
203
procedure TFormattingWriter.ListItem(const AText: String);
210
procedure TFormattingWriter.ListItemEnd;
215
procedure TFormattingWriter.ListItemStart;
220
procedure TFormattingWriter.ListStart(ListType: TListType);
225
procedure TFormattingWriter.ParagraphEnd;
229
procedure TFormattingWriter.ParagraphStart;
233
procedure TFormattingWriter.PreformatEnd;
237
procedure TFormattingWriter.PreformatStart;
241
procedure TFormattingWriter.RowEnd;
245
procedure TFormattingWriter.RowStart;
249
procedure TFormattingWriter.RowNext;
255
procedure TFormattingWriter.Rule;
259
procedure TFormattingWriter.TableStart(NoCols: Integer; Border: Boolean);
263
procedure TFormattingWriter.TableEnd;
267
procedure TFormattingWriter.UnderlineEnd;
271
procedure TFormattingWriter.UnderlineStart;
275
procedure TFormattingWriter.Write(const AText: String);
277
Dump(EscapeText(Atext));
280
procedure TFormattingWriter.WriteFmt(const Fmt: String; Args: array of const);
282
Write(Format(Fmt,Args));
285
procedure TFormattingWriter.WriteList(ListType: TListType; List: TStrings);
294
For I:=0 to List.Count-1 do
295
if ListType<>ltDefinition then
316
Revision 1.3 2003/10/04 13:33:43 florian
317
* system unit has a LineEnding
319
Revision 1.2 2003/10/01 21:05:39 michael
320
+ Stream property is now protected
322
Revision 1.1 2003/10/01 20:49:29 michael
323
+ Initial implementation