42 setSize(para->getSize());
43 setWeight(para->getWeight());
44 setItalic(para->isItalic());
45 setUnderlined(para->getUnderlineType());
46 setStrikeout(para->isStrikeout());
58 setSize(para->getSize());
59 setWeight(para->getWeight());
60 setItalic(para->isItalic());
61 setUnderlined(para->getUnderlineType());
62 setStrikeout(para->isStrikeout());
71 kdDebug(30522) << "Destruction of a area" << endl;
82 return !getPara()->isChapter();
93 static const char *escapes[64] =
95 "\\`{A}", "\\'{A}", "\\^{A}", "\\~{A}",
96 "\\\"{A}", "\\AA", "\\AE", "\\c{C}",
97 "\\`{E}", "\\'{E}", "\\^{E}", "\\\"{E}",
98 "\\`{I}", "\\'{I}", "\\^{I}", "\\\"{I}",
100 "\\DH{}", "\\~{N}", "\\`{O}", "\\'{O}",
101 "\\^{O}", "\\~{O}", "\\\"{O}", "\\texttimes{}",
102 "\\O{}", "\\`{U}", "\\'{U}", "\\^{U}",
103 "\\\"{U}", "\\'{Y}", "\\TH{}", "\\ss{}",
105 "\\`{a}", "\\'{a}", "\\^{a}", "\\~{a}",
106 "\\\"{a}", "\\aa", "\\ae{}", "\\c{c}",
107 "\\`{e}", "\\'{e}", "\\^{e}", "\\\"{e}",
108 "\\`{\\i}", "\\'{\\i}", "\\^{\\i}", "\\\"{\\i}",
110 "\\dh{}", "\\~{n}", "\\`{o}", "\\'{o}",
111 "\\^{o}", "\\~{o}", "\\\"{o}", "\\textdiv{}",
112 "\\o{}", "\\`{u}", "\\'{u}", "\\^{u}",
113 "\\\"{u}", "\\'{y}", "\\th{}", "\\\"{y}"
116 TQString escapedText;
127 convert(escapedText, 0X005C, "\\textbackslash{}");
130 convert(escapedText, 0X0023, "\\#{}");
131 convert(escapedText, 0X0024, "\\${}");
132 convert(escapedText, 0X0025, "\\%{}");
133 convert(escapedText, 0X0026, "\\&{}");
137 convert(escapedText, 0X003C, "\\textless{}");
138 convert(escapedText, 0X003E, "\\textgreater{} ");
140 convert(escapedText, 0X005E, "\\^{}");
141 convert(escapedText, 0X005F, "\\_{}");
143 convert(escapedText, 0X007B, "\\{");
144 convert(escapedText, 0X007C, "\\textbar{}");
145 convert(escapedText, 0X007D, "\\}");
146 convert(escapedText, 0X007E, "\\textasciitilde{}");
148 convert(escapedText, 0X00A1, "!`{}");
149 convert(escapedText, 0X00A2, "\\textcent{}");
150 convert(escapedText, 0X00A3, "\\pounds{}");
151 convert(escapedText, 0X00A4, "\\textcurrency{}");
152 convert(escapedText, 0X00A5, "\\textyen{}");
153 convert(escapedText, 0X00A6, "\\textbrokenbar{}");
154 convert(escapedText, 0X00A7, "\\S{}");
155 convert(escapedText, 0X00A8, "\\textasciidieresis{}");
156 convert(escapedText, 0X00A9, "\\copyright{}");
157 convert(escapedText, 0X00AA, "\\textordfeminine{}");
158 convert(escapedText, 0X00AB, "\\guillemotleft{}");
159 convert(escapedText, 0X00AC, "\\textlnot{}");
161 convert(escapedText, 0X00AE, "\\textregistered{}");
162 convert(escapedText, 0X00AF, "\\textmacron{}");
163 convert(escapedText, 0X00B0, "\\textdegree{}");
164 convert(escapedText, 0X00B1, "\\textpm{}");
165 convert(escapedText, 0X00B2, "\\texttwosuperior{}");
166 convert(escapedText, 0X00B3, "\\textthreesuperior{}");
167 convert(escapedText, 0X00B4, "' ");
168 convert(escapedText, 0X00B5, "\\textmu{}");
169 convert(escapedText, 0X00B6, "\\P{}");
170 convert(escapedText, 0X00B7, "\\textperiodcentered{}");
172 convert(escapedText, 0X00B9, "\\textonesuperior{}");
173 convert(escapedText, 0X00BA, "\\textordmasculine{}");
174 convert(escapedText, 0X00BB, "\\guillemotright{}");
175 convert(escapedText, 0X00BC, "\\textonequarter{}");
176 convert(escapedText, 0X00BD, "\\textonehalf{}");
177 convert(escapedText, 0X00BE, "\\textthreequarters{}");
178 convert(escapedText, 0X00BF, "?`{}");
186 for( int index = 0; index < 64; index++)
188 unicode = CSTART + index;
189 convert(escapedText, unicode, escapes[index]);
192 convert(escapedText, 0X2020, "\\textdied{}");
193 convert(escapedText, 0X2021, "\\textdaggerdbl{}");
194 convert(escapedText, 0X2022, "'' ");
195 convert(escapedText, 0X2023, "\\textdaggerdbl{}");
196 convert(escapedText, 0X2024, "\\textdaggerdbl{}");
197 convert(escapedText, 0X2025, "\\textdaggerdbl{}");
198 convert(escapedText, 0X2026, "\\&{}");
199 convert(escapedText, 0X2027, "\\textperiodcentered{}");
200 convert(escapedText, 0X2030, "\\textperthousand{}");
201 convert(escapedText, 0X2031, "\\textpertenthousand{}");
202 convert(escapedText, 0X2032, "\\textasciiacute{}");
203 convert(escapedText, 0X2033, "\\textgravedbl{}");
204 convert(escapedText, 0X2034, "\\textdaggerdbl{}");
205 convert(escapedText, 0X2035, "\\textasciigrave{}");
206 convert(escapedText, 0X2036, "\\textacutedbl{}");
207 convert(escapedText, 0X2037, "\\textdaggerdbl{}");
208 convert(escapedText, 0X2038, "\\textdaggerdbl{}");
209 convert(escapedText, 0X2039, "\\textdaggerdbl{}");
210 convert(escapedText, 0X203A, "\\textdaggerdbl{}");
211 convert(escapedText, 0X203B, "\\textreferencemark{}");
212 convert(escapedText, 0X203D, "\\textinterrobang{}");
214 convert(escapedText, 0X2045, "\\textlquill{}");
215 convert(escapedText, 0X2046, "\\textrquill{}");
218 convert(escapedText, 0X2080, "\\textzerooldstyle{}");
219 convert(escapedText, 0X2081, "\\textoneoldstyle{}");
220 convert(escapedText, 0X2082, "\\texttwooldstyle{}");
221 convert(escapedText, 0X2083, "\\textthreeoldstyle{}");
222 convert(escapedText, 0X2084, "\\textfouroldstyle{}");
223 convert(escapedText, 0X2085, "\\textfiveoldstyle{}");
224 convert(escapedText, 0X2086, "\\textsixoldstyle{}");
225 convert(escapedText, 0X2087, "\\textsevenoldstyle{}");
226 convert(escapedText, 0X2088, "\\texteightoldstyle{}");
227 convert(escapedText, 0X2089, "\\textnineoldstyle{}");
228 convert(escapedText, 0X208C, "\\textdblhyphen{}");
230 convert(escapedText, 0X20A4, "\\textsterling{}");
231 convert(escapedText, 0X20A6, "\\textnaria{}");
232 convert(escapedText, 0X20AA, "\\textwon{}");
233 convert(escapedText, 0X20AB, "\\textdong{}");
234 convert(escapedText, 0X20AC, "\\texteuro{}");
236 convert(escapedText, 0X2103, "\\textcelsius{}");
237 convert(escapedText, 0X2116, "\\textnumero{}");
238 convert(escapedText, 0X2117, "\\textcircledP{}");
239 convert(escapedText, 0X2120, "\\textservicemark{}");
240 convert(escapedText, 0X2122, "\\texttrademark{}");
241 convert(escapedText, 0X2126, "\\textohm{}");
242 convert(escapedText, 0X2127, "\\textmho{}");
243 convert(escapedText, 0X212E, "\\textestimated{}");
245 convert(escapedText, 0X2190, "\\textleftarrow{}");
246 convert(escapedText, 0X2191, "\\textuparrow{}");
247 convert(escapedText, 0X2192, "\\textrightarrow{}");
248 convert(escapedText, 0X2193, "\\textdownarrow{}");
262void TextZone::convert(TQString& text, int unicode, const char* escape)
267 expression = TQString( "\\x") + value.setNum(unicode, 16);
269 if( !TQString(escape).isEmpty() )
272 text = text.replace( TQRegExp( expression), TQString(escape));
284 kdDebug(30522) << "FORMAT" << endl;
289 analyseFormat(balise);
292 setTexte(getTexte().mid(getPos(), getLength()));
294 kdDebug(30522) << getTexte().length() << endl;
295 kdDebug(30522) << getTexte().latin1() << endl;
296 kdDebug(30522) << "END FORMAT" << endl;
307 kdDebug(30522) << "ZONE" << endl;
310 setTexte(getTexte().mid(getPos(), getLength()));
312 kdDebug(30522) << "String of " << getTexte().length() << " caracters :" << endl;
313 kdDebug(30522) << getTexte().latin1() << endl;
314 kdDebug(30522) << "END ZONE" << endl;
322void TextZone::generate(TQTextStream &out)
326 generate_format_begin(out);
329 if(Config::instance()->getEncoding() == "latin1")
330 display(_texte, out);
331 else if(Config::instance()->mustUseUnicode())
332 display(_texte, out);
337 generate_format_end(out);
346void TextZone::display(TQString texte, TQTextStream& out)
349 int index = 0, end = 0;
350 end = texte.find( ' ', 60, false);
352 line = texte.mid(index, end - index);
355 while(end < ( signed int) texte.length() && end != -1)
358 if(Config::instance()->mustUseUnicode())
359 out << line.utf8() << endl;
360 else if(Config::instance()->mustUseLatin1())
362 Config::instance()->writeIndent(out);
364 end = texte.find( ' ', index + 60, false);
365 line = texte.mid(index, end - index);
367 kdDebug(30522) << line << endl;
368 if(Config::instance()->mustUseUnicode())
370 else if(Config::instance()->getEncoding() == "ascii")
381void TextZone::generate_format_begin(TQTextStream & out)
383 kdDebug(30522) << "GENERATE FORMAT BEGIN" << endl;
390 if(getUnderlineType() == UNDERLINE_SIMPLE)
392 else if(getUnderlineType() == UNDERLINE_DOUBLE)
394 else if(getUnderlineType() == UNDERLINE_WAVE)
400 if(getSize() != Config::instance()->getDefaultFontSize() &&
401 Config::instance()->isKwordStyleUsed())
403 out << "\\fontsize{" << getSize() << "}{1}%" << endl;
404 Config::instance()->writeIndent(out);
405 out << "\\selectfont" << endl;
406 Config::instance()->writeIndent(out);
412 float red, green, blue;
414 red = ((float) getBkColorRed()) / 255;
415 green = ((float) getBkColorGreen()) / 255;
416 blue = ((float) getBkColorBlue()) / 255;
418 out << "\\colorbox[rgb]{";
419 out << red << ", " << green << ", " << blue << "}{";
425 float red, green, blue;
427 red = ((float) getColorRed()) / 255;
428 green = ((float) getColorGreen()) / 255;
429 blue = ((float) getColorBlue()) / 255;
431 out << "\\textcolor[rgb]{";
432 out << red << ", " << green << ", " << blue << "}{";
444 out << "\\textsuperscript{";
454void TextZone::generate_format_end(TQTextStream & out)
456 kdDebug(30522) << "GENERATE FORMAT END" << endl;
459 if(getAlign() == EA_SUPER)
461 if(getAlign() == EA_SUB)
465 if(isColor() || isBkColored())
469 if(getSize() != Config::instance()->getDefaultFontSize() && Config::instance()->isKwordStyleUsed())
471 out << "\\fontsize{" << Config::instance()->getDefaultFontSize() << "}{1}%" << endl;
472 Config::instance()->writeIndent(out);
473 out << "\\selectfont" << endl;
474 Config::instance()->writeIndent(out);
488TQString convertSpecialChar( int c)
494 case 183: return output = "\\textminus";
496 default: return output.setNum(c);
This class hold a real paragraph.
TQString escapeLatin1(TQString) convert a unicode text in latin1 enconding ala latex.
void analyse(const TQDomNode) Helpfull functions.
TextZone(Para *para=0) Creates a new instance of TextZone.
|