Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*************************************************************************
3 : *
4 : * The Contents of this file are made available subject to the terms of
5 : * either of the following licenses
6 : *
7 : * - GNU Lesser General Public License Version 2.1
8 : * - Sun Industry Standards Source License Version 1.1
9 : *
10 : * Sun Microsystems Inc., October, 2000
11 : *
12 : * GNU Lesser General Public License Version 2.1
13 : * =============================================
14 : * Copyright 2000 by Sun Microsystems, Inc.
15 : * 901 San Antonio Road, Palo Alto, CA 94303, USA
16 : *
17 : * This library is free software; you can redistribute it and/or
18 : * modify it under the terms of the GNU Lesser General Public
19 : * License version 2.1, as published by the Free Software Foundation.
20 : *
21 : * This library is distributed in the hope that it will be useful,
22 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 : * Lesser General Public License for more details.
25 : *
26 : * You should have received a copy of the GNU Lesser General Public
27 : * License along with this library; if not, write to the Free Software
28 : * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
29 : * MA 02111-1307 USA
30 : *
31 : *
32 : * Sun Industry Standards Source License Version 1.1
33 : * =================================================
34 : * The contents of this file are subject to the Sun Industry Standards
35 : * Source License Version 1.1 (the "License"); You may not use this file
36 : * except in compliance with the License. You may obtain a copy of the
37 : * License at http://www.openoffice.org/license.html.
38 : *
39 : * Software provided under this License is provided on an "AS IS" basis,
40 : * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
41 : * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
42 : * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
43 : * See the License for the specific provisions governing your rights and
44 : * obligations concerning the Software.
45 : *
46 : * The Initial Developer of the Original Code is: IBM Corporation
47 : *
48 : * Copyright: 2008 by IBM Corporation
49 : *
50 : * All Rights Reserved.
51 : *
52 : * Contributor(s): _______________________________________
53 : *
54 : *
55 : ************************************************************************/
56 : /*************************************************************************
57 : * @file
58 : * Util functions for xml filter.
59 : ************************************************************************/
60 : #include <stdio.h>
61 : #include "xfutil.hxx"
62 : #include "xfparagraph.hxx"
63 : #include "xfcontentcontainer.hxx"
64 : #include <rtl/ustrbuf.hxx>
65 : #include <sstream>
66 :
67 624 : rtl::OUString Int32ToOUString(sal_Int32 num)
68 : {
69 : /*std::stringstream sstrm;
70 :
71 : sstrm<<(int)num;
72 : return rtl::OUString::createFromAscii(sstrm.str().c_str());
73 : */
74 624 : return rtl::OUString::valueOf(num);
75 : }
76 :
77 261 : rtl::OUString Int16ToOUString(sal_Int16 num)
78 : {
79 : /*std::stringstream sstrm;
80 :
81 : sstrm<<(int)num;
82 : return rtl::OUString::createFromAscii(sstrm.str().c_str());
83 : */
84 261 : sal_Int32 nNum = static_cast<sal_Int32>(num);
85 261 : return rtl::OUString::valueOf(nNum);
86 : }
87 :
88 0 : rtl::OUString FloatToOUString(float num, sal_Int32 /*precision*/)
89 : {
90 : /*std::stringstream sstrm;
91 : std::string strRet;
92 :
93 : sstrm.precision(precision);
94 : sstrm<<num;
95 : return rtl::OUString::createFromAscii(sstrm.str().c_str());
96 : */
97 0 : return rtl::OUString::valueOf(num);
98 : }
99 :
100 897 : rtl::OUString DoubleToOUString(double num, sal_Int32 /*precision*/)
101 : {
102 : /*std::stringstream sstrm;
103 : std::string strRet;
104 :
105 : sstrm.precision(precision);
106 : sstrm<<num;
107 : return rtl::OUString::createFromAscii(sstrm.str().c_str());
108 : */
109 897 : return rtl::OUString::valueOf(num);
110 : }
111 :
112 0 : rtl::OUString DateTimeToOUString(XFDateTime& dt)
113 : {
114 0 : rtl::OUStringBuffer buf;
115 0 : buf.append(dt.nYear);
116 0 : buf.append( A2OUSTR("-") );
117 0 : buf.append(dt.nMonth);
118 0 : buf.append( A2OUSTR("-") );
119 0 : buf.append(dt.nDay);
120 0 : buf.append( A2OUSTR("T") );
121 0 : buf.append(dt.nHour);
122 0 : buf.append( A2OUSTR(":") );
123 0 : buf.append(dt.nMinute);
124 0 : buf.append( A2OUSTR(":") );
125 0 : buf.append(dt.nSecond);
126 0 : buf.append( A2OUSTR(".") );
127 0 : buf.append(dt.nMillSecond);
128 :
129 0 : return buf.makeStringAndClear();
130 : }
131 :
132 0 : rtl::OUString GetTableColName(sal_Int32 col)
133 : {
134 0 : int remain = 0;
135 : char ch;
136 0 : std::string strOut;
137 :
138 0 : if( col <= 26 )
139 : {
140 0 : ch = 'A' + col -1;
141 0 : strOut += ch;
142 0 : return A2OUSTR(strOut.c_str());
143 : }
144 :
145 0 : while( col>26 )
146 : {
147 0 : remain = col%26;
148 0 : col = col/26;
149 0 : ch = 'A' + remain -1;
150 0 : strOut += ch;
151 : }
152 :
153 0 : ch = 'A' + remain -1;
154 0 : strOut += ch;
155 0 : return A2OUSTR(strOut.c_str());
156 : }
157 :
158 : //tool functions:
159 1 : rtl::OUString GetUnderlineName(enumXFUnderline type)
160 : {
161 1 : switch(type)
162 : {
163 : case enumXFUnderlineNone:
164 0 : return A2OUSTR("none");
165 : break;
166 : case enumXFUnderlineSingle:
167 1 : return A2OUSTR("single");
168 : break;
169 : case enumXFUnderlineDouble:
170 0 : return A2OUSTR("double");
171 : break;
172 : case enumXFUnderlineDotted:
173 0 : return A2OUSTR("dotted");
174 : break;
175 : case enumXFUnderlineDash:
176 0 : return A2OUSTR("dash");
177 : break;
178 : case enumXFUnderlineLongDash:
179 0 : return A2OUSTR("long-dash");
180 : break;
181 : case enumXFUnderlineDotDash:
182 0 : return A2OUSTR("dot-dash");
183 : break;
184 : case enumXFUnderlineDotDotDash:
185 0 : return A2OUSTR("dot-dot-dash");
186 : break;
187 : case enumXFUnderlineWave:
188 0 : return A2OUSTR("wave");
189 : break;
190 : case enumXFUnderlineBold:
191 0 : return A2OUSTR("bold");
192 : break;
193 : case enumXFUnderlineBoldDotted:
194 0 : return A2OUSTR("bold-dotted");
195 : break;
196 : case enumXFUnderlineBoldDash:
197 0 : return A2OUSTR("bold-dash");
198 : break;
199 : case enumXFUnderlineBoldLongDash:
200 0 : return A2OUSTR("bold-long-dash");
201 : break;
202 : case enumXFUnderlineBoldDotDash:
203 0 : return A2OUSTR("bold-dot-dash");
204 : break;
205 : case enumXFUnderlineBoldDotDotDash:
206 0 : return A2OUSTR("bold-dot-dot-dash");
207 : break;
208 : case enumXFUnderlineBoldWave:
209 0 : return A2OUSTR("bold-wave");
210 : break;
211 : case enumXFUnderlineDoubleWave:
212 0 : return A2OUSTR("double-wave");
213 : break;
214 : case enumXFUnderlineSmallWave:
215 0 : return A2OUSTR("samll-wave");
216 : break;
217 : }
218 0 : return A2OUSTR("");
219 : }
220 :
221 0 : rtl::OUString GetReliefName(enumXFRelief type)
222 : {
223 0 : switch(type)
224 : {
225 : case enumXFReliefEngraved:
226 0 : return A2OUSTR("engraved");
227 : break;
228 : case enumXFReliefEmbossed:
229 0 : return A2OUSTR("embossed");
230 : break;
231 : default:
232 0 : break;
233 : }
234 0 : return A2OUSTR("");
235 : }
236 :
237 1 : rtl::OUString GetCrossoutName(enumXFCrossout type)
238 : {
239 1 : switch(type)
240 : {
241 : case enumXFCrossoutSignel:
242 1 : return A2OUSTR("single-line");
243 : break;
244 : case enumXFCrossoutDouble:
245 0 : return A2OUSTR("double-line");
246 : break;
247 : case enumXFCrossoutThick:
248 0 : return A2OUSTR("thick-line");
249 : break;
250 : case enumXFCrossoutSlash:
251 0 : return A2OUSTR("slash");
252 : break;
253 : case enumXFCrossoutX:
254 0 : return A2OUSTR("X");
255 : break;
256 : default:
257 0 : break;
258 : }
259 0 : return A2OUSTR("");
260 : }
261 :
262 0 : rtl::OUString GetTransformName(enumXFTransform type)
263 : {
264 0 : switch(type) {
265 : case enumXFTransformUpper:
266 0 : return A2OUSTR("uppercase");
267 : break;
268 : case enumXFTransformLower:
269 0 : return A2OUSTR("lowercase");
270 : break;
271 : case enumXFTransformCapitalize:
272 0 : return A2OUSTR("capitalize");
273 : break;
274 : case enumXFTransformSmallCaps:
275 0 : return A2OUSTR("small-caps");
276 : break;
277 : default:
278 0 : break;
279 : }
280 0 : return A2OUSTR("");
281 : }
282 :
283 0 : rtl::OUString GetEmphasizeName(enumXFEmphasize type)
284 : {
285 0 : switch(type) {
286 : case enumXFEmphasizeDot:
287 0 : return A2OUSTR("dot");
288 : break;
289 : case enumXFEmphasizeCircle:
290 0 : return A2OUSTR("circle");
291 : break;
292 : case enumXFEmphasizeDisc:
293 0 : return A2OUSTR("disc");
294 : break;
295 : case enumXFEmphasizeAccent:
296 0 : return A2OUSTR("accent");
297 : break;
298 : default:
299 0 : break;
300 : }
301 0 : return A2OUSTR("");
302 : }
303 :
304 19 : rtl::OUString GetTextDirName(enumXFTextDir dir)
305 : {
306 19 : switch(dir)
307 : {
308 : case enumXFTextDirLR:
309 0 : return A2OUSTR("lr");
310 : break;
311 : case enumXFTextDirLR_TB:
312 19 : return A2OUSTR("lr-tb");
313 : break;
314 : case enumXFTextDirPage:
315 0 : return A2OUSTR("page");
316 : break;
317 : case enumXFTextDirRL:
318 0 : return A2OUSTR("rl");
319 : break;
320 : case enumXFTextDirRL_TB:
321 0 : return A2OUSTR("rl-tb");
322 : break;
323 : case enumXFTextDirTB:
324 0 : return A2OUSTR("tb");
325 : break;
326 : case enumXFTextDirTB_LR:
327 0 : return A2OUSTR("tb-lr");
328 : break;
329 : case enumXFTextDirTB_RL:
330 0 : return A2OUSTR("tb-rl");
331 : break;
332 : default:
333 0 : break;
334 : }
335 0 : return A2OUSTR("");
336 : }
337 :
338 17 : rtl::OUString GetFrameXPos(enumXFFrameXPos pos)
339 : {
340 17 : switch(pos)
341 : {
342 : case enumXFFrameXPosLeft:
343 0 : return A2OUSTR("left");
344 : break;
345 : case enumXFFrameXPosRight:
346 0 : return A2OUSTR("right");
347 : break;
348 : case enumXFFrameXPosCenter:
349 2 : return A2OUSTR("center");
350 : break;
351 : case enumXFFrameXPosFromLeft:
352 15 : return A2OUSTR("from-left");
353 : break;
354 : default:
355 0 : break;
356 : }
357 0 : return A2OUSTR("");
358 : }
359 :
360 17 : rtl::OUString GetFrameXRel(enumXFFrameXRel rel)
361 : {
362 17 : switch(rel)
363 : {
364 : case enumXFFrameXRelPage:
365 5 : return A2OUSTR("page");
366 : break;
367 : case enumXFFrameXRelPageContent:
368 0 : return A2OUSTR("page-content");
369 : break;
370 : case enumXFFrameXRelPageEndMargin:
371 0 : return A2OUSTR("page-end-margin");
372 : break;
373 : case enumXFFrameXRelPageStartMargin:
374 0 : return A2OUSTR("page-start-margin");
375 : break;
376 : case enumXFFrameXRelPara:
377 0 : return A2OUSTR("paragraph");
378 : break;
379 : case enumXFFrameXRelParaContent:
380 8 : return A2OUSTR("paragraph-content");
381 : break;
382 : case enumXFFrameXRelParaEndMargin:
383 0 : return A2OUSTR("paragraph-end-margin");
384 : break;
385 : case enumXFFrameXRelParaStartMargin:
386 0 : return A2OUSTR("paragraph-start-margin");
387 : break;
388 : case enumXFFrameXRelChar:
389 0 : return A2OUSTR("char");
390 : break;
391 : case enumXFFrameXRelFrame:
392 4 : return A2OUSTR("frame");
393 : break;
394 : case enumXFFrameXRelFrameContent:
395 0 : return A2OUSTR("frame-content");
396 : break;
397 : case enumXFFrameXRelFrameEndMargin:
398 0 : return A2OUSTR("frame-end-margin");
399 : break;
400 : case enumXFFrameXRelFrameStartMargin:
401 0 : return A2OUSTR("frame-start-margin");
402 : break;
403 : default:
404 0 : break;
405 : }
406 0 : return A2OUSTR("");
407 : }
408 :
409 17 : rtl::OUString GetFrameYPos(enumXFFrameYPos pos)
410 : {
411 17 : switch(pos)
412 : {
413 : case enumXFFrameYPosTop:
414 0 : return A2OUSTR("top");
415 : case enumXFFrameYPosMiddle:
416 2 : return A2OUSTR("middle");
417 : case enumXFFrameYPosBottom:
418 8 : return A2OUSTR("bottom");
419 : case enumXFFrameYPosFromTop:
420 3 : return A2OUSTR("from-top");
421 : case enumXFFrameYPosBelow:
422 4 : return A2OUSTR("below");
423 : }
424 0 : return A2OUSTR("");
425 : }
426 :
427 17 : rtl::OUString GetFrameYRel(enumXFFrameYRel rel)
428 : {
429 17 : switch(rel)
430 : {
431 : case enumXFFrameYRelBaseLine:
432 0 : return A2OUSTR("baseline");
433 : case enumXFFrameYRelChar:
434 4 : return A2OUSTR("char");
435 : case enumXFFrameYRelFrame:
436 4 : return A2OUSTR("frame");
437 : case enumXFFrameYRelFrameContent:
438 0 : return A2OUSTR("frame-content");
439 : case enumXFFrameYRelLine:
440 0 : return A2OUSTR("line");
441 : case enumXFFrameYRelPage:
442 0 : return A2OUSTR("page");
443 : case enumXFFrameYRelPageContent:
444 0 : return A2OUSTR("page-content");
445 : case enumXFFrameYRelPara:
446 1 : return A2OUSTR("paragraph");
447 : case enumXFFrameYRelParaContent:
448 8 : return A2OUSTR("paragraph-content");
449 : case enumXFFrameYRelText:
450 0 : return A2OUSTR("text");
451 : }
452 0 : return A2OUSTR("");
453 : }
454 :
455 171 : rtl::OUString GetAlignName(enumXFAlignType align)
456 : {
457 171 : if( align == enumXFAlignStart )
458 134 : return A2OUSTR("start");
459 37 : else if( align == enumXFAlignCenter )
460 11 : return A2OUSTR("center");
461 26 : else if( align == enumXFAlignEnd )
462 4 : return A2OUSTR("end");
463 22 : else if( align == enumXFAlignJustify )
464 0 : return A2OUSTR("justify");
465 22 : else if( align == enumXFAlignBottom )
466 0 : return A2OUSTR("bottom");
467 22 : else if( align == enumXFAlignTop )
468 22 : return A2OUSTR("top");
469 0 : else if( align == enumXFAlignMiddle )
470 0 : return A2OUSTR("middle");
471 0 : else if( align == enumXFALignMargins )
472 0 : return A2OUSTR("margins");
473 :
474 0 : return A2OUSTR("");
475 : }
476 :
477 0 : rtl::OUString GetDrawKind(enumXFDrawKind kind)
478 : {
479 0 : if( kind == enumXFDrawKindFull )
480 0 : return A2OUSTR("full");
481 0 : else if( kind == enumXFDrawKindSection )
482 0 : return A2OUSTR("section");
483 0 : else if( kind == enumXFDrawKindCut )
484 0 : return A2OUSTR("cut");
485 : else //( kind == enumXFDrawKindArc )
486 0 : return A2OUSTR("arc");
487 : }
488 :
489 0 : rtl::OUString GetPageUsageName(enumXFPageUsage usage)
490 : {
491 0 : rtl::OUString sRet;
492 0 : switch(usage)
493 : {
494 : case enumXFPageUsageAll:
495 0 : sRet = A2OUSTR("all");
496 0 : break;
497 : case enumXFPageUsageLeft:
498 0 : sRet = A2OUSTR("left");
499 0 : break;
500 : case enumXFPageUsageRight:
501 0 : sRet = A2OUSTR("right");
502 0 : break;
503 : case enumXFPageUsageMirror:
504 0 : sRet = A2OUSTR("mirrored");
505 0 : break;
506 : default:
507 0 : sRet = A2OUSTR("mirrored");
508 0 : break;
509 : }
510 0 : return sRet;
511 : }
512 :
513 0 : rtl::OUString GetValueType(enumXFValueType type)
514 : {
515 0 : rtl::OUString sRet;
516 0 : switch(type)
517 : {
518 : case enumXFValueTypeBoolean:
519 0 : sRet = A2OUSTR("boolean");
520 0 : break;
521 : case enumXFValueTypeCurrency:
522 0 : sRet = A2OUSTR("currency");
523 0 : break;
524 : case enumXFValueTypeDate:
525 0 : sRet = A2OUSTR("date");
526 0 : break;
527 : case enumXFValueTypeFloat:
528 0 : sRet = A2OUSTR("float");
529 0 : break;
530 : case enumXFValueTypePercentage:
531 0 : sRet = A2OUSTR("percentage");
532 0 : break;
533 : case enumXFValueTypeString:
534 0 : sRet = A2OUSTR("string");
535 0 : break;
536 : case enumXFValueTypeTime:
537 0 : sRet = A2OUSTR("time");
538 0 : break;
539 : default:
540 0 : sRet = A2OUSTR("mirrored");
541 0 : break;
542 : }
543 0 : return sRet;
544 : }
545 :
546 4 : rtl::OUString GetColorMode(enumXFColorMode mode)
547 : {
548 4 : switch(mode)
549 : {
550 : case enumXFColorStandard:
551 4 : return A2OUSTR("standard");
552 : case enumXFColorGreyscale:
553 0 : return A2OUSTR("greyscale");
554 : case enumXFColorWatermark:
555 0 : return A2OUSTR("watermark");
556 : case enumXFColorMono:
557 0 : return A2OUSTR("mono");
558 : }
559 0 : return A2OUSTR("");
560 : }
561 :
562 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|