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 "xfutil.hxx"
61 : #include "xfparagraph.hxx"
62 : #include "xfcontentcontainer.hxx"
63 : #include <rtl/ustrbuf.hxx>
64 : #include <sstream>
65 :
66 0 : OUString DateTimeToOUString(XFDateTime& dt)
67 : {
68 0 : OUString aResult = OUString::number(dt.nYear) + "-" + OUString::number(dt.nMonth) + "-" + OUString::number(dt.nDay) +
69 0 : "T" + OUString::number(dt.nHour) + ":" + OUString::number(dt.nMinute) + ":" + OUString::number(dt.nSecond) + "." +
70 0 : OUString::number(dt.nMillSecond);
71 :
72 0 : return aResult;
73 : }
74 :
75 0 : OUString GetTableColName(sal_Int32 col)
76 : {
77 0 : int remain = 0;
78 : char ch;
79 0 : std::string strOut;
80 :
81 0 : if( col <= 26 )
82 : {
83 0 : ch = 'A' + col -1;
84 0 : strOut += ch;
85 0 : return OUString::createFromAscii(strOut.c_str());
86 : }
87 :
88 0 : while( col>26 )
89 : {
90 0 : remain = col%26;
91 0 : col = col/26;
92 0 : ch = 'A' + remain -1;
93 0 : strOut += ch;
94 : }
95 :
96 0 : ch = 'A' + remain -1;
97 0 : strOut += ch;
98 0 : return OUString::createFromAscii(strOut.c_str());
99 : }
100 :
101 : //tool functions:
102 1 : OUString GetUnderlineName(enumXFUnderline type)
103 : {
104 1 : switch(type)
105 : {
106 : case enumXFUnderlineNone:
107 0 : return OUString("none");
108 : break;
109 : case enumXFUnderlineSingle:
110 1 : return OUString("single");
111 : break;
112 : case enumXFUnderlineDouble:
113 0 : return OUString("double");
114 : break;
115 : case enumXFUnderlineDotted:
116 0 : return OUString("dotted");
117 : break;
118 : case enumXFUnderlineDash:
119 0 : return OUString("dash");
120 : break;
121 : case enumXFUnderlineLongDash:
122 0 : return OUString("long-dash");
123 : break;
124 : case enumXFUnderlineDotDash:
125 0 : return OUString("dot-dash");
126 : break;
127 : case enumXFUnderlineDotDotDash:
128 0 : return OUString("dot-dot-dash");
129 : break;
130 : case enumXFUnderlineWave:
131 0 : return OUString("wave");
132 : break;
133 : case enumXFUnderlineBold:
134 0 : return OUString("bold");
135 : break;
136 : case enumXFUnderlineBoldDotted:
137 0 : return OUString("bold-dotted");
138 : break;
139 : case enumXFUnderlineBoldDash:
140 0 : return OUString("bold-dash");
141 : break;
142 : case enumXFUnderlineBoldLongDash:
143 0 : return OUString("bold-long-dash");
144 : break;
145 : case enumXFUnderlineBoldDotDash:
146 0 : return OUString("bold-dot-dash");
147 : break;
148 : case enumXFUnderlineBoldDotDotDash:
149 0 : return OUString("bold-dot-dot-dash");
150 : break;
151 : case enumXFUnderlineBoldWave:
152 0 : return OUString("bold-wave");
153 : break;
154 : case enumXFUnderlineDoubleWave:
155 0 : return OUString("double-wave");
156 : break;
157 : case enumXFUnderlineSmallWave:
158 0 : return OUString("samll-wave");
159 : break;
160 : }
161 0 : return OUString("");
162 : }
163 :
164 0 : OUString GetReliefName(enumXFRelief type)
165 : {
166 0 : switch(type)
167 : {
168 : case enumXFReliefEngraved:
169 0 : return OUString("engraved");
170 : break;
171 : case enumXFReliefEmbossed:
172 0 : return OUString("embossed");
173 : break;
174 : default:
175 0 : break;
176 : }
177 0 : return OUString("");
178 : }
179 :
180 1 : OUString GetCrossoutName(enumXFCrossout type)
181 : {
182 1 : switch(type)
183 : {
184 : case enumXFCrossoutSignel:
185 1 : return OUString("single-line");
186 : break;
187 : case enumXFCrossoutDouble:
188 0 : return OUString("double-line");
189 : break;
190 : case enumXFCrossoutThick:
191 0 : return OUString("thick-line");
192 : break;
193 : case enumXFCrossoutSlash:
194 0 : return OUString("slash");
195 : break;
196 : case enumXFCrossoutX:
197 0 : return OUString("X");
198 : break;
199 : default:
200 0 : break;
201 : }
202 0 : return OUString("");
203 : }
204 :
205 0 : OUString GetTransformName(enumXFTransform type)
206 : {
207 0 : switch(type) {
208 : case enumXFTransformUpper:
209 0 : return OUString("uppercase");
210 : break;
211 : case enumXFTransformLower:
212 0 : return OUString("lowercase");
213 : break;
214 : case enumXFTransformCapitalize:
215 0 : return OUString("capitalize");
216 : break;
217 : case enumXFTransformSmallCaps:
218 0 : return OUString("small-caps");
219 : break;
220 : default:
221 0 : break;
222 : }
223 0 : return OUString("");
224 : }
225 :
226 0 : OUString GetEmphasizeName(enumXFEmphasize type)
227 : {
228 0 : switch(type) {
229 : case enumXFEmphasizeDot:
230 0 : return OUString("dot");
231 : break;
232 : case enumXFEmphasizeCircle:
233 0 : return OUString("circle");
234 : break;
235 : case enumXFEmphasizeDisc:
236 0 : return OUString("disc");
237 : break;
238 : case enumXFEmphasizeAccent:
239 0 : return OUString("accent");
240 : break;
241 : default:
242 0 : break;
243 : }
244 0 : return OUString("");
245 : }
246 :
247 19 : OUString GetTextDirName(enumXFTextDir dir)
248 : {
249 19 : switch(dir)
250 : {
251 : case enumXFTextDirLR:
252 0 : return OUString("lr");
253 : break;
254 : case enumXFTextDirLR_TB:
255 19 : return OUString("lr-tb");
256 : break;
257 : case enumXFTextDirPage:
258 0 : return OUString("page");
259 : break;
260 : case enumXFTextDirRL:
261 0 : return OUString("rl");
262 : break;
263 : case enumXFTextDirRL_TB:
264 0 : return OUString("rl-tb");
265 : break;
266 : case enumXFTextDirTB:
267 0 : return OUString("tb");
268 : break;
269 : case enumXFTextDirTB_LR:
270 0 : return OUString("tb-lr");
271 : break;
272 : case enumXFTextDirTB_RL:
273 0 : return OUString("tb-rl");
274 : break;
275 : default:
276 0 : break;
277 : }
278 0 : return OUString("");
279 : }
280 :
281 17 : OUString GetFrameXPos(enumXFFrameXPos pos)
282 : {
283 17 : switch(pos)
284 : {
285 : case enumXFFrameXPosLeft:
286 0 : return OUString("left");
287 : break;
288 : case enumXFFrameXPosRight:
289 0 : return OUString("right");
290 : break;
291 : case enumXFFrameXPosCenter:
292 2 : return OUString("center");
293 : break;
294 : case enumXFFrameXPosFromLeft:
295 15 : return OUString("from-left");
296 : break;
297 : default:
298 0 : break;
299 : }
300 0 : return OUString("");
301 : }
302 :
303 17 : OUString GetFrameXRel(enumXFFrameXRel rel)
304 : {
305 17 : switch(rel)
306 : {
307 : case enumXFFrameXRelPage:
308 5 : return OUString("page");
309 : break;
310 : case enumXFFrameXRelPageContent:
311 0 : return OUString("page-content");
312 : break;
313 : case enumXFFrameXRelPageEndMargin:
314 0 : return OUString("page-end-margin");
315 : break;
316 : case enumXFFrameXRelPageStartMargin:
317 0 : return OUString("page-start-margin");
318 : break;
319 : case enumXFFrameXRelPara:
320 0 : return OUString("paragraph");
321 : break;
322 : case enumXFFrameXRelParaContent:
323 8 : return OUString("paragraph-content");
324 : break;
325 : case enumXFFrameXRelParaEndMargin:
326 0 : return OUString("paragraph-end-margin");
327 : break;
328 : case enumXFFrameXRelParaStartMargin:
329 0 : return OUString("paragraph-start-margin");
330 : break;
331 : case enumXFFrameXRelChar:
332 0 : return OUString("char");
333 : break;
334 : case enumXFFrameXRelFrame:
335 4 : return OUString("frame");
336 : break;
337 : case enumXFFrameXRelFrameContent:
338 0 : return OUString("frame-content");
339 : break;
340 : case enumXFFrameXRelFrameEndMargin:
341 0 : return OUString("frame-end-margin");
342 : break;
343 : case enumXFFrameXRelFrameStartMargin:
344 0 : return OUString("frame-start-margin");
345 : break;
346 : default:
347 0 : break;
348 : }
349 0 : return OUString("");
350 : }
351 :
352 17 : OUString GetFrameYPos(enumXFFrameYPos pos)
353 : {
354 17 : switch(pos)
355 : {
356 : case enumXFFrameYPosTop:
357 0 : return OUString("top");
358 : case enumXFFrameYPosMiddle:
359 2 : return OUString("middle");
360 : case enumXFFrameYPosBottom:
361 8 : return OUString("bottom");
362 : case enumXFFrameYPosFromTop:
363 3 : return OUString("from-top");
364 : case enumXFFrameYPosBelow:
365 4 : return OUString("below");
366 : }
367 0 : return OUString("");
368 : }
369 :
370 17 : OUString GetFrameYRel(enumXFFrameYRel rel)
371 : {
372 17 : switch(rel)
373 : {
374 : case enumXFFrameYRelBaseLine:
375 0 : return OUString("baseline");
376 : case enumXFFrameYRelChar:
377 4 : return OUString("char");
378 : case enumXFFrameYRelFrame:
379 4 : return OUString("frame");
380 : case enumXFFrameYRelFrameContent:
381 0 : return OUString("frame-content");
382 : case enumXFFrameYRelLine:
383 0 : return OUString("line");
384 : case enumXFFrameYRelPage:
385 0 : return OUString("page");
386 : case enumXFFrameYRelPageContent:
387 0 : return OUString("page-content");
388 : case enumXFFrameYRelPara:
389 1 : return OUString("paragraph");
390 : case enumXFFrameYRelParaContent:
391 8 : return OUString("paragraph-content");
392 : case enumXFFrameYRelText:
393 0 : return OUString("text");
394 : }
395 0 : return OUString("");
396 : }
397 :
398 170 : OUString GetAlignName(enumXFAlignType align)
399 : {
400 170 : if( align == enumXFAlignStart )
401 133 : return OUString("start");
402 37 : else if( align == enumXFAlignCenter )
403 11 : return OUString("center");
404 26 : else if( align == enumXFAlignEnd )
405 4 : return OUString("end");
406 22 : else if( align == enumXFAlignJustify )
407 0 : return OUString("justify");
408 22 : else if( align == enumXFAlignBottom )
409 0 : return OUString("bottom");
410 22 : else if( align == enumXFAlignTop )
411 22 : return OUString("top");
412 0 : else if( align == enumXFAlignMiddle )
413 0 : return OUString("middle");
414 0 : else if( align == enumXFALignMargins )
415 0 : return OUString("margins");
416 :
417 0 : return OUString("");
418 : }
419 :
420 0 : OUString GetDrawKind(enumXFDrawKind kind)
421 : {
422 0 : if( kind == enumXFDrawKindFull )
423 0 : return OUString("full");
424 0 : else if( kind == enumXFDrawKindSection )
425 0 : return OUString("section");
426 0 : else if( kind == enumXFDrawKindCut )
427 0 : return OUString("cut");
428 : else //( kind == enumXFDrawKindArc )
429 0 : return OUString("arc");
430 : }
431 :
432 0 : OUString GetPageUsageName(enumXFPageUsage usage)
433 : {
434 0 : OUString sRet;
435 0 : switch(usage)
436 : {
437 : case enumXFPageUsageAll:
438 0 : sRet = "all";
439 0 : break;
440 : case enumXFPageUsageLeft:
441 0 : sRet = "left";
442 0 : break;
443 : case enumXFPageUsageRight:
444 0 : sRet = "right";
445 0 : break;
446 : case enumXFPageUsageMirror:
447 0 : sRet = "mirrored";
448 0 : break;
449 : default:
450 0 : sRet = "mirrored";
451 0 : break;
452 : }
453 0 : return sRet;
454 : }
455 :
456 0 : OUString GetValueType(enumXFValueType type)
457 : {
458 0 : OUString sRet;
459 0 : switch(type)
460 : {
461 : case enumXFValueTypeBoolean:
462 0 : sRet = "boolean";
463 0 : break;
464 : case enumXFValueTypeCurrency:
465 0 : sRet = "currency";
466 0 : break;
467 : case enumXFValueTypeDate:
468 0 : sRet = "date";
469 0 : break;
470 : case enumXFValueTypeFloat:
471 0 : sRet = "float";
472 0 : break;
473 : case enumXFValueTypePercentage:
474 0 : sRet = "percentage";
475 0 : break;
476 : case enumXFValueTypeString:
477 0 : sRet = "string";
478 0 : break;
479 : case enumXFValueTypeTime:
480 0 : sRet = "time";
481 0 : break;
482 : default:
483 0 : sRet = "mirrored";
484 0 : break;
485 : }
486 0 : return sRet;
487 : }
488 :
489 4 : OUString GetColorMode(enumXFColorMode mode)
490 : {
491 4 : switch(mode)
492 : {
493 : case enumXFColorStandard:
494 4 : return OUString("standard");
495 : case enumXFColorGreyscale:
496 0 : return OUString("greyscale");
497 : case enumXFColorWatermark:
498 0 : return OUString("watermark");
499 : case enumXFColorMono:
500 0 : return OUString("mono");
501 : }
502 0 : return OUString("");
503 : }
504 :
505 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|