Branch data 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 : 3120 : 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 : 3120 : return rtl::OUString::valueOf(num);
75 : : }
76 : :
77 : 1305 : 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 : 1305 : sal_Int32 nNum = static_cast<sal_Int32>(num);
85 : 1305 : 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 : 4485 : 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 : 4485 : 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 : 5 : rtl::OUString GetUnderlineName(enumXFUnderline type)
160 : : {
161 [ - + - - : 5 : switch(type)
- - - - -
- - - - -
- - - -
- ]
162 : : {
163 : : case enumXFUnderlineNone:
164 : 0 : return A2OUSTR("none");
165 : : break;
166 : : case enumXFUnderlineSingle:
167 : 5 : 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 : 5 : 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 : 5 : rtl::OUString GetCrossoutName(enumXFCrossout type)
238 : : {
239 [ + - - - : 5 : switch(type)
- - ]
240 : : {
241 : : case enumXFCrossoutSignel:
242 : 5 : 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 : 5 : 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 : 95 : rtl::OUString GetTextDirName(enumXFTextDir dir)
305 : : {
306 [ - + - - : 95 : switch(dir)
- - - -
- ]
307 : : {
308 : : case enumXFTextDirLR:
309 : 0 : return A2OUSTR("lr");
310 : : break;
311 : : case enumXFTextDirLR_TB:
312 : 95 : 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 : 95 : return A2OUSTR("");
336 : : }
337 : :
338 : 85 : rtl::OUString GetFrameXPos(enumXFFrameXPos pos)
339 : : {
340 [ - - + + : 85 : 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 : 10 : return A2OUSTR("center");
350 : : break;
351 : : case enumXFFrameXPosFromLeft:
352 : 75 : return A2OUSTR("from-left");
353 : : break;
354 : : default:
355 : 0 : break;
356 : : }
357 : 85 : return A2OUSTR("");
358 : : }
359 : :
360 : 85 : rtl::OUString GetFrameXRel(enumXFFrameXRel rel)
361 : : {
362 [ + - - - : 85 : switch(rel)
- + - - -
+ - - -
- ]
363 : : {
364 : : case enumXFFrameXRelPage:
365 : 25 : 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 : 40 : 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 : 20 : 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 : 85 : return A2OUSTR("");
407 : : }
408 : :
409 : 85 : rtl::OUString GetFrameYPos(enumXFFrameYPos pos)
410 : : {
411 [ - + + + : 85 : switch(pos)
+ - ]
412 : : {
413 : : case enumXFFrameYPosTop:
414 : 0 : return A2OUSTR("top");
415 : : case enumXFFrameYPosMiddle:
416 : 10 : return A2OUSTR("middle");
417 : : case enumXFFrameYPosBottom:
418 : 40 : return A2OUSTR("bottom");
419 : : case enumXFFrameYPosFromTop:
420 : 15 : return A2OUSTR("from-top");
421 : : case enumXFFrameYPosBelow:
422 : 20 : return A2OUSTR("below");
423 : : }
424 : 85 : return A2OUSTR("");
425 : : }
426 : :
427 : 85 : rtl::OUString GetFrameYRel(enumXFFrameYRel rel)
428 : : {
429 [ - + + - : 85 : switch(rel)
- - - + +
- - ]
430 : : {
431 : : case enumXFFrameYRelBaseLine:
432 : 0 : return A2OUSTR("baseline");
433 : : case enumXFFrameYRelChar:
434 : 20 : return A2OUSTR("char");
435 : : case enumXFFrameYRelFrame:
436 : 20 : 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 : 5 : return A2OUSTR("paragraph");
447 : : case enumXFFrameYRelParaContent:
448 : 40 : return A2OUSTR("paragraph-content");
449 : : case enumXFFrameYRelText:
450 : 0 : return A2OUSTR("text");
451 : : }
452 : 85 : return A2OUSTR("");
453 : : }
454 : :
455 : 855 : rtl::OUString GetAlignName(enumXFAlignType align)
456 : : {
457 [ + + ]: 855 : if( align == enumXFAlignStart )
458 : 670 : return A2OUSTR("start");
459 [ + + ]: 185 : else if( align == enumXFAlignCenter )
460 : 55 : return A2OUSTR("center");
461 [ + + ]: 130 : else if( align == enumXFAlignEnd )
462 : 20 : return A2OUSTR("end");
463 [ - + ]: 110 : else if( align == enumXFAlignJustify )
464 : 0 : return A2OUSTR("justify");
465 [ - + ]: 110 : else if( align == enumXFAlignBottom )
466 : 0 : return A2OUSTR("bottom");
467 [ + - ]: 110 : else if( align == enumXFAlignTop )
468 : 110 : 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 : 855 : 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 : 20 : rtl::OUString GetColorMode(enumXFColorMode mode)
547 : : {
548 [ + - - - : 20 : switch(mode)
- ]
549 : : {
550 : : case enumXFColorStandard:
551 : 20 : 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 : 20 : return A2OUSTR("");
560 : : }
561 : :
562 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|