1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef SC_XMLSTYLE_HXX 25 #define SC_XMLSTYLE_HXX 26 27 #include <xmloff/maptype.hxx> 28 #include <xmloff/xmlaustp.hxx> 29 #include <xmloff/xmltypes.hxx> 30 #include <xmloff/xmlprmap.hxx> 31 #include <xmloff/prhdlfac.hxx> 32 #include <xmloff/styleexp.hxx> 33 #include <xmloff/xmlexppr.hxx> 34 #include <xmloff/contextid.hxx> 35 36 extern const XMLPropertyMapEntry aXMLScCellStylesProperties[]; 37 extern const XMLPropertyMapEntry aXMLScColumnStylesProperties[]; 38 extern const XMLPropertyMapEntry aXMLScRowStylesProperties[]; 39 extern const XMLPropertyMapEntry aXMLScRowStylesImportProperties[]; 40 extern const XMLPropertyMapEntry aXMLScTableStylesProperties[]; 41 extern const XMLPropertyMapEntry aXMLScTableStylesImportProperties[]; 42 43 //CellStyles 44 #define XML_SC_TYPE_CELLPROTECTION (XML_SC_TYPES_START + 1) 45 #define XML_SC_TYPE_PRINTCONTENT (XML_SC_TYPES_START + 2) 46 #define XML_SC_TYPE_HORIJUSTIFY (XML_SC_TYPES_START + 3) 47 #define XML_SC_TYPE_HORIJUSTIFYSOURCE (XML_SC_TYPES_START + 4) 48 #define XML_SC_TYPE_HORIJUSTIFYREPEAT (XML_SC_TYPES_START + 5) 49 #define XML_SC_TYPE_ORIENTATION (XML_SC_TYPES_START + 6) 50 #define XML_SC_TYPE_ROTATEANGLE (XML_SC_TYPES_START + 7) 51 #define XML_SC_TYPE_ROTATEREFERENCE (XML_SC_TYPES_START + 8) 52 #define XML_SC_TYPE_BORDERLEFT (XML_SC_TYPES_START + 9) 53 #define XML_SC_TYPE_BORDERRIGHT (XML_SC_TYPES_START + 10) 54 #define XML_SC_TYPE_BORDERTOP (XML_SC_TYPES_START + 11) 55 #define XML_SC_TYPE_BORDERBOTTOM (XML_SC_TYPES_START + 12) 56 #define XML_SC_TYPE_VERTJUSTIFY (XML_SC_TYPES_START + 13) 57 #define XML_SC_ISTEXTWRAPPED (XML_SC_TYPES_START + 14) 58 #define XML_SC_TYPE_EQUAL (XML_SC_TYPES_START + 15) 59 #define XML_SC_TYPE_VERTICAL (XML_SC_TYPES_START + 16) 60 61 #define CTF_SC_HORIJUSTIFY (XML_SC_CTF_START + 1) 62 #define CTF_SC_HORIJUSTIFY_SOURCE (XML_SC_CTF_START + 2) 63 #define CTF_SC_ALLPADDING (XML_SC_CTF_START + 3) 64 #define CTF_SC_BOTTOMPADDING (XML_SC_CTF_START + 4) 65 #define CTF_SC_LEFTPADDING (XML_SC_CTF_START + 5) 66 #define CTF_SC_RIGHTPADDING (XML_SC_CTF_START + 6) 67 #define CTF_SC_TOPPADDING (XML_SC_CTF_START + 7) 68 #define CTF_SC_ALLBORDER (XML_SC_CTF_START + 8) 69 #define CTF_SC_LEFTBORDER (XML_SC_CTF_START + 9) 70 #define CTF_SC_RIGHTBORDER (XML_SC_CTF_START + 10) 71 #define CTF_SC_TOPBORDER (XML_SC_CTF_START + 11) 72 #define CTF_SC_BOTTOMBORDER (XML_SC_CTF_START + 12) 73 #define CTF_SC_ALLBORDERWIDTH (XML_SC_CTF_START + 13) 74 #define CTF_SC_LEFTBORDERWIDTH (XML_SC_CTF_START + 14) 75 #define CTF_SC_RIGHTBORDERWIDTH (XML_SC_CTF_START + 15) 76 #define CTF_SC_TOPBORDERWIDTH (XML_SC_CTF_START + 16) 77 #define CTF_SC_BOTTOMBORDERWIDTH (XML_SC_CTF_START + 17) 78 #define CTF_SC_NUMBERFORMAT (XML_SC_CTF_START + 18) 79 #define CTF_SC_MAP (XML_SC_CTF_START + 19) 80 #define CTF_SC_PARAINDENT (XML_SC_CTF_START + 20) 81 #define CTF_SC_OLDTEXTBACKGROUND (XML_SC_CTF_START + 21) 82 #define CTF_SC_IMPORT_MAP (XML_SC_CTF_START + 22) 83 #define CTF_SC_CELLSTYLE (XML_SC_CTF_START + 23) 84 #define CTF_SC_VALIDATION (XML_SC_CTF_START + 24) 85 #define CTF_SC_DIAGONALTLBR (XML_SC_CTF_START + 25) 86 #define CTF_SC_DIAGONALTLBRWIDTH (XML_SC_CTF_START + 26) 87 #define CTF_SC_DIAGONALBLTR (XML_SC_CTF_START + 27) 88 #define CTF_SC_DIAGONALBLTRWIDTH (XML_SC_CTF_START + 28) 89 #define CTF_SC_DIAGONALTLBRWIDTHS (XML_SC_CTF_START + 29) 90 #define CTF_SC_DIAGONALBLTRWIDTHS (XML_SC_CTF_START + 30) 91 92 #define CTF_SC_ROWHEIGHT (XML_SC_CTF_START + 50) 93 #define CTF_SC_ROWOPTIMALHEIGHT (XML_SC_CTF_START + 51) 94 #define CTF_SC_ROWBREAKBEFORE (XML_SC_CTF_START + 52) 95 #define CTF_SC_ISVISIBLE (XML_SC_CTF_START + 53) 96 97 #define CTF_SC_MASTERPAGENAME (XML_SC_CTF_START + 53) 98 99 //ColumnStyles 100 #define XML_SC_TYPE_BREAKBEFORE (XML_SC_TYPES_START + 50) 101 102 class ScXMLExport; 103 class ScXMLImport; 104 105 class ScXMLCellExportPropertyMapper : public SvXMLExportPropertyMapper 106 { 107 protected: 108 /** Application-specific filter. By default do nothing. */ 109 virtual void ContextFilter( 110 ::std::vector< XMLPropertyState >& rProperties, 111 ::com::sun::star::uno::Reference< 112 ::com::sun::star::beans::XPropertySet > rPropSet ) const; 113 public: 114 ScXMLCellExportPropertyMapper( 115 const UniReference< XMLPropertySetMapper >& rMapper ); 116 virtual ~ScXMLCellExportPropertyMapper(); 117 118 /** this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set */ 119 virtual void handleSpecialItem( 120 SvXMLAttributeList& rAttrList, 121 const XMLPropertyState& rProperty, 122 const SvXMLUnitConverter& rUnitConverter, 123 const SvXMLNamespaceMap& rNamespaceMap, 124 const ::std::vector< XMLPropertyState > *pProperties = 0, 125 sal_uInt32 nIdx = 0 ) const; 126 }; 127 128 class ScXMLRowExportPropertyMapper : public SvXMLExportPropertyMapper 129 { 130 protected: 131 /** Application-specific filter. By default do nothing. */ 132 virtual void ContextFilter( 133 ::std::vector< XMLPropertyState >& rProperties, 134 ::com::sun::star::uno::Reference< 135 ::com::sun::star::beans::XPropertySet > rPropSet ) const; 136 public: 137 ScXMLRowExportPropertyMapper( 138 const UniReference< XMLPropertySetMapper >& rMapper ); 139 virtual ~ScXMLRowExportPropertyMapper(); 140 }; 141 142 class ScXMLColumnExportPropertyMapper : public SvXMLExportPropertyMapper 143 { 144 public: 145 ScXMLColumnExportPropertyMapper( 146 const UniReference< XMLPropertySetMapper >& rMapper ); 147 virtual ~ScXMLColumnExportPropertyMapper(); 148 149 /** this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set */ 150 virtual void handleSpecialItem( 151 SvXMLAttributeList& rAttrList, 152 const XMLPropertyState& rProperty, 153 const SvXMLUnitConverter& rUnitConverter, 154 const SvXMLNamespaceMap& rNamespaceMap, 155 const ::std::vector< XMLPropertyState > *pProperties = 0, 156 sal_uInt32 nIdx = 0 ) const; 157 }; 158 159 class ScXMLTableExportPropertyMapper : public SvXMLExportPropertyMapper 160 { 161 protected: 162 public: 163 ScXMLTableExportPropertyMapper( 164 const UniReference< XMLPropertySetMapper >& rMapper ); 165 virtual ~ScXMLTableExportPropertyMapper(); 166 167 /** this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set */ 168 virtual void handleSpecialItem( 169 SvXMLAttributeList& rAttrList, 170 const XMLPropertyState& rProperty, 171 const SvXMLUnitConverter& rUnitConverter, 172 const SvXMLNamespaceMap& rNamespaceMap, 173 const ::std::vector< XMLPropertyState > *pProperties = 0, 174 sal_uInt32 nIdx = 0 ) const; 175 }; 176 177 class ScXMLAutoStylePoolP : public SvXMLAutoStylePoolP 178 { 179 ScXMLExport& rScXMLExport; 180 181 virtual void exportStyleAttributes( 182 SvXMLAttributeList& rAttrList, 183 sal_Int32 nFamily, 184 const ::std::vector< XMLPropertyState >& rProperties, 185 const SvXMLExportPropertyMapper& rPropExp, 186 const SvXMLUnitConverter& rUnitConverter, 187 const SvXMLNamespaceMap& rNamespaceMap 188 ) const; 189 190 virtual void exportStyleContent( 191 const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > & rHandler, 192 sal_Int32 nFamily, 193 const ::std::vector< XMLPropertyState >& rProperties, 194 const SvXMLExportPropertyMapper& rPropExp 195 , const SvXMLUnitConverter& rUnitConverter, 196 const SvXMLNamespaceMap& rNamespaceMap 197 ) const; 198 199 public: 200 ScXMLAutoStylePoolP(ScXMLExport& rScXMLExport); 201 virtual ~ScXMLAutoStylePoolP(); 202 }; 203 204 class ScXMLStyleExport : public XMLStyleExport 205 { 206 virtual void exportStyleAttributes( 207 const ::com::sun::star::uno::Reference< 208 ::com::sun::star::style::XStyle > & rStyle ); 209 virtual void exportStyleContent( 210 const ::com::sun::star::uno::Reference< 211 ::com::sun::star::style::XStyle > & rStyle ); 212 public: 213 ScXMLStyleExport( 214 SvXMLExport& rExp, 215 const ::rtl::OUString& rPoolStyleName, 216 SvXMLAutoStylePoolP *pAutoStyleP=0 ); 217 virtual ~ScXMLStyleExport(); 218 }; 219 220 class XMLScPropHdlFactory : public XMLPropertyHandlerFactory 221 { 222 public: 223 XMLScPropHdlFactory(); 224 virtual ~XMLScPropHdlFactory(); 225 virtual const XMLPropertyHandler* GetPropertyHandler( sal_Int32 nType ) const; 226 }; 227 228 class XmlScPropHdl_CellProtection : public XMLPropertyHandler 229 { 230 public: 231 virtual ~XmlScPropHdl_CellProtection(); 232 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 233 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 234 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 235 }; 236 237 class XmlScPropHdl_PrintContent : public XMLPropertyHandler 238 { 239 public: 240 virtual ~XmlScPropHdl_PrintContent(); 241 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 242 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 243 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 244 }; 245 246 class XmlScPropHdl_HoriJustify : public XMLPropertyHandler 247 { 248 public: 249 virtual ~XmlScPropHdl_HoriJustify(); 250 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 251 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 252 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 253 }; 254 255 class XmlScPropHdl_HoriJustifySource : public XMLPropertyHandler 256 { 257 public: 258 virtual ~XmlScPropHdl_HoriJustifySource(); 259 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 260 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 261 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 262 }; 263 264 class XmlScPropHdl_HoriJustifyRepeat : public XMLPropertyHandler 265 { 266 public: 267 virtual ~XmlScPropHdl_HoriJustifyRepeat(); 268 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 269 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 270 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 271 }; 272 273 class XmlScPropHdl_Orientation : public XMLPropertyHandler 274 { 275 public: 276 virtual ~XmlScPropHdl_Orientation(); 277 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 278 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 279 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 280 }; 281 282 class XmlScPropHdl_RotateAngle : public XMLPropertyHandler 283 { 284 public: 285 virtual ~XmlScPropHdl_RotateAngle(); 286 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 287 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 288 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 289 }; 290 291 class XmlScPropHdl_RotateReference : public XMLPropertyHandler 292 { 293 public: 294 virtual ~XmlScPropHdl_RotateReference(); 295 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 296 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 297 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 298 }; 299 300 class XmlScPropHdl_VertJustify : public XMLPropertyHandler 301 { 302 public: 303 virtual ~XmlScPropHdl_VertJustify(); 304 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 305 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 306 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 307 }; 308 309 class XmlScPropHdl_BreakBefore : public XMLPropertyHandler 310 { 311 public: 312 virtual ~XmlScPropHdl_BreakBefore(); 313 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 314 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 315 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 316 }; 317 318 class XmlScPropHdl_IsTextWrapped : public XMLPropertyHandler 319 { 320 public: 321 virtual ~XmlScPropHdl_IsTextWrapped(); 322 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 323 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 324 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 325 }; 326 327 class XmlScPropHdl_IsEqual : public XMLPropertyHandler 328 { 329 public: ~XmlScPropHdl_IsEqual()330 virtual ~XmlScPropHdl_IsEqual() {} equals(const::com::sun::star::uno::Any &,const::com::sun::star::uno::Any &) const331 virtual bool equals( const ::com::sun::star::uno::Any& /* r1 */, const ::com::sun::star::uno::Any& /* r2 */ ) const { return sal_True; } 332 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 333 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 334 }; 335 336 class XmlScPropHdl_Vertical : public XMLPropertyHandler 337 { 338 public: 339 virtual ~XmlScPropHdl_Vertical(); 340 virtual bool equals( const ::com::sun::star::uno::Any& r1, const ::com::sun::star::uno::Any& r2 ) const; 341 virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 342 virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; 343 }; 344 345 #endif 346