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