blob: 4580923eacbeee3185fcef0589354802fc80586b [file] [log] [blame]
/**************************************************************
*
* 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.
*
*************************************************************/
#ifndef SC_XMLSTYLE_HXX
#define SC_XMLSTYLE_HXX
#include <xmloff/maptype.hxx>
#include <xmloff/xmlaustp.hxx>
#include <xmloff/xmltypes.hxx>
#include <xmloff/xmlprmap.hxx>
#include <xmloff/prhdlfac.hxx>
#include <xmloff/styleexp.hxx>
#include <xmloff/xmlexppr.hxx>
#include <xmloff/contextid.hxx>
extern const XMLPropertyMapEntry aXMLScCellStylesProperties[];
extern const XMLPropertyMapEntry aXMLScColumnStylesProperties[];
extern const XMLPropertyMapEntry aXMLScRowStylesProperties[];
extern const XMLPropertyMapEntry aXMLScRowStylesImportProperties[];
extern const XMLPropertyMapEntry aXMLScTableStylesProperties[];
extern const XMLPropertyMapEntry aXMLScTableStylesImportProperties[];
//CellStyles
#define XML_SC_TYPE_CELLPROTECTION (XML_SC_TYPES_START + 1)
#define XML_SC_TYPE_PRINTCONTENT (XML_SC_TYPES_START + 2)
#define XML_SC_TYPE_HORIJUSTIFY (XML_SC_TYPES_START + 3)
#define XML_SC_TYPE_HORIJUSTIFYSOURCE (XML_SC_TYPES_START + 4)
#define XML_SC_TYPE_HORIJUSTIFYREPEAT (XML_SC_TYPES_START + 5)
#define XML_SC_TYPE_ORIENTATION (XML_SC_TYPES_START + 6)
#define XML_SC_TYPE_ROTATEANGLE (XML_SC_TYPES_START + 7)
#define XML_SC_TYPE_ROTATEREFERENCE (XML_SC_TYPES_START + 8)
#define XML_SC_TYPE_BORDERLEFT (XML_SC_TYPES_START + 9)
#define XML_SC_TYPE_BORDERRIGHT (XML_SC_TYPES_START + 10)
#define XML_SC_TYPE_BORDERTOP (XML_SC_TYPES_START + 11)
#define XML_SC_TYPE_BORDERBOTTOM (XML_SC_TYPES_START + 12)
#define XML_SC_TYPE_VERTJUSTIFY (XML_SC_TYPES_START + 13)
#define XML_SC_ISTEXTWRAPPED (XML_SC_TYPES_START + 14)
#define XML_SC_TYPE_EQUAL (XML_SC_TYPES_START + 15)
#define XML_SC_TYPE_VERTICAL (XML_SC_TYPES_START + 16)
#define CTF_SC_HORIJUSTIFY (XML_SC_CTF_START + 1)
#define CTF_SC_HORIJUSTIFY_SOURCE (XML_SC_CTF_START + 2)
#define CTF_SC_ALLPADDING (XML_SC_CTF_START + 3)
#define CTF_SC_BOTTOMPADDING (XML_SC_CTF_START + 4)
#define CTF_SC_LEFTPADDING (XML_SC_CTF_START + 5)
#define CTF_SC_RIGHTPADDING (XML_SC_CTF_START + 6)
#define CTF_SC_TOPPADDING (XML_SC_CTF_START + 7)
#define CTF_SC_ALLBORDER (XML_SC_CTF_START + 8)
#define CTF_SC_LEFTBORDER (XML_SC_CTF_START + 9)
#define CTF_SC_RIGHTBORDER (XML_SC_CTF_START + 10)
#define CTF_SC_TOPBORDER (XML_SC_CTF_START + 11)
#define CTF_SC_BOTTOMBORDER (XML_SC_CTF_START + 12)
#define CTF_SC_ALLBORDERWIDTH (XML_SC_CTF_START + 13)
#define CTF_SC_LEFTBORDERWIDTH (XML_SC_CTF_START + 14)
#define CTF_SC_RIGHTBORDERWIDTH (XML_SC_CTF_START + 15)
#define CTF_SC_TOPBORDERWIDTH (XML_SC_CTF_START + 16)
#define CTF_SC_BOTTOMBORDERWIDTH (XML_SC_CTF_START + 17)
#define CTF_SC_NUMBERFORMAT (XML_SC_CTF_START + 18)
#define CTF_SC_MAP (XML_SC_CTF_START + 19)
#define CTF_SC_PARAINDENT (XML_SC_CTF_START + 20)
#define CTF_SC_OLDTEXTBACKGROUND (XML_SC_CTF_START + 21)
#define CTF_SC_IMPORT_MAP (XML_SC_CTF_START + 22)
#define CTF_SC_CELLSTYLE (XML_SC_CTF_START + 23)
#define CTF_SC_VALIDATION (XML_SC_CTF_START + 24)
#define CTF_SC_DIAGONALTLBR (XML_SC_CTF_START + 25)
#define CTF_SC_DIAGONALTLBRWIDTH (XML_SC_CTF_START + 26)
#define CTF_SC_DIAGONALBLTR (XML_SC_CTF_START + 27)
#define CTF_SC_DIAGONALBLTRWIDTH (XML_SC_CTF_START + 28)
#define CTF_SC_DIAGONALTLBRWIDTHS (XML_SC_CTF_START + 29)
#define CTF_SC_DIAGONALBLTRWIDTHS (XML_SC_CTF_START + 30)
#define CTF_SC_ROWHEIGHT (XML_SC_CTF_START + 50)
#define CTF_SC_ROWOPTIMALHEIGHT (XML_SC_CTF_START + 51)
#define CTF_SC_ROWBREAKBEFORE (XML_SC_CTF_START + 52)
#define CTF_SC_ISVISIBLE (XML_SC_CTF_START + 53)
#define CTF_SC_MASTERPAGENAME (XML_SC_CTF_START + 53)
//ColumnStyles
#define XML_SC_TYPE_BREAKBEFORE (XML_SC_TYPES_START + 50)
class ScXMLExport;
class ScXMLImport;
class ScXMLCellExportPropertyMapper : public SvXMLExportPropertyMapper
{
protected:
/** Application-specific filter. By default do nothing. */
virtual void ContextFilter(
::std::vector< XMLPropertyState >& rProperties,
::com::sun::star::uno::Reference<
::com::sun::star::beans::XPropertySet > rPropSet ) const;
public:
ScXMLCellExportPropertyMapper(
const UniReference< XMLPropertySetMapper >& rMapper );
virtual ~ScXMLCellExportPropertyMapper();
/** this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set */
virtual void handleSpecialItem(
SvXMLAttributeList& rAttrList,
const XMLPropertyState& rProperty,
const SvXMLUnitConverter& rUnitConverter,
const SvXMLNamespaceMap& rNamespaceMap,
const ::std::vector< XMLPropertyState > *pProperties = 0,
sal_uInt32 nIdx = 0 ) const;
};
class ScXMLRowExportPropertyMapper : public SvXMLExportPropertyMapper
{
protected:
/** Application-specific filter. By default do nothing. */
virtual void ContextFilter(
::std::vector< XMLPropertyState >& rProperties,
::com::sun::star::uno::Reference<
::com::sun::star::beans::XPropertySet > rPropSet ) const;
public:
ScXMLRowExportPropertyMapper(
const UniReference< XMLPropertySetMapper >& rMapper );
virtual ~ScXMLRowExportPropertyMapper();
};
class ScXMLColumnExportPropertyMapper : public SvXMLExportPropertyMapper
{
public:
ScXMLColumnExportPropertyMapper(
const UniReference< XMLPropertySetMapper >& rMapper );
virtual ~ScXMLColumnExportPropertyMapper();
/** this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set */
virtual void handleSpecialItem(
SvXMLAttributeList& rAttrList,
const XMLPropertyState& rProperty,
const SvXMLUnitConverter& rUnitConverter,
const SvXMLNamespaceMap& rNamespaceMap,
const ::std::vector< XMLPropertyState > *pProperties = 0,
sal_uInt32 nIdx = 0 ) const;
};
class ScXMLTableExportPropertyMapper : public SvXMLExportPropertyMapper
{
protected:
public:
ScXMLTableExportPropertyMapper(
const UniReference< XMLPropertySetMapper >& rMapper );
virtual ~ScXMLTableExportPropertyMapper();
/** this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set */
virtual void handleSpecialItem(
SvXMLAttributeList& rAttrList,
const XMLPropertyState& rProperty,
const SvXMLUnitConverter& rUnitConverter,
const SvXMLNamespaceMap& rNamespaceMap,
const ::std::vector< XMLPropertyState > *pProperties = 0,
sal_uInt32 nIdx = 0 ) const;
};
class ScXMLAutoStylePoolP : public SvXMLAutoStylePoolP
{
ScXMLExport& rScXMLExport;
virtual void exportStyleAttributes(
SvXMLAttributeList& rAttrList,
sal_Int32 nFamily,
const ::std::vector< XMLPropertyState >& rProperties,
const SvXMLExportPropertyMapper& rPropExp,
const SvXMLUnitConverter& rUnitConverter,
const SvXMLNamespaceMap& rNamespaceMap
) const;
virtual void exportStyleContent(
const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > & rHandler,
sal_Int32 nFamily,
const ::std::vector< XMLPropertyState >& rProperties,
const SvXMLExportPropertyMapper& rPropExp
, const SvXMLUnitConverter& rUnitConverter,
const SvXMLNamespaceMap& rNamespaceMap
) const;
public:
ScXMLAutoStylePoolP(ScXMLExport& rScXMLExport);
virtual ~ScXMLAutoStylePoolP();
};
class ScXMLStyleExport : public XMLStyleExport
{
virtual void exportStyleAttributes(
const ::com::sun::star::uno::Reference<
::com::sun::star::style::XStyle > & rStyle );
virtual void exportStyleContent(
const ::com::sun::star::uno::Reference<
::com::sun::star::style::XStyle > & rStyle );
public:
ScXMLStyleExport(
SvXMLExport& rExp,
const ::rtl::OUString& rPoolStyleName,
SvXMLAutoStylePoolP *pAutoStyleP=0 );
virtual ~ScXMLStyleExport();
};
class XMLScPropHdlFactory : public XMLPropertyHandlerFactory
{
public:
XMLScPropHdlFactory();
virtual ~XMLScPropHdlFactory();
virtual const XMLPropertyHandler* GetPropertyHandler( sal_Int32 nType ) const;
};
class XmlScPropHdl_CellProtection : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_CellProtection();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_PrintContent : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_PrintContent();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_HoriJustify : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_HoriJustify();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_HoriJustifySource : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_HoriJustifySource();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_HoriJustifyRepeat : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_HoriJustifyRepeat();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_Orientation : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_Orientation();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_RotateAngle : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_RotateAngle();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_RotateReference : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_RotateReference();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_VertJustify : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_VertJustify();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_BreakBefore : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_BreakBefore();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_IsTextWrapped : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_IsTextWrapped();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_IsEqual : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_IsEqual() {}
virtual bool equals( const ::com::sun::star::uno::Any& /* r1 */, const ::com::sun::star::uno::Any& /* r2 */ ) const { return sal_True; }
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
class XmlScPropHdl_Vertical : public XMLPropertyHandler
{
public:
virtual ~XmlScPropHdl_Vertical();
virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const;
virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const;
};
#endif