summaryrefslogtreecommitdiff
path: root/lotuswordpro/source/filter/xfilter/xfutil.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'lotuswordpro/source/filter/xfilter/xfutil.cxx')
-rw-r--r--lotuswordpro/source/filter/xfilter/xfutil.cxx584
1 files changed, 584 insertions, 0 deletions
diff --git a/lotuswordpro/source/filter/xfilter/xfutil.cxx b/lotuswordpro/source/filter/xfilter/xfutil.cxx
new file mode 100644
index 000000000000..2991f98a97c0
--- /dev/null
+++ b/lotuswordpro/source/filter/xfilter/xfutil.cxx
@@ -0,0 +1,584 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: IBM Corporation
+ *
+ * Copyright: 2008 by IBM Corporation
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+/*************************************************************************
+ * @file
+ * Util functions for xml filter.
+ ************************************************************************/
+/*************************************************************************
+ * Change History
+ * 2004-12-23 create this file.
+ * 2005-01-24 add some enum tool funtion here.
+ ************************************************************************/
+#include <stdio.h>
+#include "xfutil.hxx"
+#include "xfparagraph.hxx"
+#include "xfcontentcontainer.hxx"
+#include <rtl/ustrbuf.hxx>
+#include <sstream>
+
+rtl::OUString Int32ToOUString(sal_Int32 num)
+{
+ /*std::stringstream sstrm;
+
+ sstrm<<(int)num;
+ return rtl::OUString::createFromAscii(sstrm.str().c_str());
+ */
+ return rtl::OUString::valueOf(num);
+}
+
+rtl::OUString Int16ToOUString(sal_Int16 num)
+{
+ /*std::stringstream sstrm;
+
+ sstrm<<(int)num;
+ return rtl::OUString::createFromAscii(sstrm.str().c_str());
+ */
+ sal_Int32 nNum = static_cast<sal_Int32>(num);
+ return rtl::OUString::valueOf(nNum);
+}
+
+rtl::OUString FloatToOUString(float num, sal_Int32 /*precision*/)
+{
+ /*std::stringstream sstrm;
+ std::string strRet;
+
+ sstrm.precision(precision);
+ sstrm<<num;
+ return rtl::OUString::createFromAscii(sstrm.str().c_str());
+ */
+ return rtl::OUString::valueOf(num);
+}
+
+rtl::OUString DoubleToOUString(double num, sal_Int32 /*precision*/)
+{
+ /*std::stringstream sstrm;
+ std::string strRet;
+
+ sstrm.precision(precision);
+ sstrm<<num;
+ return rtl::OUString::createFromAscii(sstrm.str().c_str());
+ */
+ return rtl::OUString::valueOf(num);
+}
+
+rtl::OUString OEMToOUString(const std::string& /*str*/)
+{
+ return rtl::OUString();
+}
+
+rtl::OUString ColorToOUString( sal_uInt32 color)
+{
+ unsigned int c = color&0x00ffffff;
+ unsigned char r;
+ unsigned char g;
+ unsigned char b;
+ char buf[8];
+
+ unsigned int temp = c;
+ r = temp&0x000000ff;
+
+ temp = c;
+ g = (temp&0x0000ff00)>>8;
+
+ temp = c;
+ b = (temp&0x00ff0000)>>16;
+
+ rtl_zeroMemory(buf,8);
+ sprintf(buf,"#%2x%2x%2x",r,g,b);
+ for( int i=0; i<6; i++ )
+ {
+ if( buf[i] == ' ' )
+ buf[i] = '0';
+ }
+ return rtl::OUString::createFromAscii(buf);
+}
+
+rtl::OUString DateTimeToOUString(XFDateTime& dt)
+{
+ rtl::OUStringBuffer buf;
+ buf.append(dt.nYear);
+ buf.append( A2OUSTR("-") );
+ buf.append(dt.nMonth);
+ buf.append( A2OUSTR("-") );
+ buf.append(dt.nDay);
+ buf.append( A2OUSTR("T") );
+ buf.append(dt.nHour);
+ buf.append( A2OUSTR(":") );
+ buf.append(dt.nMinute);
+ buf.append( A2OUSTR(":") );
+ buf.append(dt.nSecond);
+ buf.append( A2OUSTR(".") );
+ buf.append(dt.nMillSecond);
+
+ return buf.makeStringAndClear();
+}
+
+rtl::OUString GetTableColName(sal_Int32 col)
+{
+ int remain;
+ char ch;
+ std::string strOut;
+
+ if( col <= 26 )
+ {
+ ch = 'A' + col -1;
+ strOut += ch;
+ return A2OUSTR(strOut.c_str());
+ }
+
+ while( col>26 )
+ {
+ remain = col%26;
+ col = col/26;
+ ch = 'A' + remain -1;
+ strOut += ch;
+ }
+
+ ch = 'A' + remain -1;
+ strOut += ch;
+ return A2OUSTR(strOut.c_str());
+}
+
+//tool functions:
+rtl::OUString GetUnderlineName(enumXFUnderline type)
+{
+ switch(type)
+ {
+ case enumXFUnderlineNone:
+ return A2OUSTR("none");
+ break;
+ case enumXFUnderlineSingle:
+ return A2OUSTR("single");
+ break;
+ case enumXFUnderlineDouble:
+ return A2OUSTR("double");
+ break;
+ case enumXFUnderlineDotted:
+ return A2OUSTR("dotted");
+ break;
+ case enumXFUnderlineDash:
+ return A2OUSTR("dash");
+ break;
+ case enumXFUnderlineLongDash:
+ return A2OUSTR("long-dash");
+ break;
+ case enumXFUnderlineDotDash:
+ return A2OUSTR("dot-dash");
+ break;
+ case enumXFUnderlineDotDotDash:
+ return A2OUSTR("dot-dot-dash");
+ break;
+ case enumXFUnderlineWave:
+ return A2OUSTR("wave");
+ break;
+ case enumXFUnderlineBold:
+ return A2OUSTR("bold");
+ break;
+ case enumXFUnderlineBoldDotted:
+ return A2OUSTR("bold-dotted");
+ break;
+ case enumXFUnderlineBoldDash:
+ return A2OUSTR("bold-dash");
+ break;
+ case enumXFUnderlineBoldLongDash:
+ return A2OUSTR("bold-long-dash");
+ break;
+ case enumXFUnderlineBoldDotDash:
+ return A2OUSTR("bold-dot-dash");
+ break;
+ case enumXFUnderlineBoldDotDotDash:
+ return A2OUSTR("bold-dot-dot-dash");
+ break;
+ case enumXFUnderlineBoldWave:
+ return A2OUSTR("bold-wave");
+ break;
+ case enumXFUnderlineDoubleWave:
+ return A2OUSTR("double-wave");
+ break;
+ case enumXFUnderlineSmallWave:
+ return A2OUSTR("samll-wave");
+ break;
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetReliefName(enumXFRelief type)
+{
+ switch(type)
+ {
+ case enumXFReliefEngraved:
+ return A2OUSTR("engraved");
+ break;
+ case enumXFReliefEmbossed:
+ return A2OUSTR("embossed");
+ break;
+ default:
+ break;
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetCrossoutName(enumXFCrossout type)
+{
+ switch(type)
+ {
+ case enumXFCrossoutSignel:
+ return A2OUSTR("single-line");
+ break;
+ case enumXFCrossoutDouble:
+ return A2OUSTR("double-line");
+ break;
+ case enumXFCrossoutThick:
+ return A2OUSTR("thick-line");
+ break;
+ case enumXFCrossoutSlash:
+ return A2OUSTR("slash");
+ break;
+ case enumXFCrossoutX:
+ return A2OUSTR("X");
+ break;
+ default:
+ break;
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetTransformName(enumXFTransform type)
+{
+ switch(type) {
+ case enumXFTransformUpper:
+ return A2OUSTR("uppercase");
+ break;
+ case enumXFTransformLower:
+ return A2OUSTR("lowercase");
+ break;
+ case enumXFTransformCapitalize:
+ return A2OUSTR("capitalize");
+ break;
+ case enumXFTransformSmallCaps:
+ return A2OUSTR("small-caps");
+ break;
+ default:
+ break;
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetEmphasizeName(enumXFEmphasize type)
+{
+ switch(type) {
+ case enumXFEmphasizeDot:
+ return A2OUSTR("dot");
+ break;
+ case enumXFEmphasizeCircle:
+ return A2OUSTR("circle");
+ break;
+ case enumXFEmphasizeDisc:
+ return A2OUSTR("disc");
+ break;
+ case enumXFEmphasizeAccent:
+ return A2OUSTR("accent");
+ break;
+ default:
+ break;
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetTextDirName(enumXFTextDir dir)
+{
+ switch(dir)
+ {
+ case enumXFTextDirLR:
+ return A2OUSTR("lr");
+ break;
+ case enumXFTextDirLR_TB:
+ return A2OUSTR("lr-tb");
+ break;
+ case enumXFTextDirPage:
+ return A2OUSTR("page");
+ break;
+ case enumXFTextDirRL:
+ return A2OUSTR("rl");
+ break;
+ case enumXFTextDirRL_TB:
+ return A2OUSTR("rl-tb");
+ break;
+ case enumXFTextDirTB:
+ return A2OUSTR("tb");
+ break;
+ case enumXFTextDirTB_LR:
+ return A2OUSTR("tb-lr");
+ break;
+ case enumXFTextDirTB_RL:
+ return A2OUSTR("tb-rl");
+ break;
+ default:
+ break;
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetFrameXPos(enumXFFrameXPos pos)
+{
+ switch(pos)
+ {
+ case enumXFFrameXPosLeft:
+ return A2OUSTR("left");
+ break;
+ case enumXFFrameXPosRight:
+ return A2OUSTR("right");
+ break;
+ case enumXFFrameXPosCenter:
+ return A2OUSTR("center");
+ break;
+ case enumXFFrameXPosFromLeft:
+ return A2OUSTR("from-left");
+ break;
+ default:
+ break;
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetFrameXRel(enumXFFrameXRel rel)
+{
+ switch(rel)
+ {
+ case enumXFFrameXRelPage:
+ return A2OUSTR("page");
+ break;
+ case enumXFFrameXRelPageContent:
+ return A2OUSTR("page-content");
+ break;
+ case enumXFFrameXRelPageEndMargin:
+ return A2OUSTR("page-end-margin");
+ break;
+ case enumXFFrameXRelPageStartMargin:
+ return A2OUSTR("page-start-margin");
+ break;
+ case enumXFFrameXRelPara:
+ return A2OUSTR("paragraph");
+ break;
+ case enumXFFrameXRelParaContent:
+ return A2OUSTR("paragraph-content");
+ break;
+ case enumXFFrameXRelParaEndMargin:
+ return A2OUSTR("paragraph-end-margin");
+ break;
+ case enumXFFrameXRelParaStartMargin:
+ return A2OUSTR("paragraph-start-margin");
+ break;
+ case enumXFFrameXRelChar:
+ return A2OUSTR("char");
+ break;
+ case enumXFFrameXRelFrame:
+ return A2OUSTR("frame");
+ break;
+ case enumXFFrameXRelFrameContent:
+ return A2OUSTR("frame-content");
+ break;
+ case enumXFFrameXRelFrameEndMargin:
+ return A2OUSTR("frame-end-margin");
+ break;
+ case enumXFFrameXRelFrameStartMargin:
+ return A2OUSTR("frame-start-margin");
+ break;
+ default:
+ break;
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetFrameYPos(enumXFFrameYPos pos)
+{
+ switch(pos)
+ {
+ case enumXFFrameYPosTop:
+ return A2OUSTR("top");
+ case enumXFFrameYPosMiddle:
+ return A2OUSTR("middle");
+ case enumXFFrameYPosBottom:
+ return A2OUSTR("bottom");
+ case enumXFFrameYPosFromTop:
+ return A2OUSTR("from-top");
+ case enumXFFrameYPosBelow:
+ return A2OUSTR("below");
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetFrameYRel(enumXFFrameYRel rel)
+{
+ switch(rel)
+ {
+ case enumXFFrameYRelBaseLine:
+ return A2OUSTR("baseline");
+ case enumXFFrameYRelChar:
+ return A2OUSTR("char");
+ case enumXFFrameYRelFrame:
+ return A2OUSTR("frame");
+ case enumXFFrameYRelFrameContent:
+ return A2OUSTR("frame-content");
+ case enumXFFrameYRelLine:
+ return A2OUSTR("line");
+ case enumXFFrameYRelPage:
+ return A2OUSTR("page");
+ case enumXFFrameYRelPageContent:
+ return A2OUSTR("page-content");
+ case enumXFFrameYRelPara:
+ return A2OUSTR("paragraph");
+ case enumXFFrameYRelParaContent:
+ return A2OUSTR("paragraph-content");
+ case enumXFFrameYRelText:
+ return A2OUSTR("text");
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetAlignName(enumXFAlignType align)
+{
+ if( align == enumXFAlignStart )
+ return A2OUSTR("start");
+ else if( align == enumXFAlignCenter )
+ return A2OUSTR("center");
+ else if( align == enumXFAlignEnd )
+ return A2OUSTR("end");
+ else if( align == enumXFAlignJustify )
+ return A2OUSTR("justify");
+ else if( align == enumXFAlignBottom )
+ return A2OUSTR("bottom");
+ else if( align == enumXFAlignTop )
+ return A2OUSTR("top");
+ else if( align == enumXFAlignMiddle )
+ return A2OUSTR("middle");
+ else if( align == enumXFALignMargins )
+ return A2OUSTR("margins");
+
+ return A2OUSTR("");
+}
+
+rtl::OUString GetDrawKind(enumXFDrawKind kind)
+{
+ if( kind == enumXFDrawKindFull )
+ return A2OUSTR("full");
+ else if( kind == enumXFDrawKindSection )
+ return A2OUSTR("section");
+ else if( kind == enumXFDrawKindCut )
+ return A2OUSTR("cut");
+ else //( kind == enumXFDrawKindArc )
+ return A2OUSTR("arc");
+}
+
+rtl::OUString GetPageUsageName(enumXFPageUsage usage)
+{
+ switch(usage)
+ {
+ case enumXFPageUsageAll:
+ return A2OUSTR("all");
+ case enumXFPageUsageLeft:
+ return A2OUSTR("left");
+ case enumXFPageUsageRight:
+ return A2OUSTR("right");
+ case enumXFPageUsageMirror:
+ return A2OUSTR("mirrored");
+ default:
+ return A2OUSTR("mirrored");
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetValueType(enumXFValueType type)
+{
+ switch(type)
+ {
+ case enumXFValueTypeBoolean:
+ return A2OUSTR("boolean");
+ case enumXFValueTypeCurrency:
+ return A2OUSTR("currency");
+ case enumXFValueTypeDate:
+ return A2OUSTR("date");
+ case enumXFValueTypeFloat:
+ return A2OUSTR("float");
+ case enumXFValueTypePercentage:
+ return A2OUSTR("percentage");
+ case enumXFValueTypeString:
+ return A2OUSTR("string");
+ case enumXFValueTypeTime:
+ return A2OUSTR("time");
+ default:
+ return A2OUSTR("mirrored");
+ }
+ return A2OUSTR("");
+}
+
+rtl::OUString GetColorMode(enumXFColorMode mode)
+{
+ switch(mode)
+ {
+ case enumXFColorStandard:
+ return A2OUSTR("standard");
+ case enumXFColorGreyscale:
+ return A2OUSTR("greyscale");
+ case enumXFColorWatermark:
+ return A2OUSTR("watermark");
+ case enumXFColorMono:
+ return A2OUSTR("mono");
+ }
+ return A2OUSTR("");
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */