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 _SDPROPLS_HXX 25 #define _SDPROPLS_HXX 26 27 #include <com/sun/star/frame/XModel.hpp> 28 #include <xmloff/xmlnume.hxx> 29 #include <xmloff/maptype.hxx> 30 #include <xmloff/xmltypes.hxx> 31 #include <xmloff/xmlement.hxx> 32 #include <xmloff/prhdlfac.hxx> 33 #include <xmloff/xmlprmap.hxx> 34 #include "xmloff/XMLTextListAutoStylePool.hxx" 35 #include <xmloff/xmlexppr.hxx> 36 37 ////////////////////////////////////////////////////////////////////////////// 38 // entry list for graphic properties 39 40 extern const XMLPropertyMapEntry aXMLSDProperties[]; 41 42 ////////////////////////////////////////////////////////////////////////////// 43 // entry list for presentation page properties 44 45 extern const XMLPropertyMapEntry aXMLSDPresPageProps[]; 46 extern const XMLPropertyMapEntry aXMLSDPresPageProps_onlyHeadersFooter[]; 47 48 ////////////////////////////////////////////////////////////////////////////// 49 // types of own properties 50 51 #define XML_SD_TYPE_STROKE (XML_SD_TYPES_START + 0) 52 #define XML_SD_TYPE_PRESPAGE_TYPE (XML_SD_TYPES_START + 1) 53 #define XML_SD_TYPE_PRESPAGE_STYLE (XML_SD_TYPES_START + 2) 54 #define XML_SD_TYPE_PRESPAGE_SPEED (XML_SD_TYPES_START + 3) 55 #define XML_SD_TYPE_PRESPAGE_DURATION (XML_SD_TYPES_START + 4) 56 #define XML_SD_TYPE_PRESPAGE_VISIBILITY (XML_SD_TYPES_START + 5) 57 #define XML_SD_TYPE_MARKER (XML_SD_TYPES_START + 6 ) 58 #define XML_SD_TYPE_OPACITY (XML_SD_TYPES_START + 7 ) 59 #define XML_SD_TYPE_LINEJOIN (XML_SD_TYPES_START + 8 ) 60 #define XML_SD_TYPE_FILLSTYLE (XML_SD_TYPES_START + 9 ) 61 #define XML_SD_TYPE_GRADIENT (XML_SD_TYPES_START + 10 ) 62 #define XML_SD_TYPE_GRADIENT_STEPCOUNT (XML_SD_TYPES_START + 11 ) 63 #define XML_SD_TYPE_SHADOW (XML_SD_TYPES_START + 12 ) 64 #define XML_SD_TYPE_TEXT_CROSSEDOUT (XML_SD_TYPES_START + 13 ) 65 #define XML_SD_TYPE_NUMBULLET (XML_SD_TYPES_START + 14 ) 66 #define XML_SD_TYPE_WRITINGMODE (XML_SD_TYPES_START + 15 ) 67 #define XML_SD_TYPE_BITMAP_MODE (XML_SD_TYPES_START + 16 ) 68 #define XML_SD_TYPE_BITMAPREPOFFSETX (XML_SD_TYPES_START + 17 ) 69 #define XML_SD_TYPE_BITMAPREPOFFSETY (XML_SD_TYPES_START + 18 ) 70 #define XML_SD_TYPE_FILLBITMAPSIZE (XML_SD_TYPES_START + 19 ) 71 #define XML_SD_TYPE_LOGICAL_SIZE (XML_SD_TYPES_START + 20 ) 72 #define XML_SD_TYPE_BITMAP_REFPOINT (XML_SD_TYPES_START + 21 ) 73 #define XML_SD_TYPE_PRESPAGE_BACKSIZE (XML_SD_TYPES_START + 22 ) 74 #define XML_TYPE_TEXT_ANIMATION_BLINKING (XML_SD_TYPES_START + 23 ) 75 #define XML_TYPE_TEXT_ANIMATION_STEPS (XML_SD_TYPES_START + 24 ) 76 #define XML_SD_TYPE_TEXT_ALIGN (XML_SD_TYPES_START + 25 ) 77 #define XML_SD_TYPE_VERTICAL_ALIGN (XML_SD_TYPES_START + 26 ) 78 #define XML_SD_TYPE_MEASURE_HALIGN (XML_SD_TYPES_START + 28 ) 79 #define XML_SD_TYPE_MEASURE_VALIGN (XML_SD_TYPES_START + 29 ) 80 #define XML_SD_TYPE_MEASURE_UNIT (XML_SD_TYPES_START + 30 ) 81 #define XML_SD_TYPE_MEASURE_PLACING (XML_SD_TYPES_START + 31 ) 82 #define XML_SD_TYPE_CONTROL_BORDER (XML_SD_TYPES_START + 32 ) 83 #define XML_SD_TYPE_CONTROL_BORDER_COLOR (XML_SD_TYPES_START + 33 ) 84 #define XML_SD_TYPE_IMAGE_SCALE_MODE (XML_SD_TYPES_START + 34 ) 85 #define XML_SD_TYPE_LINECAP (XML_SD_TYPES_START + 35 ) 86 87 // 3D property types 88 #define XML_SD_TYPE_BACKFACE_CULLING (XML_SD_TYPES_START + 40 ) 89 #define XML_SD_TYPE_NORMALS_KIND (XML_SD_TYPES_START + 41 ) 90 #define XML_SD_TYPE_NORMALS_DIRECTION (XML_SD_TYPES_START + 42 ) 91 #define XML_SD_TYPE_TEX_GENERATION_MODE_X (XML_SD_TYPES_START + 43 ) 92 #define XML_SD_TYPE_TEX_GENERATION_MODE_Y (XML_SD_TYPES_START + 44 ) 93 #define XML_SD_TYPE_TEX_KIND (XML_SD_TYPES_START + 45 ) 94 #define XML_SD_TYPE_TEX_MODE (XML_SD_TYPES_START + 46 ) 95 96 ////////////////////////////////////////////////////////////////////////////// 97 // #FontWork# types 98 #define XML_SD_TYPE_FONTWORK_STYLE (XML_SD_TYPES_START + 47 ) 99 #define XML_SD_TYPE_FONTWORK_ADJUST (XML_SD_TYPES_START + 48 ) 100 #define XML_SD_TYPE_FONTWORK_SHADOW (XML_SD_TYPES_START + 49 ) 101 #define XML_SD_TYPE_FONTWORK_FORM (XML_SD_TYPES_START + 50 ) 102 103 ////////////////////////////////////////////////////////////////////////////// 104 // Caption types 105 #define XML_SD_TYPE_CAPTION_ANGLE_TYPE (XML_SD_TYPES_START + 60 ) 106 #define XML_SD_TYPE_CAPTION_IS_ESC_REL (XML_SD_TYPES_START + 61 ) 107 #define XML_SD_TYPE_CAPTION_ESC_REL (XML_SD_TYPES_START + 62 ) 108 #define XML_SD_TYPE_CAPTION_ESC_ABS (XML_SD_TYPES_START + 63 ) 109 #define XML_SD_TYPE_CAPTION_ESC_DIR (XML_SD_TYPES_START + 64 ) 110 #define XML_SD_TYPE_CAPTION_TYPE (XML_SD_TYPES_START + 65 ) 111 112 ////////////////////////////////////////////////////////////////////////////// 113 // header & footer types 114 #define XML_SD_TYPE_DATETIMEUPDATE (XML_SD_TYPES_START + 70 ) 115 #define XML_SD_TYPE_DATETIME_FORMAT (XML_SD_TYPES_START + 71 ) 116 117 ////////////////////////////////////////////////////////////////////////////// 118 119 // new types for merged style:protect attribute 120 #define XML_SD_TYPE_MOVE_PROTECT (XML_SD_TYPES_START + 72 ) 121 #define XML_SD_TYPE_SIZE_PROTECT (XML_SD_TYPES_START + 73 ) 122 123 // new type for style:mirror attribute 124 #define XML_TYPE_SD_MIRROR (XML_SD_TYPES_START + 74 ) 125 126 ////////////////////////////////////////////////////////////////////////////// 127 128 // new smil transition types for pages 129 #define XML_SD_TYPE_TRANSITION_TYPE (XML_SD_TYPES_START + 75 ) 130 #define XML_SD_TYPE_TRANSTIION_SUBTYPE (XML_SD_TYPES_START + 76 ) 131 #define XML_SD_TYPE_TRANSTIION_DIRECTION (XML_SD_TYPES_START + 77 ) 132 133 #define XML_SD_TYPE_HEADER_FOOTER_VISIBILITY_TYPE (XML_SD_TYPES_START + 78 ) 134 135 ////////////////////////////////////////////////////////////////////////////// 136 137 #define CTF_NUMBERINGRULES 1000 138 #define CTF_CONTROLWRITINGMODE 1001 139 #define CTF_WRITINGMODE 1002 140 #define CTF_REPEAT_OFFSET_X 1003 141 #define CTF_REPEAT_OFFSET_Y 1004 142 #define CTF_PAGE_SOUND_URL 1005 143 #define CTF_PAGE_VISIBLE 1006 144 #define CTF_PAGE_TRANS_TYPE 1007 145 #define CTF_PAGE_TRANS_STYLE 1008 146 #define CTF_PAGE_TRANS_SPEED 1009 147 #define CTF_PAGE_TRANS_DURATION 1010 148 #define CTF_PAGE_BACKSIZE 1011 149 #define CTF_DASHNAME 1012 150 #define CTF_LINESTARTNAME 1013 151 #define CTF_LINEENDNAME 1014 152 #define CTF_FILLGRADIENTNAME 1015 153 #define CTF_FILLHATCHNAME 1016 154 #define CTF_FILLBITMAPNAME 1017 155 #define CTF_FILLTRANSNAME 1018 156 #define CTF_TEXTANIMATION_BLINKING 1019 157 #define CTF_TEXTANIMATION_KIND 1020 158 159 #define CTF_PAGE_TRANSITION_TYPE 1021 160 #define CTF_PAGE_TRANSITION_SUBTYPE 1022 161 #define CTF_PAGE_TRANSITION_DIRECTION 1023 162 #define CTF_PAGE_TRANSITION_FADECOLOR 1024 163 164 ////////////////////////////////////////////////////////////////////////////// 165 // #FontWork# 166 #define CTF_FONTWORK_STYLE 1021 167 #define CTF_FONTWORK_ADJUST 1022 168 #define CTF_FONTWORK_DISTANCE 1023 169 #define CTF_FONTWORK_START 1024 170 #define CTF_FONTWORK_MIRROR 1025 171 #define CTF_FONTWORK_OUTLINE 1026 172 #define CTF_FONTWORK_SHADOW 1027 173 #define CTF_FONTWORK_SHADOWCOLOR 1028 174 #define CTF_FONTWORK_SHADOWOFFSETX 1029 175 #define CTF_FONTWORK_SHADOWOFFSETY 1030 176 #define CTF_FONTWORK_FORM 1031 177 #define CTF_FONTWORK_HIDEFORM 1032 178 #define CTF_FONTWORK_SHADOWTRANSPARENCE 1033 179 180 ////////////////////////////////////////////////////////////////////////////// 181 // OLE part 1 182 #define CTF_SD_OLE_VIS_AREA_IMPORT_LEFT 1040 183 #define CTF_SD_OLE_VIS_AREA_IMPORT_TOP 1041 184 #define CTF_SD_OLE_VIS_AREA_IMPORT_WIDTH 1042 185 #define CTF_SD_OLE_VIS_AREA_IMPORT_HEIGHT 1043 186 #define CTF_SD_OLE_ISINTERNAL 1044 187 188 #define CTF_SD_MOVE_PROTECT 1045 189 #define CTF_SD_SIZE_PROTECT 1046 190 191 ////////////////////////////////////////////////////////////////////////////// 192 // caption 193 #define CTF_CAPTION_ISESCREL 1047 194 #define CTF_CAPTION_ESCREL 1048 195 #define CTF_CAPTION_ESCABS 1049 196 197 ////////////////////////////////////////////////////////////////////////////// 198 // header&footer 199 #define CTF_HEADER_VISIBLE 1050 200 #define CTF_FOOTER_VISIBLE 1051 201 #define CTF_PAGE_NUMBER_VISIBLE 1052 202 #define CTF_DATE_TIME_VISIBLE 1053 203 #define CTF_HEADER_TEXT 1054 204 #define CTF_FOOTER_TEXT 1055 205 #define CTF_DATE_TIME_TEXT 1056 206 #define CTF_DATE_TIME_FORMAT 1057 207 #define CTF_DATE_TIME_UPDATE 1058 208 209 ////////////////////////////////////////////////////////////////////////////// 210 // OLE part 2 211 #define CTF_SD_OLE_ASPECT 1059 212 #define CTF_SD_OLE_VIS_AREA_EXPORT_LEFT 1060 213 #define CTF_SD_OLE_VIS_AREA_EXPORT_TOP 1061 214 #define CTF_SD_OLE_VIS_AREA_EXPORT_WIDTH 1062 215 #define CTF_SD_OLE_VIS_AREA_EXPORT_HEIGHT 1063 216 217 ////////////////////////////////////////////////////////////////////////////// 218 // enum maps for attributes 219 220 extern SvXMLEnumMapEntry aXML_ConnectionKind_EnumMap[]; 221 extern SvXMLEnumMapEntry aXML_CircleKind_EnumMap[]; 222 223 ////////////////////////////////////////////////////////////////////////////// 224 225 /** contains the attribute to property mapping for a drawing layer table */ 226 extern const XMLPropertyMapEntry aXMLTableShapeAttributes[]; 227 228 ////////////////////////////////////////////////////////////////////////////// 229 // factory for own graphic properties 230 231 class SvXMLExport; 232 class SvXMLImport; 233 234 class XMLSdPropHdlFactory : public XMLPropertyHandlerFactory 235 { 236 private: 237 ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > mxModel; 238 SvXMLExport* mpExport; 239 SvXMLImport* mpImport; 240 241 public: 242 XMLSdPropHdlFactory( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >, SvXMLExport& rExport ); 243 XMLSdPropHdlFactory( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >, SvXMLImport& rImport ); 244 virtual ~XMLSdPropHdlFactory(); 245 virtual const XMLPropertyHandler* GetPropertyHandler( sal_Int32 nType ) const; 246 }; 247 248 class XMLShapePropertySetMapper : public XMLPropertySetMapper 249 { 250 public: 251 XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef); 252 XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef, sal_uInt16 nOffset); 253 ~XMLShapePropertySetMapper(); 254 }; 255 256 class XMLShapeExportPropertyMapper : public SvXMLExportPropertyMapper 257 { 258 private: 259 XMLTextListAutoStylePool *mpListAutoPool; 260 SvXMLExport& mrExport; 261 SvxXMLNumRuleExport maNumRuleExp; 262 sal_Bool mbIsInAutoStyles; 263 264 const rtl::OUString msCDATA; 265 const rtl::OUString msTrue; 266 const rtl::OUString msFalse; 267 268 protected: 269 virtual void ContextFilter( 270 ::std::vector< XMLPropertyState >& rProperties, 271 ::com::sun::star::uno::Reference< 272 ::com::sun::star::beans::XPropertySet > rPropSet ) const; 273 public: 274 XMLShapeExportPropertyMapper( const UniReference< XMLPropertySetMapper >& rMapper, XMLTextListAutoStylePool *pListAutoPool, SvXMLExport& rExport ); 275 virtual ~XMLShapeExportPropertyMapper(); 276 277 virtual void handleElementItem( 278 SvXMLExport& rExport, 279 const XMLPropertyState& rProperty, 280 sal_uInt16 nFlags, 281 const ::std::vector< XMLPropertyState >* pProperties = 0, 282 sal_uInt32 nIdx = 0 283 ) const; 284 285 void SetAutoStyles( sal_Bool bIsInAutoStyles ) { mbIsInAutoStyles = bIsInAutoStyles; } 286 287 virtual void handleSpecialItem( 288 SvXMLAttributeList& rAttrList, 289 const XMLPropertyState& rProperty, 290 const SvXMLUnitConverter& rUnitConverter, 291 const SvXMLNamespaceMap& rNamespaceMap, 292 const ::std::vector< XMLPropertyState > *pProperties = 0, 293 sal_uInt32 nIdx = 0 ) const; 294 }; 295 296 class XMLPagePropertySetMapper : public XMLPropertySetMapper 297 { 298 public: 299 XMLPagePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef); 300 ~XMLPagePropertySetMapper(); 301 }; 302 303 class XMLPageExportPropertyMapper : public SvXMLExportPropertyMapper 304 { 305 private: 306 SvXMLExport& mrExport; 307 308 const rtl::OUString msCDATA; 309 const rtl::OUString msTrue; 310 const rtl::OUString msFalse; 311 312 protected: 313 virtual void ContextFilter( 314 ::std::vector< XMLPropertyState >& rProperties, 315 ::com::sun::star::uno::Reference< 316 ::com::sun::star::beans::XPropertySet > rPropSet ) const; 317 public: 318 XMLPageExportPropertyMapper( const UniReference< XMLPropertySetMapper >& rMapper, SvXMLExport& rExport ); 319 virtual ~XMLPageExportPropertyMapper(); 320 321 virtual void handleElementItem( 322 SvXMLExport& rExport, 323 const XMLPropertyState& rProperty, 324 sal_uInt16 nFlags, 325 const ::std::vector< XMLPropertyState >* pProperties = 0, 326 sal_uInt32 nIdx = 0 327 ) const; 328 }; 329 330 #endif // _SDPROPLS_HXX 331