diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2000-09-18 16:07:07 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2000-09-18 16:07:07 +0000 |
commit | fd069bee7e57ad529c3c0974559fd2d84ec3151a (patch) | |
tree | ef2eddeefb786feaf966d6a1c0c291872c0ae420 /xmloff/source/style/impastpl.hxx | |
parent | 04c1c754ab9d0ad07f2c5362d46597d13efe75c2 (diff) |
initial import
Diffstat (limited to 'xmloff/source/style/impastpl.hxx')
-rw-r--r-- | xmloff/source/style/impastpl.hxx | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/xmloff/source/style/impastpl.hxx b/xmloff/source/style/impastpl.hxx new file mode 100644 index 000000000000..4ad4321a6e01 --- /dev/null +++ b/xmloff/source/style/impastpl.hxx @@ -0,0 +1,251 @@ +/************************************************************************* + * + * $RCSfile: impastpl.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:07:05 $ + * + * 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: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _XMLOFF_XMLASTPL_IMPL_HXX +#define _XMLOFF_XMLASTPL_IMPL_HXX + +#ifndef _SAL_TYPES_H_ +#include <sal/types.h> +#endif +#ifndef _LIST_HXX +#include <tools/list.hxx> +#endif +#ifndef _CNTRSRT_HXX +#include <svtools/cntnrsrt.hxx> +#endif +#ifndef _RTL_USTRING_HXX_ +#include <rtl/ustring.hxx> +#endif +#ifndef __SGI_STL_VECTOR +#include <stl/vector> +#endif +#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_ +#include <com/sun/star/uno/Reference.h> +#endif +#ifndef _COM_SUN_STAR_XML_SAX_XATTRIBUTELIST_HPP_ +#include <com/sun/star/xml/sax/XAttributeList.hpp> +#endif + +#ifndef _XMLOFF_PROPMAPPINGTYPES_HXX +#include <maptype.hxx> +#endif +#ifndef _XMLOFF_XMLEXPPR_HXX +#include <xmlexppr.hxx> +#endif + +class XMLPropertySetMapper; +class SvXMLAutoStylePoolP; +class SvXMLAutoStylePoolParentsP_Impl; +class SvXMLAutoStylePoolNamesP_Impl; +class SvXMLAttributeList; +class SvXMLExportPropertyMapper; + +/////////////////////////////////////////////////////////////////////////////// +// +// Implementationclass for stylefamily-information +// + +class XMLFamilyData_Impl +{ +public: + sal_uInt32 mnFamily; + ::rtl::OUString maStrFamilyName; + UniReference < XMLPropertySetMapper > mxMapper; + + SvXMLAutoStylePoolParentsP_Impl* mpParentList; + SvXMLAutoStylePoolNamesP_Impl* mpNameList; + sal_uInt32 mnCount; + sal_uInt32 mnName; + ::rtl::OUString maStrPrefix; + +public: + XMLFamilyData_Impl( sal_Int32 nFamily, const ::rtl::OUString& rStrName, + const UniReference < XMLPropertySetMapper > & rMapper, + const ::rtl::OUString& rStrPrefix ); + XMLFamilyData_Impl( sal_Int32 nFamily ) + : mnFamily( nFamily ), mpParentList( NULL ), + mpNameList( NULL ), mnCount( 0 ), mnName( 0 ) + {} + ~XMLFamilyData_Impl(); + + friend int XMLFamilyDataSort_Impl( const XMLFamilyData_Impl& r1, const XMLFamilyData_Impl& r2 ); + + void ClearEntries(); +}; + +DECLARE_CONTAINER_SORT( XMLFamilyDataList_Impl, XMLFamilyData_Impl ) + +/////////////////////////////////////////////////////////////////////////////// +// +// +// + +DECLARE_CONTAINER_SORT_DEL( SvXMLAutoStylePoolNamesP_Impl, + ::rtl::OUString ) + +/////////////////////////////////////////////////////////////////////////////// +// +// Properties of a pool +// + +class SvXMLAutoStylePoolPropertiesP_Impl +{ + ::rtl::OUString msName; + ::std::vector< XMLPropertyState > maProperties; + sal_uInt32 mnPos; + +public: + + SvXMLAutoStylePoolPropertiesP_Impl( XMLFamilyData_Impl* pFamilyData, const ::std::vector< XMLPropertyState >& rProperties ); + + ~SvXMLAutoStylePoolPropertiesP_Impl() + { + } + + const ::rtl::OUString& GetName() const { return msName; } + const ::std::vector< XMLPropertyState >& GetProperties() const { return maProperties; } + sal_uInt32 GetPos() const { return mnPos; } +}; + +typedef SvXMLAutoStylePoolPropertiesP_Impl *SvXMLAutoStylePoolPropertiesPPtr; +DECLARE_LIST( SvXMLAutoStylePoolPropertiesPList_Impl, SvXMLAutoStylePoolPropertiesPPtr ) + +/////////////////////////////////////////////////////////////////////////////// +// +// Parents of AutoStylePool's +// + +class SvXMLAutoStylePoolParentP_Impl +{ + ::rtl::OUString msParent; + SvXMLAutoStylePoolPropertiesPList_Impl maPropertiesList; + +public: + + SvXMLAutoStylePoolParentP_Impl( const ::rtl::OUString & rParent ) : + msParent( rParent ) + { + } + + ~SvXMLAutoStylePoolParentP_Impl(); + + sal_Bool Add( XMLFamilyData_Impl* pFamilyData, const ::std::vector< XMLPropertyState >& rProperties, ::rtl::OUString& rName ); + + ::rtl::OUString Find( const XMLFamilyData_Impl* pFamilyData, const ::std::vector< XMLPropertyState >& rProperties ) const; + + const ::rtl::OUString& GetParent() const { return msParent; } + + const SvXMLAutoStylePoolPropertiesPList_Impl& GetPropertiesList() const + { + return maPropertiesList; + } +}; + +DECLARE_CONTAINER_SORT_DEL( SvXMLAutoStylePoolParentsP_Impl, + SvXMLAutoStylePoolParentP_Impl ) + +/////////////////////////////////////////////////////////////////////////////// +// +// Implementationclass of SvXMLAutoStylePool +// + +class SvXMLAutoStylePoolP_Impl +{ + const ::rtl::OUString msCDATA; + const ::rtl::OUString msWS; + SvXMLAttributeList* mpAttrList; + ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > mxAttrList; + + XMLFamilyDataList_Impl maFamilyList; + +public: + + SvXMLAutoStylePoolP_Impl(); + ~SvXMLAutoStylePoolP_Impl(); + + void AddFamily( sal_Int32 nFamily, const ::rtl::OUString& rStrName, + const UniReference < XMLPropertySetMapper > & rMapper, + const ::rtl::OUString& rStrPrefix ); + + void RegisterName( sal_Int32 nFamily, const ::rtl::OUString& rName ); + + ::rtl::OUString Add( sal_Int32 nFamily, const ::rtl::OUString& rParent, + const ::std::vector< XMLPropertyState >& rProperties ); + ::rtl::OUString Find( sal_Int32 nFamily, const ::rtl::OUString& rParent, + const ::std::vector< XMLPropertyState >& rProperties ) const; + + void exportXML( sal_Int32 nFamily, + const SvXMLExportPropertyMapper& rPropExp, + const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > & rHandler, + const SvXMLUnitConverter& rUnitConverter, + const SvXMLNamespaceMap& rNamespaceMap, + const SvXMLAutoStylePoolP *pAntiImpl) const; + + void ClearEntries(); +}; + +struct SvXMLAutoStylePoolPExport_Impl +{ + const ::rtl::OUString *mpParent; + const SvXMLAutoStylePoolPropertiesP_Impl *mpProperties; +}; + +#endif |