diff options
Diffstat (limited to 'xmloff/source/text/XMLTextColumnsContext.cxx')
-rw-r--r-- | xmloff/source/text/XMLTextColumnsContext.cxx | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/xmloff/source/text/XMLTextColumnsContext.cxx b/xmloff/source/text/XMLTextColumnsContext.cxx index 48175ae33e4f..a1bfa163711a 100644 --- a/xmloff/source/text/XMLTextColumnsContext.cxx +++ b/xmloff/source/text/XMLTextColumnsContext.cxx @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -67,10 +68,11 @@ enum SvXMLSepTokenMapAttrs XML_TOK_COLUMN_SEP_HEIGHT, XML_TOK_COLUMN_SEP_COLOR, XML_TOK_COLUMN_SEP_ALIGN, + XML_TOK_COLUMN_SEP_STYLE, XML_TOK_COLUMN_SEP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aColAttrTokenMap[] = +static SvXMLTokenMapEntry aColAttrTokenMap[] = { { XML_NAMESPACE_STYLE, XML_REL_WIDTH, XML_TOK_COLUMN_WIDTH }, { XML_NAMESPACE_FO, XML_START_INDENT, XML_TOK_COLUMN_MARGIN_LEFT }, @@ -78,16 +80,26 @@ static __FAR_DATA SvXMLTokenMapEntry aColAttrTokenMap[] = XML_TOKEN_MAP_END }; -static __FAR_DATA SvXMLTokenMapEntry aColSepAttrTokenMap[] = +static SvXMLTokenMapEntry aColSepAttrTokenMap[] = { { XML_NAMESPACE_STYLE, XML_WIDTH, XML_TOK_COLUMN_SEP_WIDTH }, { XML_NAMESPACE_STYLE, XML_COLOR, XML_TOK_COLUMN_SEP_COLOR }, { XML_NAMESPACE_STYLE, XML_HEIGHT, XML_TOK_COLUMN_SEP_HEIGHT }, { XML_NAMESPACE_STYLE, XML_VERTICAL_ALIGN, XML_TOK_COLUMN_SEP_ALIGN }, + { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_COLUMN_SEP_STYLE }, XML_TOKEN_MAP_END }; -SvXMLEnumMapEntry __READONLY_DATA pXML_Sep_Align_Enum[] = +SvXMLEnumMapEntry const pXML_Sep_Style_Enum[] = +{ + { XML_NONE, 0 }, + { XML_SOLID, 1 }, + { XML_DOTTED, 2 }, + { XML_DASHED, 3 }, + { XML_TOKEN_INVALID, 0 } +}; + +SvXMLEnumMapEntry const pXML_Sep_Align_Enum[] = { { XML_TOP, VerticalAlignment_TOP }, { XML_MIDDLE, VerticalAlignment_MIDDLE }, @@ -180,6 +192,7 @@ class XMLTextColumnSepContext_Impl: public SvXMLImportContext sal_Int32 nWidth; sal_Int32 nColor; sal_Int8 nHeight; + sal_Int8 nStyle; VerticalAlignment eVertAlign; @@ -197,6 +210,7 @@ public: sal_Int32 GetWidth() const { return nWidth; } sal_Int32 GetColor() const { return nColor; } sal_Int8 GetHeight() const { return nHeight; } + sal_Int8 GetStyle() const { return nStyle; } VerticalAlignment GetVertAlign() const { return eVertAlign; } }; @@ -213,6 +227,7 @@ XMLTextColumnSepContext_Impl::XMLTextColumnSepContext_Impl( nWidth( 2 ), nColor( 0 ), nHeight( 100 ), + nStyle( 1 ), eVertAlign( VerticalAlignment_TOP ) { sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; @@ -256,6 +271,15 @@ XMLTextColumnSepContext_Impl::XMLTextColumnSepContext_Impl( eVertAlign = (VerticalAlignment)nAlign; } break; + case XML_TOK_COLUMN_SEP_STYLE: + { + sal_uInt16 nStyleVal; + if( GetImport().GetMM100UnitConverter(). + convertEnum( nStyleVal, rValue, + pXML_Sep_Style_Enum ) ) + nStyle = (sal_Int8)nStyleVal; + } + break; } } } @@ -286,6 +310,7 @@ XMLTextColumnsContext::XMLTextColumnsContext( , sSeparatorLineVerticalAlignment(RTL_CONSTASCII_USTRINGPARAM("SeparatorLineVerticalAlignment")) , sIsAutomatic(RTL_CONSTASCII_USTRINGPARAM("IsAutomatic")) , sAutomaticDistance(RTL_CONSTASCII_USTRINGPARAM("AutomaticDistance")) +, sSeparatorLineStyle(RTL_CONSTASCII_USTRINGPARAM("SeparatorLineStyle")) , pColumns( 0 ) , pColumnSep( 0 ) , pColumnAttrTokenMap( new SvXMLTokenMap(aColAttrTokenMap) ) @@ -477,6 +502,11 @@ void XMLTextColumnsContext::EndElement( ) xPropSet->setPropertyValue( sSeparatorLineRelativeHeight, aAny ); } + if ( pColumnSep->GetStyle() ) + { + aAny <<= pColumnSep->GetStyle(); + xPropSet->setPropertyValue( sSeparatorLineStyle, aAny ); + } aAny <<= pColumnSep->GetColor(); @@ -501,3 +531,5 @@ void XMLTextColumnsContext::EndElement( ) XMLElementPropertyContext::EndElement(); } + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |