/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_xmloff.hxx" #include #include #include #include #include #include #include "xmloff/xmlnmspe.hxx" #include #include #include #include #include "XMLSectionExport.hxx" #include "XMLLineNumberingExport.hxx" #include "txtexppr.hxx" #include using ::rtl::OUString; using ::rtl::OUStringBuffer; using namespace ::com::sun::star; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::style; using namespace ::com::sun::star::container; using namespace ::com::sun::star::beans; using namespace ::xmloff::token; void XMLTextParagraphExport::exportStyleAttributes( const ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyle > & rStyle ) { OUString sName; Any aAny; Reference< XPropertySet > xPropSet( rStyle, UNO_QUERY ); Reference< XPropertySetInfo > xPropSetInfo( xPropSet->getPropertySetInfo()); if( xPropSetInfo->hasPropertyByName( sCategory ) ) { sal_Int16 nCategory = 0; xPropSet->getPropertyValue( sCategory ) >>= nCategory; enum XMLTokenEnum eValue = XML_TOKEN_INVALID; if( -1 != nCategory ) { switch( nCategory ) { case ParagraphStyleCategory::TEXT: eValue = XML_TEXT; break; case ParagraphStyleCategory::CHAPTER: eValue = XML_CHAPTER; break; case ParagraphStyleCategory::LIST: eValue = XML_LIST; break; case ParagraphStyleCategory::INDEX: eValue = XML_INDEX; break; case ParagraphStyleCategory::EXTRA: eValue = XML_EXTRA; break; case ParagraphStyleCategory::HTML: eValue = XML_HTML; break; } } if( eValue != XML_TOKEN_INVALID ) GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_CLASS, eValue); } if( xPropSetInfo->hasPropertyByName( sPageDescName ) ) { Reference< XPropertyState > xPropState( xPropSet, uno::UNO_QUERY ); if( PropertyState_DIRECT_VALUE == xPropState->getPropertyState( sPageDescName ) ) { xPropSet->getPropertyValue( sPageDescName ) >>= sName; // fix for #i5551# if( sName.getLength() > 0 ) GetExport().AddAttribute( XML_NAMESPACE_STYLE, XML_MASTER_PAGE_NAME, GetExport().EncodeStyleName( sName ) ); } } //sal_Int32 nOutlineLevel = //#outline level, zhaojianwei, moved to styleexp.cxx - XMLStyleExport::exportStyle(¡­¡­) // GetExport().GetTextParagraphExport()->GetHeadingLevel( rStyle->getName() ); //if( nOutlineLevel != -1 ) //{ // OUStringBuffer sTmp; // sTmp.append( static_cast(nOutlineLevel+1L) ); // GetExport().AddAttribute( XML_NAMESPACE_STYLE, // XML_DEFAULT_OUTLINE_LEVEL, // sTmp.makeStringAndClear() ); //} if( bProgress ) { ProgressBarHelper *pProgress = GetExport().GetProgressBarHelper(); pProgress->SetValue( pProgress->GetValue()+2 ); } } void XMLTextParagraphExport::exportNumStyles( sal_Bool bUsed ) { SvxXMLNumRuleExport aNumRuleExport( GetExport() ); aNumRuleExport.exportStyles( bUsed, pListAutoPool, !IsBlockMode() ); } void XMLTextParagraphExport::exportTextStyles( sal_Bool bUsed, sal_Bool bProg ) { sal_Bool bOldProg = bProgress; bProgress = bProg; Reference < lang::XMultiServiceFactory > xFactory (GetExport().GetModel(), UNO_QUERY); if (xFactory.is()) { OUString sTextDefaults ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.text.Defaults" ) ); Reference < XPropertySet > xPropSet (xFactory->createInstance ( sTextDefaults ), UNO_QUERY); if (xPropSet.is()) { exportDefaultStyle( xPropSet, GetXMLToken(XML_PARAGRAPH), GetParaPropMapper()); exportDefaultStyle( xPropSet, GetXMLToken(XML_TABLE), new XMLTextExportPropertySetMapper( new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_DEFAULTS ), GetExport() ) ); exportDefaultStyle( xPropSet, GetXMLToken(XML_TABLE_ROW), new XMLTextExportPropertySetMapper( new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_ROW_DEFAULTS ), GetExport() ) ); } } exportStyleFamily( "ParagraphStyles", GetXMLToken(XML_PARAGRAPH), GetParaPropMapper(), bUsed, XML_STYLE_FAMILY_TEXT_PARAGRAPH, 0); exportStyleFamily( "CharacterStyles", GetXMLToken(XML_TEXT), GetTextPropMapper(), bUsed, XML_STYLE_FAMILY_TEXT_TEXT ); // get shape export to make sure the the frame family is added correctly. GetExport().GetShapeExport(); exportStyleFamily( "FrameStyles", OUString(RTL_CONSTASCII_USTRINGPARAM(XML_STYLE_FAMILY_SD_GRAPHICS_NAME)), GetFramePropMapper(), bUsed, XML_STYLE_FAMILY_TEXT_FRAME, 0); exportNumStyles( bUsed ); if( !IsBlockMode() ) { exportTextFootnoteConfiguration(); XMLSectionExport::ExportBibliographyConfiguration(GetExport()); XMLLineNumberingExport aLineNumberingExport(GetExport()); aLineNumberingExport.Export(); } bProgress = bOldProg; }