| svgnode.cxx (0906e779) | svgnode.cxx (a275c134) |
|---|---|
| 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 --- 136 unchanged lines hidden (view full) --- 145 : maType(aType), 146 mrDocument(rDocument), 147 mpParent(pParent), 148 mpAlternativeParent(0), 149 maChildren(), 150 mpId(0), 151 mpClass(0), 152 maXmlSpace(XmlSpace_notset), | 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 --- 136 unchanged lines hidden (view full) --- 145 : maType(aType), 146 mrDocument(rDocument), 147 mpParent(pParent), 148 mpAlternativeParent(0), 149 maChildren(), 150 mpId(0), 151 mpClass(0), 152 maXmlSpace(XmlSpace_notset), |
| 153 maDisplay(Display_inline), |
|
| 153 maCssStyleVector() 154 { 155 OSL_ENSURE(SVGTokenUnknown != maType, "SvgNode with unknown type created (!)"); 156 157 if(pParent) 158 { 159 pParent->maChildren.push_back(this); 160 } --- 65 unchanged lines hidden (view full) --- 226 } 227 else if(aContent.match(aStrPreserve)) 228 { 229 setXmlSpace(XmlSpace_preserve); 230 } 231 } 232 break; 233 } | 154 maCssStyleVector() 155 { 156 OSL_ENSURE(SVGTokenUnknown != maType, "SvgNode with unknown type created (!)"); 157 158 if(pParent) 159 { 160 pParent->maChildren.push_back(this); 161 } --- 65 unchanged lines hidden (view full) --- 227 } 228 else if(aContent.match(aStrPreserve)) 229 { 230 setXmlSpace(XmlSpace_preserve); 231 } 232 } 233 break; 234 } |
| 235 case SVGTokenDisplay: 236 { 237 if(aContent.getLength()) 238 { 239 static rtl::OUString aStrInline(rtl::OUString::createFromAscii("inline")); 240 static rtl::OUString aStrBlock(rtl::OUString::createFromAscii("block")); 241 static rtl::OUString aStrList_item(rtl::OUString::createFromAscii("list-item")); 242 static rtl::OUString aStrRun_in(rtl::OUString::createFromAscii("run-in")); 243 static rtl::OUString aStrCompact(rtl::OUString::createFromAscii("compact")); 244 static rtl::OUString aStrMarker(rtl::OUString::createFromAscii("marker")); 245 static rtl::OUString aStrTable(rtl::OUString::createFromAscii("table")); 246 static rtl::OUString aStrInline_table(rtl::OUString::createFromAscii("inline-table")); 247 static rtl::OUString aStrTable_row_group(rtl::OUString::createFromAscii("table-row-group")); 248 static rtl::OUString aStrTable_header_group(rtl::OUString::createFromAscii("table-header-group")); 249 static rtl::OUString aStrTable_footer_group(rtl::OUString::createFromAscii("table-footer-group")); 250 static rtl::OUString aStrTable_row(rtl::OUString::createFromAscii("table-row")); 251 static rtl::OUString aStrTable_column_group(rtl::OUString::createFromAscii("table-column-group")); 252 static rtl::OUString aStrTable_column(rtl::OUString::createFromAscii("table-column")); 253 static rtl::OUString aStrTable_cell(rtl::OUString::createFromAscii("table-cell")); 254 static rtl::OUString aStrTable_caption(rtl::OUString::createFromAscii("table-caption")); 255 static rtl::OUString aStrNone(rtl::OUString::createFromAscii("none")); 256 static rtl::OUString aStrInherit(rtl::OUString::createFromAscii("inherit")); 257 258 if(aContent.match(aStrInline)) 259 { 260 setDisplay(Display_inline); 261 } 262 else if(aContent.match(aStrNone)) 263 { 264 setDisplay(Display_none); 265 } 266 else if(aContent.match(aStrInherit)) 267 { 268 setDisplay(Display_inherit); 269 } 270 else if(aContent.match(aStrBlock)) 271 { 272 setDisplay(Display_block); 273 } 274 else if(aContent.match(aStrList_item)) 275 { 276 setDisplay(Display_list_item); 277 } 278 else if(aContent.match(aStrRun_in)) 279 { 280 setDisplay(Display_run_in); 281 } 282 else if(aContent.match(aStrCompact)) 283 { 284 setDisplay(Display_compact); 285 } 286 else if(aContent.match(aStrMarker)) 287 { 288 setDisplay(Display_marker); 289 } 290 else if(aContent.match(aStrTable)) 291 { 292 setDisplay(Display_table); 293 } 294 else if(aContent.match(aStrInline_table)) 295 { 296 setDisplay(Display_inline_table); 297 } 298 else if(aContent.match(aStrTable_row_group)) 299 { 300 setDisplay(Display_table_row_group); 301 } 302 else if(aContent.match(aStrTable_header_group)) 303 { 304 setDisplay(Display_table_header_group); 305 } 306 else if(aContent.match(aStrTable_footer_group)) 307 { 308 setDisplay(Display_table_footer_group); 309 } 310 else if(aContent.match(aStrTable_row)) 311 { 312 setDisplay(Display_table_row); 313 } 314 else if(aContent.match(aStrTable_column_group)) 315 { 316 setDisplay(Display_table_column_group); 317 } 318 else if(aContent.match(aStrTable_column)) 319 { 320 setDisplay(Display_table_column); 321 } 322 else if(aContent.match(aStrTable_cell)) 323 { 324 setDisplay(Display_table_cell); 325 } 326 else if(aContent.match(aStrTable_caption)) 327 { 328 setDisplay(Display_table_caption); 329 } 330 } 331 break; 332 } |
|
| 234 default: 235 { 236 break; 237 } 238 } 239 } 240 241 void SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DSequence& rTarget, bool bReferenced) const 242 { | 333 default: 334 { 335 break; 336 } 337 } 338 } 339 340 void SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DSequence& rTarget, bool bReferenced) const 341 { |
| 342 if(Display_none == getDisplay()) 343 { 344 return; 345 } 346 |
|
| 243 if(!bReferenced) 244 { 245 if(SVGTokenDefs == getType() || 246 SVGTokenSymbol == getType() || 247 SVGTokenClipPathNode == getType() || 248 SVGTokenMask == getType() || 249 SVGTokenMarker == getType() || 250 SVGTokenPattern == getType()) 251 { 252 // do not decompose defs or symbol nodes (these hold only style-like 253 // objects which may be used by referencing them) except when doing 254 // so controlled referenced 255 256 // also do not decompose ClipPaths and Masks. These should be embedded 257 // in a defs node (which gets not decomposed by itself), but you never 258 // know 259 260 // also not directly used are Markers and Patterns, only indirecty used 261 // by reference | 347 if(!bReferenced) 348 { 349 if(SVGTokenDefs == getType() || 350 SVGTokenSymbol == getType() || 351 SVGTokenClipPathNode == getType() || 352 SVGTokenMask == getType() || 353 SVGTokenMarker == getType() || 354 SVGTokenPattern == getType()) 355 { 356 // do not decompose defs or symbol nodes (these hold only style-like 357 // objects which may be used by referencing them) except when doing 358 // so controlled referenced 359 360 // also do not decompose ClipPaths and Masks. These should be embedded 361 // in a defs node (which gets not decomposed by itself), but you never 362 // know 363 364 // also not directly used are Markers and Patterns, only indirecty used 365 // by reference |
| 366 367 // #121656# also do not decompose nodes which have display="none" set 368 // as property |
|
| 262 return; 263 } 264 } 265 266 const SvgNodeVector& rChildren = getChildren(); 267 268 if(!rChildren.empty()) 269 { 270 const sal_uInt32 nCount(rChildren.size()); 271 272 for(sal_uInt32 a(0); a < nCount; a++) 273 { 274 SvgNode* pCandidate = rChildren[a]; 275 | 369 return; 370 } 371 } 372 373 const SvgNodeVector& rChildren = getChildren(); 374 375 if(!rChildren.empty()) 376 { 377 const sal_uInt32 nCount(rChildren.size()); 378 379 for(sal_uInt32 a(0); a < nCount; a++) 380 { 381 SvgNode* pCandidate = rChildren[a]; 382 |
| 276 if(pCandidate) | 383 if(pCandidate && Display_none != pCandidate->getDisplay()) |
| 277 { 278 drawinglayer::primitive2d::Primitive2DSequence aNewTarget; 279 280 pCandidate->decomposeSvgNode(aNewTarget, bReferenced); 281 282 if(aNewTarget.hasElements()) 283 { 284 drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(rTarget, aNewTarget); --- 152 unchanged lines hidden --- | 384 { 385 drawinglayer::primitive2d::Primitive2DSequence aNewTarget; 386 387 pCandidate->decomposeSvgNode(aNewTarget, bReferenced); 388 389 if(aNewTarget.hasElements()) 390 { 391 drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(rTarget, aNewTarget); --- 152 unchanged lines hidden --- |