LibreOffice Module sw (master) 1
xmltexte.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include <sal/config.h>
21
23#include <com/sun/star/embed/XEmbeddedObject.hpp>
24#include <com/sun/star/embed/XLinkageSupport.hpp>
25#include <com/sun/star/document/XEmbeddedObjectSupplier.hpp>
26#include <xmloff/families.hxx>
28#include <xmloff/xmltoken.hxx>
29#include <xmloff/txtprmap.hxx>
30#include <xmloff/maptype.hxx>
31#include <xmloff/xmlexppr.hxx>
32
33#include <ndole.hxx>
34#include <fmtcntnt.hxx>
35#include <unoframe.hxx>
36#include "xmlexp.hxx"
37#include "xmltexte.hxx"
38#include <SwAppletImpl.hxx>
39#include <ndindex.hxx>
40
41#include <osl/diagnose.h>
42#include <sot/exchange.hxx>
43#include <svl/urihelper.hxx>
44#include <sfx2/frmdescr.hxx>
45
46using namespace ::com::sun::star;
47using namespace ::com::sun::star::uno;
48using namespace ::com::sun::star::style;
49using namespace ::com::sun::star::beans;
50using namespace ::com::sun::star::lang;
51using namespace ::com::sun::star::document;
52using namespace ::com::sun::star::io;
53using namespace ::xmloff::token;
54
55namespace {
56
57enum SvEmbeddedObjectTypes
58{
59 SV_EMBEDDED_OWN,
60 SV_EMBEDDED_OUTPLACE,
61 SV_EMBEDDED_APPLET,
62 SV_EMBEDDED_PLUGIN,
63 SV_EMBEDDED_FRAME
64};
65
66}
67
69 const Reference < XPropertySet >& rPropSet )
70{
71 SwXFrame* pFrame = dynamic_cast<SwXFrame*>(rPropSet.get());
72 assert(pFrame && "SwXFrame missing");
73 SwFrameFormat *pFrameFormat = pFrame->GetFrameFormat();
74 const SwFormatContent& rContent = pFrameFormat->GetContent();
75 const SwNodeIndex *pNdIdx = rContent.GetContentIdx();
76 return pNdIdx->GetNodes()[pNdIdx->GetIndex() + 1]->GetNoTextNode();
77}
78
79constexpr OUStringLiteral gsEmbeddedObjectProtocol( u"vnd.sun.star.EmbeddedObject:" );
80
82 SwXMLExport& rExp,
83 SvXMLAutoStylePoolP& _rAutoStylePool ) :
84 XMLTextParagraphExport( rExp, _rAutoStylePool ),
85 m_aAppletClassId( SO3_APPLET_CLASSID ),
86 m_aPluginClassId( SO3_PLUGIN_CLASSID ),
87 m_aIFrameClassId( SO3_IFRAME_CLASSID )
88{
89}
90
92{
93}
94
95static void lcl_addURL ( SvXMLExport &rExport, const OUString &rURL,
96 bool bToRel = true )
97{
98 const OUString sRelURL = ( bToRel && !rURL.isEmpty() )
100 : rURL;
101
102 if (!sRelURL.isEmpty())
103 {
104 rExport.AddAttribute ( XML_NAMESPACE_XLINK, XML_HREF, sRelURL );
108 }
109}
110
111static void lcl_addAspect(
112 const svt::EmbeddedObjectRef& rObj,
113 std::vector<XMLPropertyState>& rStates,
115{
116 sal_Int64 nAspect = rObj.GetViewAspect();
117 if ( nAspect )
118 rStates.emplace_back( rMapper->FindEntryIndex( CTF_OLE_DRAW_ASPECT ), uno::Any( nAspect ) );
119}
120
122 const svt::EmbeddedObjectRef& rObj,
123 std::vector<XMLPropertyState>& rStates,
125{
126 MapMode aMode( MapUnit::Map100thMM ); // the API expects this map mode for the embedded objects
127 Size aSize = rObj.GetSize( &aMode ); // get the size in the requested map mode
128
129 if( !(aSize.Width() && aSize.Height()) )
130 return;
131
132 rStates.emplace_back( rMapper->FindEntryIndex( CTF_OLE_VIS_AREA_LEFT ), Any(sal_Int32(0)) );
133 rStates.emplace_back( rMapper->FindEntryIndex( CTF_OLE_VIS_AREA_TOP ), Any(sal_Int32(0)) );
134 rStates.emplace_back( rMapper->FindEntryIndex( CTF_OLE_VIS_AREA_WIDTH ), Any(static_cast<sal_Int32>(aSize.Width())) );
135 rStates.emplace_back( rMapper->FindEntryIndex( CTF_OLE_VIS_AREA_HEIGHT ), Any(static_cast<sal_Int32>(aSize.Height())) );
136}
137
139 const uno::Reference < embed::XEmbeddedObject >& xObj,
140 std::vector<XMLPropertyState>& rStates,
142{
144 return;
145
146 uno::Reference < beans::XPropertySet > xSet( xObj->getComponent(), uno::UNO_QUERY );
147 if ( !xSet.is() )
148 return;
149
150 bool bIsAutoScroll = false, bIsScrollingMode = false;
151 Any aAny = xSet->getPropertyValue("FrameIsAutoScroll");
152 aAny >>= bIsAutoScroll;
153 if ( !bIsAutoScroll )
154 {
155 aAny = xSet->getPropertyValue("FrameIsScrollingMode");
156 aAny >>= bIsScrollingMode;
157 }
158
159 bool bIsBorderSet = false, bIsAutoBorder = false;
160 aAny = xSet->getPropertyValue("FrameIsAutoBorder");
161 aAny >>= bIsAutoBorder;
162 if ( !bIsAutoBorder )
163 {
164 aAny = xSet->getPropertyValue("FrameIsBorder");
165 aAny >>= bIsBorderSet;
166 }
167
168 sal_Int32 nWidth, nHeight;
169 aAny = xSet->getPropertyValue("FrameMarginWidth");
170 aAny >>= nWidth;
171 aAny = xSet->getPropertyValue("FrameMarginHeight");
172 aAny >>= nHeight;
173
174 if( !bIsAutoScroll )
175 rStates.emplace_back( rMapper->FindEntryIndex( CTF_FRAME_DISPLAY_SCROLLBAR ), Any(bIsScrollingMode) );
176 if( !bIsAutoBorder )
177 rStates.emplace_back( rMapper->FindEntryIndex( CTF_FRAME_DISPLAY_BORDER ), Any(bIsBorderSet) );
178 if( SIZE_NOT_SET != nWidth )
179 rStates.emplace_back( rMapper->FindEntryIndex( CTF_FRAME_MARGIN_HORI ), Any(nWidth) );
180 if( SIZE_NOT_SET != nHeight )
181 rStates.emplace_back( rMapper->FindEntryIndex( CTF_FRAME_MARGIN_VERT ), Any(nHeight) );
182}
183
185 const Reference < XPropertySet > & rPropSet )
186{
187 SwOLENode *pOLENd = GetNoTextNode( rPropSet )->GetOLENode();
188 svt::EmbeddedObjectRef& rObjRef = pOLENd->GetOLEObj().GetObject();
189 if( !rObjRef.is() )
190 return;
191
192 std::vector<XMLPropertyState> aStates;
193 aStates.reserve(8);
194 SvGlobalName aClassId( rObjRef->getClassID() );
195
196 if( m_aIFrameClassId == aClassId )
197 {
198 lcl_addFrameProperties( rObjRef.GetObject(), aStates,
199 GetAutoFramePropMapper()->getPropertySetMapper() );
200 }
201 else if ( !SotExchange::IsInternal( aClassId ) )
202 {
203 lcl_addOutplaceProperties( rObjRef, aStates,
204 GetAutoFramePropMapper()->getPropertySetMapper() );
205 }
206
207 lcl_addAspect( rObjRef, aStates,
208 GetAutoFramePropMapper()->getPropertySetMapper() );
209
210 Add( XmlStyleFamily::TEXT_FRAME, rPropSet, aStates );
211}
212
214 const Reference < XPropertySet > & rPropSet,
215 const Reference < XPropertySetInfo > & rPropSetInfo )
216{
217 SwOLENode *pOLENd = GetNoTextNode( rPropSet )->GetOLENode();
218 SwOLEObj& rOLEObj = pOLENd->GetOLEObj();
219 svt::EmbeddedObjectRef& rObjRef = rOLEObj.GetObject();
220 if( !rObjRef.is() )
221 return;
222
223 SvGlobalName aClassId( rObjRef->getClassID() );
224
225 SvEmbeddedObjectTypes nType = SV_EMBEDDED_OWN;
226 if( m_aPluginClassId == aClassId )
227 {
228 nType = SV_EMBEDDED_PLUGIN;
229 }
230 else if( m_aAppletClassId == aClassId )
231 {
232 nType = SV_EMBEDDED_APPLET;
233 }
234 else if( m_aIFrameClassId == aClassId )
235 {
236 nType = SV_EMBEDDED_FRAME;
237 }
238 else if ( !SotExchange::IsInternal( aClassId ) )
239 {
240 nType = SV_EMBEDDED_OUTPLACE;
241 }
242
243 enum XMLTokenEnum eElementName = XML__UNKNOWN_;
244 SvXMLExport &rXMLExport = GetExport();
245
246 // First the stuff common to each of Applet/Plugin/Floating Frame
247 OUString sStyle;
248 Any aAny;
249 if( rPropSetInfo->hasPropertyByName( gsFrameStyleName ) )
250 {
251 aAny = rPropSet->getPropertyValue( gsFrameStyleName );
252 aAny >>= sStyle;
253 }
254
255 std::vector<XMLPropertyState> aStates;
256 aStates.reserve(8);
257 switch( nType )
258 {
259 case SV_EMBEDDED_FRAME:
260 lcl_addFrameProperties( rObjRef.GetObject(), aStates,
261 GetAutoFramePropMapper()->getPropertySetMapper() );
262 break;
263 case SV_EMBEDDED_OUTPLACE:
264 lcl_addOutplaceProperties( rObjRef, aStates,
265 GetAutoFramePropMapper()->getPropertySetMapper() );
266 break;
267 default:
268 ;
269 }
270
271 lcl_addAspect( rObjRef, aStates,
272 GetAutoFramePropMapper()->getPropertySetMapper() );
273
274 const OUString sAutoStyle = Find( XmlStyleFamily::TEXT_FRAME,
275 rPropSet, sStyle, aStates );
276 aStates.clear();
277
278 if( !sAutoStyle.isEmpty() )
279 rXMLExport.AddAttribute( XML_NAMESPACE_DRAW, XML_STYLE_NAME, sAutoStyle );
280 addTextFrameAttributes( rPropSet, false );
281
283 XML_FRAME, false, true );
284
285 switch (nType)
286 {
287 case SV_EMBEDDED_OUTPLACE:
288 case SV_EMBEDDED_OWN:
289 if( !(rXMLExport.getExportFlags() & SvXMLExportFlags::EMBEDDED) )
290 {
291 OUString sURL;
292
293 bool bIsOwnLink = false;
294 if( SV_EMBEDDED_OWN == nType )
295 {
296 try
297 {
298 uno::Reference< embed::XLinkageSupport > xLinkage( rObjRef.GetObject(), uno::UNO_QUERY );
299 bIsOwnLink = xLinkage.is() && xLinkage->isLink();
300 if ( bIsOwnLink )
301 sURL = xLinkage->getLinkURL();
302 }
303 catch(const uno::Exception&)
304 {
305 // TODO/LATER: error handling
306 OSL_FAIL( "Link detection or retrieving of the URL of OOo link is failed!" );
307 }
308 }
309
310 if ( !bIsOwnLink )
311 {
313 }
314
315 sURL = GetExport().AddEmbeddedObject( sURL );
316 lcl_addURL( rXMLExport, sURL, false );
317 }
318 if( SV_EMBEDDED_OWN == nType && !pOLENd->GetChartTableName().isEmpty() )
319 {
320 OUString sRange( pOLENd->GetChartTableName() );
321 OUStringBuffer aBuffer( sRange.getLength() + 2 );
322 for( sal_Int32 i=0; i < sRange.getLength(); i++ )
323 {
324 sal_Unicode c = sRange[i];
325 switch( c )
326 {
327 case ' ':
328 case '.':
329 case '\'':
330 case '\\':
331 if( aBuffer.isEmpty() )
332 {
333 aBuffer.append( '\'' );
334 aBuffer.append( sRange.subView(0, i) );
335 }
336 if( '\'' == c || '\\' == c )
337 aBuffer.append( '\\' );
338 [[fallthrough]];
339 default:
340 if( !aBuffer.isEmpty() )
341 aBuffer.append( c );
342 }
343 }
344 if( !aBuffer.isEmpty() )
345 {
346 aBuffer.append( '\'' );
347 sRange = aBuffer.makeStringAndClear();
348 }
349
351 sRange );
352 }
353 eElementName = SV_EMBEDDED_OUTPLACE==nType ? XML_OBJECT_OLE
354 : XML_OBJECT;
355 break;
356 case SV_EMBEDDED_APPLET:
357 {
358 // It's an applet!
360 {
361 uno::Reference < beans::XPropertySet > xSet( rObjRef->getComponent(), uno::UNO_QUERY );
362 OUString aStr;
363 Any aAny2 = xSet->getPropertyValue("AppletCodeBase");
364 aAny2 >>= aStr;
365 if (!aStr.isEmpty() )
366 lcl_addURL(rXMLExport, aStr);
367
368 aAny2 = xSet->getPropertyValue("AppletName");
369 aAny2 >>= aStr;
370 if (!aStr.isEmpty())
372
373 aAny2 = xSet->getPropertyValue("AppletCode");
374 aAny2 >>= aStr;
376
377 bool bScript = false;
378 aAny2 = xSet->getPropertyValue("AppletIsScript");
379 aAny2 >>= bScript;
381
382 uno::Sequence < beans::PropertyValue > aProps;
383 aAny2 = xSet->getPropertyValue("AppletCommands");
384 aAny2 >>= aProps;
385
386 sal_Int32 i = aProps.getLength();
387 while ( i > 0 )
388 {
389 const beans::PropertyValue& aProp = aProps[--i];
390 const SwHtmlOptType nType2 = SwApplet_Impl::GetOptionType( aProp.Name, true );
392 {
393 OUString aStr2;
394 aProp.Value >>= aStr2;
395 rXMLExport.AddAttribute( XML_NAMESPACE_DRAW, aProp.Name, aStr2);
396 }
397 }
398
399 eElementName = XML_APPLET;
400 }
401 }
402 break;
403 case SV_EMBEDDED_PLUGIN:
404 {
405 // It's a plugin!
407 {
408 uno::Reference < beans::XPropertySet > xSet( rObjRef->getComponent(), uno::UNO_QUERY );
409 OUString aStr;
410 Any aAny2 = xSet->getPropertyValue("PluginURL");
411 aAny2 >>= aStr;
412 lcl_addURL( rXMLExport, aStr );
413
414 aAny2 = xSet->getPropertyValue("PluginMimeType");
415 aAny2 >>= aStr;
416 if (!aStr.isEmpty())
418 eElementName = XML_PLUGIN;
419 }
420 }
421 break;
422 case SV_EMBEDDED_FRAME:
423 {
424 // It's a floating frame!
426 {
427 uno::Reference < beans::XPropertySet > xSet( rObjRef->getComponent(), uno::UNO_QUERY );
428 OUString aStr;
429 Any aAny2 = xSet->getPropertyValue("FrameURL");
430 aAny2 >>= aStr;
431
432 lcl_addURL( rXMLExport, aStr );
433
434 aAny2 = xSet->getPropertyValue("FrameName");
435 aAny2 >>= aStr;
436
437 if (!aStr.isEmpty())
439 eElementName = XML_FLOATING_FRAME;
440 }
441 }
442 break;
443 default:
444 OSL_ENSURE( false, "unknown object type! Base class should have been called!" );
445 }
446
447 {
448 SvXMLElementExport aElementExport( rXMLExport, XML_NAMESPACE_DRAW, eElementName,
449 false, true );
450 switch( nType )
451 {
452 case SV_EMBEDDED_OWN:
453 if( rXMLExport.getExportFlags() & SvXMLExportFlags::EMBEDDED )
454 {
455 Reference < XEmbeddedObjectSupplier > xEOS( rPropSet, UNO_QUERY );
456 OSL_ENSURE( xEOS.is(), "no embedded object supplier for own object" );
457 Reference < XComponent > xComp = xEOS->getEmbeddedObject();
458 rXMLExport.ExportEmbeddedOwnObject( xComp );
459 }
460 break;
461 case SV_EMBEDDED_OUTPLACE:
462 if( rXMLExport.getExportFlags() & SvXMLExportFlags::EMBEDDED )
463 {
464 OUString sURL( gsEmbeddedObjectProtocol + rOLEObj.GetCurrentPersistName() );
465
466 if ( !( rXMLExport.getExportFlags() & SvXMLExportFlags::OASIS ) )
467 sURL += "?oasis=false";
468
469 rXMLExport.AddEmbeddedObjectAsBase64( sURL );
470 }
471 break;
472 case SV_EMBEDDED_APPLET:
473 {
475 {
476 uno::Reference < beans::XPropertySet > xSet( rObjRef->getComponent(), uno::UNO_QUERY );
477 uno::Sequence < beans::PropertyValue > aProps;
478 aAny = xSet->getPropertyValue("AppletCommands");
479 aAny >>= aProps;
480
481 sal_Int32 i = aProps.getLength();
482 while ( i > 0 )
483 {
484 const beans::PropertyValue& aProp = aProps[--i];
485 const SwHtmlOptType nType2 = SwApplet_Impl::GetOptionType( aProp.Name, true );
487 {
488 OUString aStr;
489 aProp.Value >>= aStr;
490 rXMLExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME, aProp.Name );
492 SvXMLElementExport aElementExport2( rXMLExport, XML_NAMESPACE_DRAW, XML_PARAM, false, true );
493 }
494 }
495 }
496 }
497 break;
498 case SV_EMBEDDED_PLUGIN:
499 {
501 {
502 uno::Reference < beans::XPropertySet > xSet( rObjRef->getComponent(), uno::UNO_QUERY );
503 uno::Sequence < beans::PropertyValue > aProps;
504 aAny = xSet->getPropertyValue("PluginCommands");
505 aAny >>= aProps;
506
507 sal_Int32 i = aProps.getLength();
508 while ( i > 0 )
509 {
510 const beans::PropertyValue& aProp = aProps[--i];
511 const SwHtmlOptType nType2 = SwApplet_Impl::GetOptionType( aProp.Name, false );
513 {
514 OUString aStr;
515 aProp.Value >>= aStr;
516 rXMLExport.AddAttribute( XML_NAMESPACE_DRAW, XML_NAME, aProp.Name );
518 SvXMLElementExport aElementExport2( rXMLExport, XML_NAMESPACE_DRAW, XML_PARAM, false, true );
519 }
520 }
521 }
522 }
523 break;
524 default:
525 break;
526 }
527 }
528 if( SV_EMBEDDED_OUTPLACE==nType || SV_EMBEDDED_OWN==nType )
529 {
531 if( !(rXMLExport.getExportFlags() & SvXMLExportFlags::EMBEDDED) )
532 {
533 sURL = GetExport().AddEmbeddedObject( sURL );
534 lcl_addURL( rXMLExport, sURL, false );
535 }
536
538 XML_IMAGE, false, true );
539
540 if( rXMLExport.getExportFlags() & SvXMLExportFlags::EMBEDDED )
542 }
543
544 // Lastly the stuff common to each of Applet/Plugin/Floating Frame
545 exportEvents( rPropSet );
546 exportTitleAndDescription( rPropSet, rPropSetInfo ); // #i73249#
547 exportContour( rPropSet, rPropSetInfo );
548}
549
550/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SwHtmlOptType
constexpr tools::Long Height() const
constexpr tools::Long Width() const
static bool IsInternal(const SvGlobalName &)
void AddAttribute(sal_uInt16 nPrefix, const OUString &rName, const OUString &rValue)
SvXMLExportFlags getExportFlags() const
OUString AddEmbeddedObject(const OUString &rEmbeddedObjectURL)
void ExportEmbeddedOwnObject(css::uno::Reference< css::lang::XComponent > const &rComp)
bool AddEmbeddedObjectAsBase64(const OUString &rEmbeddedObjectURL)
const OUString & GetOrigFileName() const
static SwHtmlOptType GetOptionType(const OUString &rName, bool bApplet)
Content, content of frame (header, footer, fly).
Definition: fmtcntnt.hxx:32
const SwNodeIndex * GetContentIdx() const
Definition: fmtcntnt.hxx:46
const SwFormatContent & GetContent(bool=true) const
Definition: fmtcntnt.hxx:55
Style of a layout element.
Definition: frmfmt.hxx:62
Layout frame for SwNoTextNode, i.e. graphics and OLE nodes (including charts).
Definition: ndnotxt.hxx:30
Marks a node in the document model.
Definition: ndindex.hxx:31
const SwNodes & GetNodes() const
Definition: ndindex.hxx:175
SwNodeOffset GetIndex() const
Definition: ndindex.hxx:171
SwOLENode * GetOLENode()
Inline methods from Node.hxx.
Definition: ndole.hxx:165
const SwOLEObj & GetOLEObj() const
Definition: ndole.hxx:116
const OUString & GetChartTableName() const
Definition: ndole.hxx:156
svt::EmbeddedObjectRef & GetObject()
Definition: ndole.cxx:992
const OUString & GetCurrentPersistName() const
Definition: ndole.hxx:72
SwXMLTextParagraphExport(SwXMLExport &rExp, SvXMLAutoStylePoolP &rAutoStylePool)
Definition: xmltexte.cxx:81
const SvGlobalName m_aIFrameClassId
Definition: xmltexte.hxx:42
virtual void _exportTextEmbedded(const css::uno::Reference< css::beans::XPropertySet > &rPropSet, const css::uno::Reference< css::beans::XPropertySetInfo > &rPropSetInfo) override
Definition: xmltexte.cxx:213
static SwNoTextNode * GetNoTextNode(const css::uno::Reference< css::beans::XPropertySet > &rPropSet)
Definition: xmltexte.cxx:68
virtual ~SwXMLTextParagraphExport() override
Definition: xmltexte.cxx:91
virtual void _collectTextEmbeddedAutoStyles(const css::uno::Reference< css::beans::XPropertySet > &rPropSet) override
Definition: xmltexte.cxx:184
const SvGlobalName m_aPluginClassId
Definition: xmltexte.hxx:41
const SvGlobalName m_aAppletClassId
Definition: xmltexte.hxx:40
SvXMLExport & GetExport()
void exportTitleAndDescription(const css::uno::Reference< css::beans::XPropertySet > &rPropSet, const css::uno::Reference< css::beans::XPropertySetInfo > &rPropSetInfo)
void exportContour(const css::uno::Reference< css::beans::XPropertySet > &rPropSet, const css::uno::Reference< css::beans::XPropertySetInfo > &rPropSetInfo)
static constexpr OUStringLiteral gsFrameStyleName
const rtl::Reference< SvXMLExportPropertyMapper > & GetAutoFramePropMapper() const
void Add(XmlStyleFamily nFamily, MultiPropertySetHelper &rPropSetHelper, const css::uno::Reference< css::beans::XPropertySet > &rPropSet)
XMLShapeExportFlags addTextFrameAttributes(const css::uno::Reference< css::beans::XPropertySet > &rPropSet, bool bShape, basegfx::B2DPoint *pCenter=nullptr, OUString *pMinHeightValue=nullptr, OUString *pMinWidthValue=nullptr)
OUString Find(XmlStyleFamily nFamily, const css::uno::Reference< css::beans::XPropertySet > &rPropSet, const OUString &rParent, const o3tl::span< const XMLPropertyState > aAddStates={}) const
void exportEvents(const css::uno::Reference< css::beans::XPropertySet > &rPropSet)
#define SO3_PLUGIN_CLASSID
#define SO3_IFRAME_CLASSID
#define SO3_APPLET_CLASSID
static bool TryRunningState(const css::uno::Reference< css::embed::XEmbeddedObject > &)
sal_Int64 GetViewAspect() const
Size GetSize(MapMode const *pTargetMapMode) const
const css::uno::Reference< css::embed::XEmbeddedObject > & GetObject() const
#define SIZE_NOT_SET
aStr
SVL_DLLPUBLIC OUString simpleNormalizedMakeRelative(OUString const &baseUriReference, OUString const &uriReference)
int i
XMLTokenEnum
XML_FLOATING_FRAME
XML_APPLET
XML_ACTUATE
XML_HREF
XML_OBJECT_OLE
XML_TRUE
XML_SHOW
XML_FRAME
XML_FRAME_NAME
XML_PLUGIN
XML_OBJECT
XML_ONLOAD
XML_SIMPLE
XML_CODE
XML_VALUE
XML_FALSE
XML_STYLE_NAME
XML__UNKNOWN_
XML_APPLET_NAME
XML_MIME_TYPE
XML_PARAM
XML_NAME
XML_NOTIFY_ON_UPDATE_OF_RANGES
XML_IMAGE
XML_EMBED
XML_MAY_SCRIPT
XML_TYPE
QPRO_FUNC_TYPE nType
static sal_uInt16 nType2
Definition: srtdlg.cxx:48
#define CTF_FRAME_MARGIN_VERT
#define CTF_OLE_VIS_AREA_TOP
#define CTF_FRAME_DISPLAY_BORDER
#define CTF_OLE_DRAW_ASPECT
#define CTF_OLE_VIS_AREA_HEIGHT
#define CTF_OLE_VIS_AREA_WIDTH
#define CTF_FRAME_MARGIN_HORI
#define CTF_OLE_VIS_AREA_LEFT
#define CTF_FRAME_DISPLAY_SCROLLBAR
sal_uInt16 sal_Unicode
std::unique_ptr< char[]> aBuffer
constexpr sal_uInt16 XML_NAMESPACE_DRAW
constexpr sal_uInt16 XML_NAMESPACE_XLINK
static void lcl_addAspect(const svt::EmbeddedObjectRef &rObj, std::vector< XMLPropertyState > &rStates, const rtl::Reference< XMLPropertySetMapper > &rMapper)
Definition: xmltexte.cxx:111
static void lcl_addFrameProperties(const uno::Reference< embed::XEmbeddedObject > &xObj, std::vector< XMLPropertyState > &rStates, const rtl::Reference< XMLPropertySetMapper > &rMapper)
Definition: xmltexte.cxx:138
constexpr OUStringLiteral gsEmbeddedObjectProtocol(u"vnd.sun.star.EmbeddedObject:")
static void lcl_addOutplaceProperties(const svt::EmbeddedObjectRef &rObj, std::vector< XMLPropertyState > &rStates, const rtl::Reference< XMLPropertySetMapper > &rMapper)
Definition: xmltexte.cxx:121
static void lcl_addURL(SvXMLExport &rExport, const OUString &rURL, bool bToRel=true)
Definition: xmltexte.cxx:95
#define XML_EMBEDDEDOBJECTGRAPHIC_URL_BASE
Definition: xmltexte.hxx:29