1 # include "docBufConfig.h"
2
3 # include <stdio.h>
4
5 # include "docBuf.h"
6 # include "docDebug.h"
7 # include "docField.h"
8 # include <docTreeType.h>
9 # include <docObjectProperties.h>
10 # include <docTextParticule.h>
11 # include <appDebugon.h>
12
docKindStr(int kind)13 const char * docKindStr( int kind )
14 {
15 static char scratch[12];
16
17 switch( kind )
18 {
19 case DOCkindSPAN: return "SPAN";
20 case DOCkindTAB: return "TAB ";
21 case DOCkindOBJECT: return "OBJ ";
22 case DOCkindFIELDHEAD: return "<FLD";
23 case DOCkindFIELDTAIL: return "FLD>";
24 case DOCkindLINEBREAK: return "LINE";
25 case DOCkindPAGEBREAK: return "PAGE";
26 case DOCkindCOLUMNBREAK: return "COL ";
27 case DOCkindCHFTNSEP: return "SEP ";
28 case DOCkindCHFTNSEPC: return "SEPC";
29 case DOCkindOPT_HYPH: return "HYPH";
30 case DOCkindLTR_MARK: return "LTR ";
31 case DOCkindRTL_MARK: return "RTL ";
32
33 default:
34 sprintf( scratch, "%-4d", kind );
35 return scratch;
36 }
37 }
38
docLevelStr(int level)39 const char * docLevelStr( int level )
40 {
41 static char scratch[12];
42
43 switch( level )
44 {
45 case DOClevANY: return "ANY ";
46 case DOClevOUT: return "OUT ";
47
48 case DOClevBODY: return "BODY";
49 case DOClevSECT: return "SECT";
50 case DOClevROW: return "ROW ";
51 case DOClevCELL: return "CELL";
52 case DOClevPARA: return "PARA";
53 case DOClevSPAN: return "SPAN";
54
55 case DOClevCOLUMN: return "COLM";
56 case DOClevTABLE: return "TABL";
57
58 default:
59 sprintf( scratch, "%-4d", level );
60 return scratch;
61 }
62 }
63
docTreeTypeStr(int treeType)64 const char * docTreeTypeStr( int treeType )
65 {
66 static char scratch[12];
67
68 switch( treeType )
69 {
70 case DOCinBODY: return "BODY";
71
72 case DOCinFIRST_HEADER: return "FIRST_HEADER";
73 case DOCinLEFT_HEADER: return "LEFT_HEADER";
74 case DOCinRIGHT_HEADER: return "RIGHT_HEADER";
75
76 case DOCinFIRST_FOOTER: return "FIRST_FOOTER";
77 case DOCinLEFT_FOOTER: return "LEFT_FOOTER";
78 case DOCinRIGHT_FOOTER: return "RIGHT_FOOTER";
79
80 case DOCinFOOTNOTE: return "FOOTNOTE";
81 case DOCinENDNOTE: return "ENDNOTE";
82
83 case DOCinFTNSEP: return "FTNSEP";
84 case DOCinFTNSEPC: return "FTNSEPC";
85 case DOCinFTNCN: return "FTNCN";
86
87 case DOCinAFTNSEP: return "AFTNSEP";
88 case DOCinAFTNSEPC: return "AFTNSEPC";
89 case DOCinAFTNCN: return "AFTNCN";
90
91 case DOCinSHPTXT: return "SHPTXT";
92
93 default:
94 sprintf( scratch, "%d", treeType );
95 return scratch;
96 }
97 }
98
docObjectKindStr(int objectKind)99 const char * docObjectKindStr( int objectKind )
100 {
101 static char scratch[12];
102
103 switch( objectKind )
104 {
105 case DOCokUNKNOWN: return "UNKNOWN";
106 case DOCokPICTWMETAFILE: return "PICTWMETAFILE";
107 case DOCokPICTPNGBLIP: return "PICTPNGBLIP";
108 case DOCokPICTJPEGBLIP: return "PICTJPEGBLIP";
109 case DOCokPICTEMFBLIP: return "PICTEMFBLIP";
110 case DOCokMACPICT: return "MACPICT";
111 case DOCokPMMETAFILE: return "PMMETAFILE";
112 case DOCokDIBITMAP: return "DIBITMAP";
113 case DOCokWBITMAP: return "WBITMAP";
114 case DOCokOLEOBJECT: return "OLEOBJECT";
115 case DOCokEPS_FILE: return "EPS_FILE";
116 case DOCokDRAWING_SHAPE: return "DRAWING_SHAPE";
117
118 default:
119 sprintf( scratch, "%d", objectKind );
120 return scratch;
121 }
122 }
123
docFieldKindStr(int kind)124 const char * docFieldKindStr( int kind )
125 {
126 static char scratch[12];
127
128 if ( kind >= 0 && kind < DOC_FieldKindCount )
129 { return DOC_FieldKinds[kind].fkiLabel; }
130
131 sprintf( scratch, "%4d", kind );
132 return scratch;
133 }
134
docAttributeStr(const TextAttribute * ta)135 const char * docAttributeStr( const TextAttribute * ta )
136 {
137 static char scratch[5];
138 char * to= scratch;
139
140 if ( ta->taFontIsBold )
141 { *(to++)= 'B'; }
142 else{ *(to++)= 'b'; }
143 if ( ta->taFontIsSlanted )
144 { *(to++)= 'I'; }
145 else{ *(to++)= 'i'; }
146 if ( ta->taTextIsUnderlined )
147 { *(to++)= 'U'; }
148 else{ *(to++)= 'u'; }
149
150 *(to)= '\0';
151 return scratch;
152 }
153
docParticuleFlagsStr(int flags)154 const char * docParticuleFlagsStr( int flags )
155 {
156 static char scratch[7];
157 char * to= scratch;
158
159 if ( flags & TPflagXMATCH_LEFT )
160 { *(to++)= '['; }
161 else{ *(to++)= '.'; }
162
163 if ( flags & TPflagLEFT_BORDER )
164 { *(to++)= 'B'; }
165 else{ *(to++)= 'b'; }
166
167 if ( flags & TPflagRIGHT_BORDER )
168 { *(to++)= 'B'; }
169 else{ *(to++)= 'b'; }
170
171 if ( flags & TPflagXMATCH_RIGHT )
172 { *(to++)= ']'; }
173 else{ *(to++)= '.'; }
174
175 *(to)= '\0';
176 return scratch;
177 }
178
docLogRectangle(const char * label,const DocumentRectangle * dr)179 void docLogRectangle( const char * label,
180 const DocumentRectangle * dr )
181 {
182 appDebug( "%s: [%4d+%4d=%4d]x[%4d+%4d=%4d]\n", label,
183 dr->drX0, dr->drX1- dr->drX0+ 1, dr->drX1,
184 dr->drY0, dr->drY1- dr->drY0+ 1, dr->drY1 );
185
186 return;
187 }
188
docLogRectangles(const char * label1,const DocumentRectangle * dr1,const char * label2,const DocumentRectangle * dr2)189 void docLogRectangles( const char * label1,
190 const DocumentRectangle * dr1,
191 const char * label2,
192 const DocumentRectangle * dr2 )
193 {
194 appDebug( "%s: [%4d+%4d]x[%4d+%4d] %s [%4d+%4d]x[%4d+%4d]\n",
195 label1,
196 dr1->drX0, dr1->drX1- dr1->drX0+ 1,
197 dr1->drY0, dr1->drY1- dr1->drY0+ 1,
198 label2,
199 dr2->drX0, dr2->drX1- dr2->drX0+ 1,
200 dr2->drY0, dr2->drY1- dr2->drY0+ 1 );
201
202 return;
203 }
204
docBreakKindStr(int kind)205 const char * docBreakKindStr( int kind )
206 {
207 static char scratch[20];
208
209 switch( kind )
210 {
211 case DOCibkNONE: return "NONE";
212 case DOCibkCOL: return "COL";
213 case DOCibkPAGE: return "PAGE";
214 case DOCibkEVEN: return "EVEN";
215 case DOCibkODD: return "ODD";
216
217 default:
218 sprintf( scratch, "%d", kind );
219 return scratch;
220 }
221 }
222