PTLib
Version 2.14.3
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
html.h
Go to the documentation of this file.
1
/*
2
* html.h
3
*
4
* HyperText Markup Language stream classes.
5
*
6
* Portable Windows Library
7
*
8
* Copyright (c) 1993-2002 Equivalence Pty. Ltd.
9
*
10
* The contents of this file are subject to the Mozilla Public License
11
* Version 1.0 (the "License"); you may not use this file except in
12
* compliance with the License. You may obtain a copy of the License at
13
* http://www.mozilla.org/MPL/
14
*
15
* Software distributed under the License is distributed on an "AS IS"
16
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17
* the License for the specific language governing rights and limitations
18
* under the License.
19
*
20
* The Original Code is Portable Windows Library.
21
*
22
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23
*
24
* Contributor(s): ______________________________________.
25
*
26
* $Revision: 31255 $
27
* $Author: rjongbloed $
28
* $Date: 2014-01-23 12:50:37 +1100 (Thu, 23 Jan 2014) $
29
*/
30
31
#ifndef PTLIB_HTML_H
32
#define PTLIB_HTML_H
33
34
#ifdef P_USE_PRAGMA
35
#pragma interface
36
#endif
37
38
39
41
// PHTML
42
49
class
PHTML
:
public
PStringStream
50
{
51
PCLASSINFO
(
PHTML
,
PStringStream
)
52
53
public
:
54
enum
ElementInSet
{
55
InHTML
,
56
InHead
,
57
InBody
,
58
InTitle
,
59
InHeading
,
60
InDivision
,
61
InPreFormat
,
62
InAnchor
,
63
InNote
,
64
InAddress
,
65
InBlockQuote
,
66
InCredit
,
67
InBold
,
68
InItalic
,
69
InTeleType
,
70
InUnderline
,
71
InStrikeThrough
,
72
InBig
,
73
InSmall
,
74
InSubscript
,
75
InSuperscript
,
76
InEmphasis
,
77
InCite
,
78
InStrong
,
79
InCode
,
80
InSample
,
81
InKeyboard
,
82
InVariable
,
83
InDefinition
,
84
InQuote
,
85
InAuthor
,
86
InPerson
,
87
InAcronym
,
88
InAbbrev
,
89
InInsertedText
,
90
InDeletedText
,
91
InList
,
92
InListHeading
,
93
InDefinitionTerm
,
94
InTable
,
95
InForm
,
96
InSelect
,
97
InTextArea
,
98
NumElementsInSet
99
};
100
105
PHTML
(
106
ElementInSet
initialState =
NumElementsInSet
107
);
108
PHTML
(
109
const
char
* cstr
110
);
111
PHTML
(
112
const
PString
& str
113
);
114
115
~PHTML
();
116
121
PHTML
&
operator=
(
122
const
PHTML
& html
123
) {
AssignContents
(html);
return
*
this
; }
124
PHTML
&
operator=
(
125
const
PString
& str
126
) {
AssignContents
(str);
return
*
this
; }
127
PHTML
&
operator=
(
128
const
char
* cstr
129
) {
AssignContents
(
PString
(cstr));
return
*
this
; }
130
PHTML
&
operator=
(
131
char
ch
132
) {
AssignContents
(
PString
(ch));
return
*
this
; }
133
134
135
// New functions for class.
136
PBoolean
Is
(
ElementInSet
elmt)
const
;
137
void
Set
(
ElementInSet
elmt);
138
void
Clr
(
ElementInSet
elmt);
139
void
Toggle
(
ElementInSet
elmt);
140
141
142
class
Escaped
{
143
public
:
144
Escaped
(
const
char
* str) : m_str(str) { }
145
private
:
146
void
Output(ostream & strm)
const
;
147
const
char
* m_str;
148
friend
ostream &
operator<<
(ostream & strm,
const
Escaped
& e) { e.Output(strm);
return
strm; }
149
};
150
static
PString
Escape
(
const
char
* str);
151
152
class
Element
{
153
public
:
154
virtual
~Element
() {}
155
protected
:
156
enum
OptionalCRLF
{
NoCRLF
,
OpenCRLF
,
CloseCRLF
,
BothCRLF
};
157
Element
(
158
const
char
* nam,
159
const
char
* att,
160
ElementInSet
elmt,
161
ElementInSet
req,
162
OptionalCRLF
opt
163
) : name(nam), attr(att), inElement(elmt), reqElement(req), crlf(opt) { }
164
virtual
void
Output
(
PHTML
& html)
const
;
165
virtual
void
AddAttr
(
PHTML
& html)
const
;
166
private
:
167
PString
name;
168
PString
attr;
169
ElementInSet
inElement;
170
ElementInSet
reqElement;
171
OptionalCRLF
crlf;
172
friend
ostream &
operator<<
(ostream & strm,
const
Element
& elmt)
173
{ elmt.
Output
((
PHTML
&)strm);
return
strm; }
174
};
175
176
class
HTML
:
public
Element
{
177
public
:
178
HTML
(
const
char
* attr = NULL);
179
virtual
~HTML
() {}
180
};
181
182
class
Head
:
public
Element
{
183
public
:
184
Head
();
185
virtual
~Head
() {}
186
protected
:
187
virtual
void
Output
(
PHTML
& html)
const
;
188
};
189
190
class
Body
:
public
Element
{
191
public
:
192
Body
(
const
char
* attr = NULL);
193
virtual
~Body
() {}
194
protected
:
195
virtual
void
Output
(
PHTML
& html)
const
;
196
};
197
198
class
Title
:
public
Element
{
199
public
:
200
Title
();
201
Title
(
const
char
* titleCStr);
202
Title
(
const
PString
& titleStr);
203
virtual
~Title
() {}
204
protected
:
205
virtual
void
Output
(
PHTML
& html)
const
;
206
private
:
207
const
char
* titleString;
208
};
209
210
class
Banner
:
public
Element
{
211
public
:
212
Banner
(
const
char
* attr = NULL);
213
virtual
~Banner
() {}
214
};
215
216
class
Division
:
public
Element
{
217
public
:
218
Division
(
const
char
* attr = NULL);
219
virtual
~Division
() {}
220
};
221
222
class
Heading
:
public
Element
{
223
public
:
224
Heading
(
int
number,
225
int
sequence = 0,
226
int
skip = 0,
227
const
char
* attr = NULL);
228
Heading
(
int
number,
229
const
char
* image,
230
int
sequence = 0,
231
int
skip = 0,
232
const
char
* attr = NULL);
233
Heading
(
int
number,
234
const
PString
& imageStr,
235
int
sequence = 0,
236
int
skip = 0,
237
const
char
* attr = NULL);
238
virtual
~Heading
() {}
239
protected
:
240
virtual
void
AddAttr
(
PHTML
& html)
const
;
241
private
:
242
int
num;
243
const
char
* srcString;
244
int
seqNum, skipSeq;
245
};
246
247
class
BreakLine
:
public
Element
{
248
public
:
249
BreakLine
(
const
char
* attr = NULL);
250
virtual
~BreakLine
() {}
251
};
252
253
class
Paragraph
:
public
Element
{
254
public
:
255
Paragraph
(
const
char
* attr = NULL);
256
virtual
~Paragraph
() {}
257
};
258
259
class
PreFormat
:
public
Element
{
260
public
:
261
PreFormat
(
int
widthInChars = 0,
262
const
char
* attr = NULL);
263
virtual
~PreFormat
() {}
264
protected
:
265
virtual
void
AddAttr
(
PHTML
& html)
const
;
266
private
:
267
int
width;
268
};
269
270
class
HotLink
:
public
Element
{
271
public
:
272
HotLink
(
const
char
* href = NULL,
const
char
* attr = NULL);
273
virtual
~HotLink
() {}
274
protected
:
275
virtual
void
AddAttr
(
PHTML
& html)
const
;
276
private
:
277
const
char
* hrefString;
278
};
279
280
class
Target
:
public
Element
{
281
public
:
282
Target
(
const
char
* name = NULL,
const
char
* attr = NULL);
283
virtual
~Target
() {}
284
protected
:
285
virtual
void
AddAttr
(
PHTML
& html)
const
;
286
private
:
287
const
char
* nameString;
288
};
289
290
class
ImageElement
:
public
Element
{
291
protected
:
292
ImageElement
(
const
char
* nam,
293
const
char
* attr,
294
ElementInSet
elmt,
295
ElementInSet
req,
296
OptionalCRLF
opt,
297
const
char
* image);
298
virtual
~ImageElement
() {}
299
virtual
void
AddAttr
(
PHTML
& html)
const
;
300
const
char
*
srcString
;
301
};
302
303
class
Image
:
public
ImageElement
{
304
public
:
305
Image
(
const
char
* src,
306
int
width = 0,
307
int
height = 0,
308
const
char
* attr = NULL);
309
Image
(
const
char
* src,
310
const
char
* alt,
311
int
width = 0,
312
int
height = 0,
313
const
char
* attr = NULL);
314
virtual
~Image
() {}
315
protected
:
316
virtual
void
AddAttr
(
PHTML
& html)
const
;
317
private
:
318
const
char
* altString;
319
int
width, height;
320
};
321
322
class
HRule
:
public
ImageElement
{
323
public
:
324
HRule
(
const
char
* image = NULL,
const
char
* attr = NULL);
325
virtual
~HRule
() {}
326
};
327
328
class
Note
:
public
ImageElement
{
329
public
:
330
Note
(
const
char
* image = NULL,
const
char
* attr = NULL);
331
virtual
~Note
() {}
332
};
333
334
class
Address
:
public
Element
{
335
public
:
336
Address
(
const
char
* attr = NULL);
337
virtual
~Address
() {}
338
};
339
340
class
BlockQuote
:
public
Element
{
341
public
:
342
BlockQuote
(
const
char
* attr = NULL);
343
virtual
~BlockQuote
() {}
344
};
345
346
class
Credit
:
public
Element
{
347
public
:
348
Credit
(
const
char
* attr = NULL);
349
virtual
~Credit
() {}
350
};
351
352
class
SetTab
:
public
Element
{
353
public
:
354
SetTab
(
const
char
*
id
,
const
char
* attr = NULL);
355
virtual
~SetTab
() {}
356
protected
:
357
virtual
void
AddAttr
(
PHTML
& html)
const
;
358
private
:
359
const
char
* ident;
360
};
361
362
class
Tab
:
public
Element
{
363
public
:
364
Tab
(
int
indent,
const
char
* attr = NULL);
365
Tab
(
const
char
*
id
,
const
char
* attr = NULL);
366
virtual
~Tab
() {}
367
protected
:
368
virtual
void
AddAttr
(
PHTML
& html)
const
;
369
private
:
370
const
char
* ident;
371
int
indentSize;
372
};
373
374
375
class
Bold
:
public
Element
{
376
public
:
Bold
() :
Element
(
"B"
, NULL,
InBold
,
InBody
,
NoCRLF
) { }
377
virtual
~Bold
() {}
378
};
379
class
Italic
:
public
Element
{
380
public
:
381
Italic
()
382
:
Element
(
"I"
, NULL,
InItalic
,
InBody
,
NoCRLF
) { }
383
virtual
~Italic
() {}
384
};
385
class
TeleType
:
public
Element
{
386
public
:
387
TeleType
()
388
:
Element
(
"TT"
, NULL,
InTeleType
,
InBody
,
NoCRLF
) { }
389
virtual
~TeleType
() {}
390
};
391
class
Underline
:
public
Element
{
392
public
:
393
Underline
()
394
:
Element
(
"U"
, NULL,
InUnderline
,
InBody
,
NoCRLF
) { }
395
virtual
~Underline
() {}
396
};
397
class
StrikeThrough
:
public
Element
{
398
public
:
399
StrikeThrough
()
400
:
Element
(
"S"
, NULL,
InStrikeThrough
,
InBody
,
NoCRLF
) { }
401
virtual
~StrikeThrough
() {}
402
};
403
class
Big
:
public
Element
{
404
public
:
405
Big
()
406
:
Element
(
"BIG"
, NULL,
InBig
,
InBody
,
NoCRLF
) { }
407
virtual
~Big
() {}
408
};
409
class
Small
:
public
Element
{
410
public
:
411
Small
()
412
:
Element
(
"SMALL"
, NULL,
InSmall
,
InBody
,
NoCRLF
) { }
413
virtual
~Small
() {}
414
};
415
class
Subscript
:
public
Element
{
416
public
:
417
Subscript
()
418
:
Element
(
"SUB"
, NULL,
InSubscript
,
InBody
,
NoCRLF
) { }
419
virtual
~Subscript
() {}
420
};
421
class
Superscript
:
public
Element
{
422
public
:
423
Superscript
()
424
:
Element
(
"SUP"
, NULL,
InSuperscript
,
InBody
,
NoCRLF
) { }
425
virtual
~Superscript
() {}
426
};
427
class
Emphasis
:
public
Element
{
428
public
:
429
Emphasis
()
430
:
Element
(
"EM"
, NULL,
InEmphasis
,
InBody
,
NoCRLF
) { }
431
virtual
~Emphasis
() {}
432
};
433
class
Cite
:
public
Element
{
434
public
:
435
Cite
()
436
:
Element
(
"CITE"
, NULL,
InCite
,
InBody
,
NoCRLF
) { }
437
virtual
~Cite
() {}
438
};
439
class
Strong
:
public
Element
{
440
public
:
441
Strong
()
442
:
Element
(
"STRONG"
, NULL,
InStrong
,
InBody
,
NoCRLF
) { }
443
virtual
~Strong
() {}
444
};
445
class
Code
:
public
Element
{
446
public
:
447
Code
()
448
:
Element
(
"CODE"
, NULL,
InCode
,
InBody
,
NoCRLF
) { }
449
virtual
~Code
() {}
450
};
451
class
Sample
:
public
Element
{
452
public
:
453
Sample
()
454
:
Element
(
"SAMP"
, NULL,
InSample
,
InBody
,
NoCRLF
) { }
455
virtual
~Sample
() {}
456
};
457
class
Keyboard
:
public
Element
{
458
public
:
459
Keyboard
()
460
:
Element
(
"KBD"
, NULL,
InKeyboard
,
InBody
,
NoCRLF
) { }
461
virtual
~Keyboard
() {}
462
};
463
class
Variable
:
public
Element
{
464
public
:
465
Variable
()
466
:
Element
(
"VAR"
, NULL,
InVariable
,
InBody
,
NoCRLF
) { }
467
virtual
~Variable
() {}
468
};
469
class
Definition
:
public
Element
{
470
public
:
471
Definition
()
472
:
Element
(
"DFN"
, NULL,
InDefinition
,
InBody
,
NoCRLF
) { }
473
virtual
~Definition
() {}
474
};
475
class
Quote
:
public
Element
{
476
public
:
477
Quote
()
478
:
Element
(
"Q"
, NULL,
InQuote
,
InBody
,
NoCRLF
) { }
479
virtual
~Quote
() {}
480
};
481
class
Author
:
public
Element
{
482
public
:
483
Author
()
484
:
Element
(
"AU"
, NULL,
InAuthor
,
InBody
,
NoCRLF
) { }
485
virtual
~Author
() {}
486
};
487
class
Person
:
public
Element
{
488
public
:
489
Person
()
490
:
Element
(
"PERSON"
, NULL,
InPerson
,
InBody
,
NoCRLF
) { }
491
virtual
~Person
() {}
492
};
493
class
Acronym
:
public
Element
{
494
public
:
495
Acronym
()
496
:
Element
(
"ACRONYM"
, NULL,
InAcronym
,
InBody
,
NoCRLF
) { }
497
virtual
~Acronym
() {}
498
};
499
class
Abbrev
:
public
Element
{
500
public
:
501
Abbrev
()
502
:
Element
(
"ABBREV"
, NULL,
InAbbrev
,
InBody
,
NoCRLF
) { }
503
virtual
~Abbrev
() {}
504
};
505
class
InsertedText
:
public
Element
{
506
public
:
507
InsertedText
()
508
:
Element
(
"INS"
, NULL,
InInsertedText
,
InBody
,
NoCRLF
) { }
509
virtual
~InsertedText
() {}
510
};
511
class
DeletedText
:
public
Element
{
512
public
:
513
DeletedText
()
514
:
Element
(
"DEL"
, NULL,
InDeletedText
,
InBody
,
NoCRLF
) { }
515
public
:
516
virtual
~DeletedText
() {}
517
};
518
519
class
SimpleList
:
public
Element
{
520
public
:
521
SimpleList
(
const
char
* attr = NULL);
522
virtual
~SimpleList
() {}
523
protected
:
524
virtual
void
AddAttr
(
PHTML
& html)
const
;
525
};
526
527
class
BulletList
:
public
Element
{
528
public
:
529
BulletList
(
const
char
* attr = NULL);
530
virtual
~BulletList
() {}
531
};
532
533
class
OrderedList
:
public
Element
{
534
public
:
535
OrderedList
(
int
seqNum = 0,
const
char
* attr = NULL);
536
virtual
~OrderedList
() {}
537
protected
:
538
virtual
void
AddAttr
(
PHTML
& html)
const
;
539
private
:
540
int
sequenceNum;
541
};
542
543
class
DefinitionList
:
public
Element
{
544
public
:
545
DefinitionList
(
const
char
* attr = NULL);
546
virtual
~DefinitionList
() {}
547
};
548
549
class
ListHeading
:
public
Element
{
550
public
:
551
ListHeading
(
const
char
* attr = NULL);
552
virtual
~ListHeading
() {}
553
};
554
555
class
ListItem
:
public
Element
{
556
public
:
557
ListItem
(
int
skip = 0,
const
char
* attr = NULL);
558
virtual
~ListItem
() {}
559
protected
:
560
virtual
void
AddAttr
(
PHTML
& html)
const
;
561
private
:
562
int
skipSeq;
563
};
564
565
class
DefinitionTerm
:
public
Element
{
566
public
:
567
DefinitionTerm
(
const
char
* attr = NULL);
568
virtual
~DefinitionTerm
() {}
569
protected
:
570
virtual
void
Output
(
PHTML
& html)
const
;
571
};
572
573
class
DefinitionItem
:
public
Element
{
574
public
:
575
DefinitionItem
(
const
char
* attr = NULL);
576
virtual
~DefinitionItem
() {}
577
protected
:
578
virtual
void
Output
(
PHTML
& html)
const
;
579
};
580
581
582
enum
TableAttr
{
583
NoWrap
,
584
Border1
,
585
Border2
,
586
NoPadding
,
587
CellPad1
,
588
CellPad2
,
589
CellPad4
,
590
CellPad8
,
591
NoCellSpacing
,
592
CellSpace1
,
593
CellSpace2
,
594
CellSpace4
,
595
CellSpace8
,
596
AlignLeft
,
597
AlignCentre
,
598
AlignCenter
=
AlignCentre
,
599
AlignRight
,
600
AlignJustify
,
601
AlignBaseline
,
602
AlignBotton
,
603
AlignMiddle
,
604
AlignTop
605
};
606
#define P_DECL_HTML_TABLE_CTOR(cls) \
607
cls(const char * attr = NULL); \
608
cls(TableAttr attr1, const char * attr = NULL); \
609
cls(TableAttr attr1, TableAttr attr2, const char * attr = NULL); \
610
cls(TableAttr attr1, TableAttr attr2, TableAttr attr3, const char * attr = NULL); \
611
cls(TableAttr attr1, TableAttr attr2, TableAttr attr3, TableAttr attr4, const char * attr = NULL); \
612
cls(TableAttr attr1, TableAttr attr2, TableAttr attr3, TableAttr attr4, TableAttr attr5, const char * attr = NULL); \
613
614
class
TableStart
:
public
Element
615
{
616
public
:
617
P_DECL_HTML_TABLE_CTOR
(
TableStart
)
618
virtual ~
TableStart
()
619
{
620
}
621
protected
:
622
virtual
void
Output
(
PHTML
& html)
const
;
623
virtual
void
AddAttr
(
PHTML
& html)
const
;
624
};
625
friend
class
TableStart
;
626
627
class
TableEnd
:
public
Element
{
628
public
:
629
TableEnd
();
630
virtual
~TableEnd
() {}
631
protected
:
632
virtual
void
Output
(
PHTML
& html)
const
;
633
};
634
friend
class
TableEnd
;
635
636
class
TableRow
:
public
Element
{
637
public
:
638
P_DECL_HTML_TABLE_CTOR
(
TableRow
)
639
virtual ~
TableRow
() {}
640
};
641
642
class
TableHeader
:
public
Element
{
643
public
:
644
P_DECL_HTML_TABLE_CTOR
(
TableHeader
)
645
virtual ~
TableHeader
() {}
646
};
647
648
class
TableData
:
public
Element
{
649
public
:
650
P_DECL_HTML_TABLE_CTOR
(
TableData
)
651
virtual ~
TableData
() {}
652
};
653
654
655
class
Form
:
public
Element
{
656
public
:
657
Form
(
658
const
char
* method = NULL,
659
const
char
* action = NULL,
660
const
char
* encoding = NULL,
661
const
char
* script = NULL
662
);
663
virtual
~Form
() {}
664
protected
:
665
virtual
void
AddAttr
(
PHTML
& html)
const
;
666
private
:
667
const
char
* methodString;
668
const
char
* actionString;
669
const
char
* mimeTypeString;
670
const
char
* scriptString;
671
};
672
673
enum
DisableCodes
{
674
Enabled
,
675
Disabled
676
};
677
class
FieldElement
:
public
Element
{
678
protected
:
679
FieldElement
(
680
const
char
* nam,
681
const
char
* attr,
682
ElementInSet
elmt,
683
OptionalCRLF
opt,
684
DisableCodes
disabled
685
);
686
virtual
~FieldElement
() {}
687
virtual
void
AddAttr
(
PHTML
& html)
const
;
688
private
:
689
PBoolean
disabledFlag;
690
};
691
692
class
Select
:
public
FieldElement
{
693
public
:
694
Select
(
695
const
char
* fname = NULL,
696
const
char
* attr = NULL
697
);
698
Select
(
699
const
char
* fname,
700
DisableCodes
disabled,
701
const
char
* attr = NULL
702
);
703
virtual
~Select
() {}
704
protected
:
705
virtual
void
AddAttr
(
PHTML
& html)
const
;
706
private
:
707
const
char
* nameString;
708
};
709
710
enum
SelectionCodes
{
711
NotSelected
,
712
Selected
713
};
714
class
Option
:
public
FieldElement
{
715
public
:
716
Option
(
717
const
char
* attr = NULL
718
);
719
Option
(
720
SelectionCodes
select,
721
const
char
* attr = NULL
722
);
723
Option
(
724
DisableCodes
disabled,
725
const
char
* attr = NULL
726
);
727
Option
(
728
SelectionCodes
select,
729
DisableCodes
disabled,
730
const
char
* attr = NULL
731
);
732
virtual
~Option
() {}
733
protected
:
734
virtual
void
AddAttr
(
PHTML
& html)
const
;
735
private
:
736
PBoolean
selectedFlag;
737
};
738
739
class
FormField
:
public
FieldElement
{
740
protected
:
741
FormField
(
742
const
char
* nam,
743
const
char
* attr,
744
ElementInSet
elmt,
745
OptionalCRLF
opt,
746
DisableCodes
disabled,
747
const
char
* fname
748
);
749
virtual
~FormField
() {}
750
virtual
void
AddAttr
(
PHTML
& html)
const
;
751
private
:
752
const
char
* nameString;
753
};
754
755
class
TextArea
:
public
FormField
{
756
public
:
757
TextArea
(
758
const
char
* fname,
759
DisableCodes
disabled =
Enabled
,
760
const
char
* attr = NULL
761
);
762
TextArea
(
763
const
char
* fname,
764
int
rows,
int
cols,
765
DisableCodes
disabled =
Enabled
,
766
const
char
* attr = NULL
767
);
768
virtual
~TextArea
() {}
769
protected
:
770
virtual
void
AddAttr
(
PHTML
& html)
const
;
771
private
:
772
int
numRows, numCols;
773
};
774
775
class
InputField
:
public
FormField
{
776
protected
:
777
InputField
(
778
const
char
* type,
779
const
char
* fname,
780
DisableCodes
disabled,
781
const
char
* attr
782
);
783
virtual
~InputField
() {}
784
virtual
void
AddAttr
(
PHTML
& html)
const
;
785
private
:
786
const
char
* typeString;
787
};
788
789
class
HiddenField
:
public
InputField
{
790
public
:
791
HiddenField
(
792
const
char
* fname,
793
const
char
* value,
794
const
char
* attr = NULL
795
);
796
virtual
~HiddenField
() {}
797
protected
:
798
virtual
void
AddAttr
(
PHTML
& html)
const
;
799
private
:
800
const
char
* valueString;
801
};
802
803
class
InputText
:
public
InputField
{
804
public
:
805
InputText
(
806
const
char
* fname,
807
int
size
,
808
const
char
* init = NULL,
809
const
char
* attr = NULL
810
);
811
InputText
(
812
const
char
* fname,
813
int
size,
814
DisableCodes
disabled,
815
const
char
* attr = NULL
816
);
817
InputText
(
818
const
char
* fname,
819
int
size,
820
int
maxLength,
821
DisableCodes
disabled =
Enabled
,
822
const
char
* attr = NULL
823
);
824
InputText
(
825
const
char
* fname,
826
int
size,
827
const
char
* init,
828
int
maxLength,
829
DisableCodes
disabled =
Enabled
,
830
const
char
* attr = NULL
831
);
832
virtual
~InputText
() {}
833
protected
:
834
InputText
(
835
const
char
* type,
836
const
char
* fname,
837
int
size,
838
const
char
* init,
839
int
maxLength,
840
DisableCodes
disabled,
841
const
char
* attr
842
);
843
virtual
void
AddAttr
(
PHTML
& html)
const
;
844
private
:
845
const
char
* value;
846
int
width, length;
847
};
848
849
class
InputPassword
:
public
InputText
{
850
public
:
851
InputPassword
(
852
const
char
* fname,
853
int
size
,
854
const
char
* init = NULL,
855
const
char
* attr = NULL
856
);
857
InputPassword
(
858
const
char
* fname,
859
int
size,
860
DisableCodes
disabled,
861
const
char
* attr = NULL
862
);
863
InputPassword
(
864
const
char
* fname,
865
int
size,
866
int
maxLength,
867
DisableCodes
disabled =
Enabled
,
868
const
char
* attr = NULL
869
);
870
InputPassword
(
871
const
char
* fname,
872
int
size,
873
const
char
* init,
874
int
maxLength,
875
DisableCodes
disabled =
Enabled
,
876
const
char
* attr = NULL
877
);
878
virtual
~InputPassword
() {}
879
};
880
881
enum
CheckedCodes
{
882
UnChecked
,
883
Checked
884
};
885
class
RadioButton
:
public
InputField
{
886
public
:
887
RadioButton
(
888
const
char
* fname,
889
const
char
* value,
890
const
char
* attr = NULL
891
);
892
RadioButton
(
893
const
char
* fname,
894
const
char
* value,
895
DisableCodes
disabled,
896
const
char
* attr = NULL
897
);
898
RadioButton
(
899
const
char
* fname,
900
const
char
* value,
901
CheckedCodes
check,
902
DisableCodes
disabled =
Enabled
,
903
const
char
* attr = NULL
904
);
905
virtual
~RadioButton
() {}
906
protected
:
907
RadioButton
(
908
const
char
* type,
909
const
char
* fname,
910
const
char
* value,
911
CheckedCodes
check,
912
DisableCodes
disabled,
913
const
char
* attr
914
);
915
virtual
void
AddAttr
(
PHTML
& html)
const
;
916
private
:
917
const
char
* valueString;
918
PBoolean
checkedFlag;
919
};
920
921
class
CheckBox
:
public
RadioButton
{
922
public
:
923
CheckBox
(
924
const
char
* fname,
925
const
char
* attr = NULL
926
);
927
CheckBox
(
928
const
char
* fname,
929
DisableCodes
disabled,
930
const
char
* attr = NULL
931
);
932
CheckBox
(
933
const
char
* fname,
934
CheckedCodes
check,
935
DisableCodes
disabled =
Enabled
,
936
const
char
* attr = NULL
937
);
938
virtual
~CheckBox
() {}
939
};
940
941
942
class
InputNumber
:
public
InputField
{
943
public
:
944
InputNumber
(
945
const
char
* fname,
946
int
min,
int
max,
947
int
value = 0,
948
DisableCodes
disabled =
Enabled
,
949
const
char
* attr = NULL
950
);
951
virtual
~InputNumber
() {}
952
protected
:
953
InputNumber
(
954
const
char
* type,
955
const
char
* fname,
956
int
min,
int
max,
957
int
value,
958
DisableCodes
disabled,
959
const
char
* attr
960
);
961
virtual
void
AddAttr
(
PHTML
& html)
const
;
962
private
:
963
void
Construct(
int
min,
int
max,
int
value);
964
int
minValue, maxValue, initValue;
965
};
966
967
class
InputRange
:
public
InputNumber
{
968
public
:
969
InputRange
(
970
const
char
* fname,
971
int
min,
int
max,
972
int
value = 0,
973
DisableCodes
disabled =
Enabled
,
974
const
char
* attr = NULL
975
);
976
virtual
~InputRange
() {}
977
};
978
979
class
InputFile
:
public
InputField
{
980
public
:
981
InputFile
(
982
const
char
* fname,
983
const
char
* accept = NULL,
984
DisableCodes
disabled =
Enabled
,
985
const
char
* attr = NULL
986
);
987
virtual
~InputFile
() {}
988
protected
:
989
virtual
void
AddAttr
(
PHTML
& html)
const
;
990
private
:
991
const
char
* acceptString;
992
};
993
994
class
InputImage
:
public
InputField
{
995
public
:
996
InputImage
(
997
const
char
* fname,
998
const
char
* src = NULL,
999
DisableCodes
disabled =
Enabled
,
1000
const
char
* attr = NULL
1001
);
1002
virtual
~InputImage
() {}
1003
protected
:
1004
InputImage
(
1005
const
char
* type,
1006
const
char
* fname,
1007
const
char
* src,
1008
DisableCodes
disabled,
1009
const
char
* attr
1010
);
1011
virtual
void
AddAttr
(
PHTML
& html)
const
;
1012
private
:
1013
const
char
* srcString;
1014
};
1015
1016
class
InputScribble
:
public
InputImage
{
1017
public
:
1018
InputScribble
(
1019
const
char
* fname,
1020
const
char
* src = NULL,
1021
DisableCodes
disabled =
Enabled
,
1022
const
char
* attr = NULL
1023
);
1024
virtual
~InputScribble
() {}
1025
};
1026
1027
class
ResetButton
:
public
InputImage
{
1028
public
:
1029
ResetButton
(
1030
const
char
* title,
1031
const
char
* fname = NULL,
1032
const
char
* src = NULL,
1033
DisableCodes
disabled =
Enabled
,
1034
const
char
* attr = NULL
1035
);
1036
virtual
~ResetButton
() {}
1037
protected
:
1038
ResetButton
(
1039
const
char
* type,
1040
const
char
* title,
1041
const
char
* fname = NULL,
1042
const
char
* src = NULL,
1043
DisableCodes
disabled =
Enabled
,
1044
const
char
* attr = NULL
1045
);
1046
virtual
void
AddAttr
(
PHTML
& html)
const
;
1047
private
:
1048
const
char
* titleString;
1049
};
1050
1051
class
SubmitButton
:
public
ResetButton
{
1052
public
:
1053
SubmitButton
(
1054
const
char
* title,
1055
const
char
* fname = NULL,
1056
const
char
* src = NULL,
1057
DisableCodes
disabled =
Enabled
,
1058
const
char
* attr = NULL
1059
);
1060
virtual
~SubmitButton
() {}
1061
};
1062
1063
1064
protected
:
1065
virtual
void
AssignContents
(
const
PContainer
& c);
1066
1067
private
:
1068
ElementInSet
initialElement;
1069
BYTE elementSet[
NumElementsInSet
/8+1];
1070
PINDEX tableNestLevel;
1071
};
1072
1073
1074
#endif // PTLIB_HTML_H
1075
1076
1077
// End Of File ///////////////////////////////////////////////////////////////
include
ptclib
html.h
Generated on Fri Oct 10 2014 21:15:12 for PTLib by
1.8.3.1