LibreOffice Module svx (master)  1
svdouno.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 
22 #include <com/sun/star/container/XChild.hpp>
23 #include <com/sun/star/awt/XWindow.hpp>
24 #include <com/sun/star/awt/PosSize.hpp>
25 #include <com/sun/star/beans/XPropertySet.hpp>
26 #include <com/sun/star/io/XPersistObject.hpp>
27 #include <com/sun/star/io/XOutputStream.hpp>
28 #include <com/sun/star/io/XInputStream.hpp>
29 #include <com/sun/star/io/XActiveDataSink.hpp>
30 #include <com/sun/star/io/XActiveDataSource.hpp>
31 #include <com/sun/star/io/XObjectOutputStream.hpp>
32 #include <com/sun/star/io/XObjectInputStream.hpp>
33 #include <com/sun/star/util/XCloneable.hpp>
34 #include <com/sun/star/uno/XComponentContext.hpp>
36 #include <vcl/pdfextoutdevdata.hxx>
37 #include <svx/svdouno.hxx>
38 #include <svx/svdpagv.hxx>
39 #include <svx/svdmodel.hxx>
40 #include <svx/dialmgr.hxx>
41 #include <svx/strings.hrc>
42 #include <svx/svdetc.hxx>
43 #include <svx/svdview.hxx>
44 #include <svx/svdorect.hxx>
45 #include <svx/svdviter.hxx>
46 #include <rtl/ref.hxx>
47 #include <set>
48 #include <svx/sdrpagewindow.hxx>
49 #include <svx/sdrpaintwindow.hxx>
50 #include <tools/diagnose_ex.h>
51 #include <svx/svdograf.hxx>
52 #include <tools/debug.hxx>
53 #include <o3tl/sorted_vector.hxx>
54 
55 using namespace ::com::sun::star;
56 using namespace sdr::contact;
57 
58 
59 // Defines
60 
61 
62 // Helper class SdrControlEventListenerImpl
63 
64 #include <com/sun/star/lang/XEventListener.hpp>
65 
66 #include <cppuhelper/implbase.hxx>
67 
68 
69 class SdrControlEventListenerImpl : public ::cppu::WeakImplHelper< css::lang::XEventListener >
70 {
71 protected:
73 
74 public:
76  : pObj(_pObj)
77  {}
78 
79  // XEventListener
80  virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override;
81 
82  void StopListening(const uno::Reference< lang::XComponent >& xComp);
83  void StartListening(const uno::Reference< lang::XComponent >& xComp);
84 };
85 
86 // XEventListener
87 void SAL_CALL SdrControlEventListenerImpl::disposing( const css::lang::EventObject& /*Source*/)
88 {
89  if (pObj)
90  {
91  pObj->xUnoControlModel = nullptr;
92  }
93 }
94 
95 void SdrControlEventListenerImpl::StopListening(const uno::Reference< lang::XComponent >& xComp)
96 {
97  if (xComp.is())
98  xComp->removeEventListener(this);
99 }
100 
101 void SdrControlEventListenerImpl::StartListening(const uno::Reference< lang::XComponent >& xComp)
102 {
103  if (xComp.is())
104  xComp->addEventListener(this);
105 }
106 
107 
109 {
110  mutable ::rtl::Reference< SdrControlEventListenerImpl >
112 };
113 
114 
115 namespace
116 {
117  void lcl_ensureControlVisibility( SdrView const * _pView, const SdrUnoObj* _pObject, bool _bVisible )
118  {
119  OSL_PRECOND( _pObject, "lcl_ensureControlVisibility: no object -> no survival!" );
120 
121  SdrPageView* pPageView = _pView ? _pView->GetSdrPageView() : nullptr;
122  DBG_ASSERT( pPageView, "lcl_ensureControlVisibility: no view found!" );
123  if ( !pPageView )
124  return;
125 
126  ViewContact& rUnoControlContact( _pObject->GetViewContact() );
127 
128  for ( sal_uInt32 i = 0; i < pPageView->PageWindowCount(); ++i )
129  {
130  SdrPageWindow* pPageWindow = pPageView->GetPageWindow( i );
131  DBG_ASSERT( pPageWindow, "lcl_ensureControlVisibility: invalid PageViewWindow!" );
132  if ( !pPageWindow )
133  continue;
134 
135  if ( !pPageWindow->HasObjectContact() )
136  continue;
137 
138  ObjectContact& rPageViewContact( pPageWindow->GetObjectContact() );
139  const ViewObjectContact& rViewObjectContact( rUnoControlContact.GetViewObjectContact( rPageViewContact ) );
140  const ViewObjectContactOfUnoControl* pUnoControlContact = dynamic_cast< const ViewObjectContactOfUnoControl* >( &rViewObjectContact );
141  DBG_ASSERT( pUnoControlContact, "lcl_ensureControlVisibility: wrong ViewObjectContact type!" );
142  if ( !pUnoControlContact )
143  continue;
144 
145  pUnoControlContact->ensureControlVisibility( _bVisible );
146  }
147  }
148 }
149 
151  SdrModel& rSdrModel,
152  const OUString& rModelName)
153 : SdrRectObj(rSdrModel),
155 {
156  bIsUnoObj = true;
157 
158  m_pImpl->pEventListener = new SdrControlEventListenerImpl(this);
159 
160  // only an owner may create independently
161  if (!rModelName.isEmpty())
162  CreateUnoControlModel(rModelName);
163 }
164 
166  SdrModel& rSdrModel,
167  const OUString& rModelName,
168  const uno::Reference< lang::XMultiServiceFactory >& rxSFac)
169 : SdrRectObj(rSdrModel),
171 {
172  bIsUnoObj = true;
173 
174  m_pImpl->pEventListener = new SdrControlEventListenerImpl(this);
175 
176  // only an owner may create independently
177  if (!rModelName.isEmpty())
178  CreateUnoControlModel(rModelName,rxSFac);
179 }
180 
182 {
183  try
184  {
185  // clean up the control model
186  uno::Reference< lang::XComponent > xComp(xUnoControlModel, uno::UNO_QUERY);
187  if (xComp.is())
188  {
189  // is the control model owned by its environment?
190  uno::Reference< container::XChild > xContent(xUnoControlModel, uno::UNO_QUERY);
191  if (xContent.is() && !xContent->getParent().is())
192  xComp->dispose();
193  else
194  m_pImpl->pEventListener->StopListening(xComp);
195  }
196  }
197  catch( const uno::Exception& )
198  {
199  TOOLS_WARN_EXCEPTION( "svx", "SdrUnoObj::~SdrUnoObj" );
200  }
201 }
202 
204 {
205  rInfo.bRotateFreeAllowed = false;
206  rInfo.bRotate90Allowed = false;
207  rInfo.bMirrorFreeAllowed = false;
208  rInfo.bMirror45Allowed = false;
209  rInfo.bMirror90Allowed = false;
210  rInfo.bTransparenceAllowed = false;
211  rInfo.bShearAllowed = false;
212  rInfo.bEdgeRadiusAllowed = false;
213  rInfo.bNoOrthoDesired = false;
214  rInfo.bCanConvToPath = false;
215  rInfo.bCanConvToPoly = false;
216  rInfo.bCanConvToPathLineToArea = false;
217  rInfo.bCanConvToPolyLineToArea = false;
218  rInfo.bCanConvToContour = false;
219 }
220 
221 sal_uInt16 SdrUnoObj::GetObjIdentifier() const
222 {
223  return sal_uInt16(OBJ_UNO);
224 }
225 
226 void SdrUnoObj::SetContextWritingMode( const sal_Int16 _nContextWritingMode )
227 {
228  try
229  {
230  uno::Reference< beans::XPropertySet > xModelProperties( GetUnoControlModel(), uno::UNO_QUERY_THROW );
231  xModelProperties->setPropertyValue( "ContextWritingMode", uno::makeAny( _nContextWritingMode ) );
232  }
233  catch( const uno::Exception& )
234  {
236  }
237 }
238 
240 {
241  OUStringBuffer sName(SvxResId(STR_ObjNameSingulUno));
242 
243  OUString aName(GetName());
244  if (!aName.isEmpty())
245  {
246  sName.append(' ');
247  sName.append('\'');
248  sName.append(aName);
249  sName.append('\'');
250  }
251 
252  return sName.makeStringAndClear();
253 }
254 
256 {
257  return SvxResId(STR_ObjNamePluralUno);
258 }
259 
261 {
262  return CloneHelper< SdrUnoObj >(rTargetModel);
263 }
264 
266 {
267  if( this == &rObj )
268  return *this;
270 
271  // release the reference to the current control model
272  SetUnoControlModel( nullptr );
273 
276 
277  // copy the uno control model
278  const uno::Reference< awt::XControlModel > xSourceControlModel = rObj.GetUnoControlModel();
279  if ( xSourceControlModel.is() )
280  {
281  try
282  {
283  uno::Reference< util::XCloneable > xClone( xSourceControlModel, uno::UNO_QUERY_THROW );
284  xUnoControlModel.set( xClone->createClone(), uno::UNO_QUERY_THROW );
285  }
286  catch( const uno::Exception& )
287  {
289  }
290  }
291 
292  // get service name of the control from the control model
293  uno::Reference< beans::XPropertySet > xSet(xUnoControlModel, uno::UNO_QUERY);
294  if (xSet.is())
295  {
296  uno::Any aValue( xSet->getPropertyValue("DefaultControl") );
297  OUString aStr;
298 
299  if( aValue >>= aStr )
300  aUnoControlTypeName = aStr;
301  }
302 
303  uno::Reference< lang::XComponent > xComp(xUnoControlModel, uno::UNO_QUERY);
304  if (xComp.is())
305  m_pImpl->pEventListener->StartListening(xComp);
306  return *this;
307 }
308 
309 void SdrUnoObj::NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact)
310 {
311  SdrRectObj::NbcResize(rRef,xFact,yFact);
312 
313  if (aGeo.nShearAngle!=0 || aGeo.nRotationAngle!=0)
314  {
315  // small correctors
316  if (aGeo.nRotationAngle>=9000 && aGeo.nRotationAngle<27000)
317  {
319  }
320 
321  aGeo.nRotationAngle = 0;
322  aGeo.nShearAngle = 0;
323  aGeo.nSin = 0.0;
324  aGeo.nCos = 1.0;
325  aGeo.nTan = 0.0;
326  SetRectsDirty();
327  }
328 }
329 
330 
332 {
333  // no special drag; we have no rounding rect and
334  // do want frame handles
335  return false;
336 }
337 
339 {
340  if ( GetLayer() == _nLayer )
341  { // redundant call -> not interested in doing anything here
342  SdrRectObj::NbcSetLayer( _nLayer );
343  return;
344  }
345 
346  // we need some special handling here in case we're moved from an invisible layer
347  // to a visible one, or vice versa
348  // (relative to a layer. Remember that the visibility of a layer is a view attribute
349  // - the same layer can be visible in one view, and invisible in another view, at the
350  // same time)
351 
352  // collect all views in which our old layer is visible
353  o3tl::sorted_vector< SdrView* > aPreviouslyVisible;
354 
355  {
356  SdrViewIter aIter( this );
357  for ( SdrView* pView = aIter.FirstView(); pView; pView = aIter.NextView() )
358  aPreviouslyVisible.insert( pView );
359  }
360 
361  SdrRectObj::NbcSetLayer( _nLayer );
362 
363  // collect all views in which our new layer is visible
364  o3tl::sorted_vector< SdrView* > aNewlyVisible;
365 
366  {
367  SdrViewIter aIter( this );
368  for ( SdrView* pView = aIter.FirstView(); pView; pView = aIter.NextView() )
369  {
370  if ( aPreviouslyVisible.erase(pView) == 0 )
371  {
372  // in pView, we were visible _before_ the layer change, and are
373  // _not_ visible after the layer change
374  // => remember this view, as our visibility there changed
375  aNewlyVisible.insert( pView );
376  }
377  }
378  }
379 
380  // now aPreviouslyVisible contains all views where we became invisible
381  for (const auto& rpView : aPreviouslyVisible)
382  {
383  lcl_ensureControlVisibility( rpView, this, false );
384  }
385 
386  // and aNewlyVisible all views where we became visible
387  for (const auto& rpView : aNewlyVisible)
388  {
389  lcl_ensureControlVisibility( rpView, this, true );
390  }
391 }
392 
393 void SdrUnoObj::CreateUnoControlModel(const OUString& rModelName)
394 {
395  DBG_ASSERT(!xUnoControlModel.is(), "model already exists");
396 
397  aUnoControlModelTypeName = rModelName;
398 
399  uno::Reference< awt::XControlModel > xModel;
400  uno::Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
401  if (!aUnoControlModelTypeName.isEmpty() )
402  {
403  xModel.set(xContext->getServiceManager()->createInstanceWithContext(
404  aUnoControlModelTypeName, xContext), uno::UNO_QUERY);
405 
406  if (xModel.is())
407  SetChanged();
408  }
409 
410  SetUnoControlModel(xModel);
411 }
412 
413 void SdrUnoObj::CreateUnoControlModel(const OUString& rModelName,
414  const uno::Reference< lang::XMultiServiceFactory >& rxSFac)
415 {
416  DBG_ASSERT(!xUnoControlModel.is(), "model already exists");
417 
418  aUnoControlModelTypeName = rModelName;
419 
420  uno::Reference< awt::XControlModel > xModel;
421  if (!aUnoControlModelTypeName.isEmpty() && rxSFac.is() )
422  {
423  xModel.set(rxSFac->createInstance(aUnoControlModelTypeName), uno::UNO_QUERY);
424 
425  if (xModel.is())
426  SetChanged();
427  }
428 
429  SetUnoControlModel(xModel);
430 }
431 
432 void SdrUnoObj::SetUnoControlModel( const uno::Reference< awt::XControlModel >& xModel)
433 {
434  if (xUnoControlModel.is())
435  {
436  uno::Reference< lang::XComponent > xComp(xUnoControlModel, uno::UNO_QUERY);
437  if (xComp.is())
438  m_pImpl->pEventListener->StopListening(xComp);
439  }
440 
441  xUnoControlModel = xModel;
442 
443  // control model has to contain service name of the control
444  if (xUnoControlModel.is())
445  {
446  uno::Reference< beans::XPropertySet > xSet(xUnoControlModel, uno::UNO_QUERY);
447  if (xSet.is())
448  {
449  uno::Any aValue( xSet->getPropertyValue("DefaultControl") );
450  OUString aStr;
451  if( aValue >>= aStr )
452  aUnoControlTypeName = aStr;
453  }
454 
455  uno::Reference< lang::XComponent > xComp(xUnoControlModel, uno::UNO_QUERY);
456  if (xComp.is())
457  m_pImpl->pEventListener->StartListening(xComp);
458  }
459 
460  // invalidate all ViewObject contacts
461  ViewContactOfUnoControl* pVC = nullptr;
462  if ( impl_getViewContact( pVC ) )
463  {
464  // flushViewObjectContacts() removes all existing VOCs for the local DrawHierarchy. This
465  // is always allowed since they will be re-created on demand (and with the changed model)
467  }
468 }
469 
470 
471 uno::Reference< awt::XControl > SdrUnoObj::GetUnoControl(const SdrView& _rView, const OutputDevice& _rOut) const
472 {
473  uno::Reference< awt::XControl > xControl;
474 
475  SdrPageView* pPageView = _rView.GetSdrPageView();
476  OSL_ENSURE( pPageView && getSdrPageFromSdrObject() == pPageView->GetPage(), "SdrUnoObj::GetUnoControl: This object is not displayed in that particular view!" );
477  if ( !pPageView || getSdrPageFromSdrObject() != pPageView->GetPage() )
478  return nullptr;
479 
480  SdrPageWindow* pPageWindow = pPageView->FindPageWindow( _rOut );
481  OSL_ENSURE( pPageWindow, "SdrUnoObj::GetUnoControl: did not find my SdrPageWindow!" );
482  if ( !pPageWindow )
483  return nullptr;
484 
485  ViewObjectContact& rViewObjectContact( GetViewContact().GetViewObjectContact( pPageWindow->GetObjectContact() ) );
486  ViewObjectContactOfUnoControl* pUnoContact = dynamic_cast< ViewObjectContactOfUnoControl* >( &rViewObjectContact );
487  OSL_ENSURE( pUnoContact, "SdrUnoObj::GetUnoControl: wrong contact type!" );
488  if ( pUnoContact )
489  xControl = pUnoContact->getControl();
490 
491  return xControl;
492 }
493 
494 
495 uno::Reference< awt::XControl > SdrUnoObj::GetTemporaryControlForWindow(
496  const vcl::Window& _rWindow, uno::Reference< awt::XControlContainer >& _inout_ControlContainer ) const
497 {
498  uno::Reference< awt::XControl > xControl;
499 
500  ViewContactOfUnoControl* pVC = nullptr;
501  if ( impl_getViewContact( pVC ) )
502  xControl = pVC->getTemporaryControlForWindow( _rWindow, _inout_ControlContainer );
503 
504  return xControl;
505 }
506 
507 
509 {
510  ViewContact& rViewContact( GetViewContact() );
511  _out_rpContact = dynamic_cast< ViewContactOfUnoControl* >( &rViewContact );
512  DBG_ASSERT( _out_rpContact, "SdrUnoObj::impl_getViewContact: could not find my ViewContact!" );
513  return ( _out_rpContact != nullptr );
514 }
515 
516 
517 std::unique_ptr<sdr::contact::ViewContact> SdrUnoObj::CreateObjectSpecificViewContact()
518 {
519  return std::make_unique<sdr::contact::ViewContactOfUnoControl>( *this );
520 }
521 
522 
523 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SVX_DLLPRIVATE bool impl_getViewContact(sdr::contact::ViewContactOfUnoControl *&_out_rpContact) const
Retrieves the typed ViewContact for the object.
Definition: svdouno.cxx:508
virtual void SAL_CALL disposing(const css::lang::EventObject &Source) override
Definition: svdouno.cxx:87
css::uno::Reference< css::awt::XControl > getControl()
returns the ->XControl instance belonging to the instance, creates it if necessary ...
void StartListening(const uno::Reference< lang::XComponent > &xComp)
Definition: svdouno.cxx:101
double nSin
Definition: svdtrans.hxx:219
virtual void TakeObjInfo(SdrObjTransformInfoRec &rInfo) const override
Definition: svdouno.cxx:203
GeoStat aGeo
Definition: svdotext.hxx:185
SdrUnoObj & operator=(const SdrUnoObj &rObj)
Definition: svdouno.cxx:265
long nRotationAngle
Definition: svdtrans.hxx:216
css::uno::Reference< css::awt::XControl > getTemporaryControlForWindow(const vcl::Window &_rWindow, css::uno::Reference< css::awt::XControlContainer > &_inout_ControlContainer) const
retrieves a temporary XControl instance, whose parent is the given window SdrUnoObj::GetTemporaryCon...
virtual void SetContextWritingMode(const sal_Int16 _nContextWritingMode) override
Definition: svdouno.cxx:226
SdrUnoObj(SdrModel &rSdrModel, const OUString &rModelName)
Definition: svdouno.cxx:150
sdr::contact::ViewContact & GetViewContact() const
Definition: svdobj.cxx:269
void Move(long nHorzMoveDelta, long nVertMoveDelta)
Rectangle objects (rectangle, circle, ...)
Definition: svdorect.hxx:39
SdrView * NextView()
Definition: svdviter.cxx:166
SdrPageWindow * FindPageWindow(SdrPaintWindow &rPaintWindow) const
Definition: svdpagv.cxx:53
Provides information about various ZObject properties.
Definition: svdobj.hxx:248
virtual void NbcSetLayer(SdrLayerID nLayer) override
Definition: svdouno.cxx:338
SdrPageWindow * GetPageWindow(sal_uInt32 nIndex) const
Definition: svdpagv.cxx:93
long Right() const
SdrPage * getSdrPageFromSdrObject() const
Definition: svdobj.cxx:287
OUString SvxResId(const char *pId)
Definition: dialmgr.cxx:28
continuously activated OLE (PlugIn-Frame or similar)
Definition: svdobj.hxx:145
SVX_DLLPRIVATE void CreateUnoControlModel(const OUString &rModelName)
Definition: svdouno.cxx:393
virtual std::unique_ptr< sdr::contact::ViewContact > CreateObjectSpecificViewContact() override
Definition: svdouno.cxx:517
tools::Rectangle maRect
Definition: svdotext.hxx:182
virtual ~SdrUnoObj() override
Definition: svdouno.cxx:181
void StopListening(const uno::Reference< lang::XComponent > &xComp)
Definition: svdouno.cxx:95
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
Definition: svdouno.cxx:309
long Top() const
virtual OUString TakeObjNamePlural() const override
Definition: svdouno.cxx:255
OUString aUnoControlTypeName
Definition: svdouno.hxx:52
#define DBG_UNHANDLED_EXCEPTION(...)
#define TOOLS_WARN_EXCEPTION(area, stream)
double nCos
Definition: svdtrans.hxx:220
#define DBG_ASSERT(sCon, aError)
OUString sName
friend class SdrControlEventListenerImpl
Definition: svdouno.hxx:47
int i
css::uno::Reference< css::awt::XControl > GetTemporaryControlForWindow(const vcl::Window &_rWindow, css::uno::Reference< css::awt::XControlContainer > &_inout_ControlContainer) const
Retrieves a temporary XControl instance for a given output device.
Definition: svdouno.cxx:495
double nTan
Definition: svdtrans.hxx:218
virtual void SetUnoControlModel(const css::uno::Reference< css::awt::XControlModel > &xModel)
Definition: svdouno.cxx:432
long Bottom() const
void flushViewObjectContacts(bool bWithHierarchy=true)
const sdr::contact::ObjectContact & GetObjectContact() const
OUString GetName() const
Definition: svdobj.cxx:722
long nShearAngle
Definition: svdtrans.hxx:217
virtual SdrLayerID GetLayer() const
Definition: svdobj.cxx:601
virtual bool hasSpecialDrag() const override
The standard transformations (Move,Resize,Rotate,Mirror,Shear) are taken over by the View (TakeXorPol...
Definition: svdouno.cxx:331
virtual sal_uInt16 GetObjIdentifier() const override
Definition: svdouno.cxx:221
SdrControlEventListenerImpl(SdrUnoObj *_pObj)
Definition: svdouno.cxx:75
SdrRectObj & operator=(const SdrRectObj &rCopy)
Definition: svdorect.cxx:263
mutable::rtl::Reference< SdrControlEventListenerImpl > pEventListener
Definition: svdouno.cxx:111
std::unique_ptr< SdrUnoObjDataHolder > m_pImpl
Definition: svdouno.hxx:49
bool bIsUnoObj
Definition: svdobj.hxx:944
SdrPage * GetPage() const
Definition: svdpagv.hxx:171
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
Definition: svdorect.cxx:479
bool HasObjectContact() const
determines whether there already exists an ObjectContact
OUString aName
Reference< XComponentContext > getProcessComponentContext()
virtual OUString TakeObjNameSingul() const override
Definition: svdouno.cxx:239
long Left() const
css::uno::Reference< css::awt::XControl > GetUnoControl(const SdrView &_rView, const OutputDevice &_rOut) const
Definition: svdouno.cxx:471
SdrPageView * GetSdrPageView() const
Definition: svdpntv.hxx:310
virtual void SetRectsDirty(bool bNotMyself=false, bool bRecursive=true)
Definition: svdobj.cxx:459
const css::uno::Reference< css::awt::XControlModel > & GetUnoControlModel() const
Definition: svdouno.hxx:91
uno::Reference< ucb::XContent > xContent
Reference< XModel > xModel
css::uno::Reference< css::awt::XControlModel > xUnoControlModel
Definition: svdouno.hxx:55
::std::unique_ptr< XmlIdRegistry_Impl > m_pImpl
std::pair< const_iterator, bool > insert(Value &&x)
virtual void SetChanged()
Definition: svdobj.cxx:953
virtual SdrUnoObj * CloneSdrObject(SdrModel &rTargetModel) const override
Definition: svdouno.cxx:260
SdrView * FirstView()
Definition: svdviter.cxx:159
aStr
OUString aUnoControlModelTypeName
Definition: svdouno.hxx:51
size_type erase(const Value &x)
virtual void NbcSetLayer(SdrLayerID nLayer)
Definition: svdobj.cxx:618
sal_uInt32 PageWindowCount() const
Definition: svdpagv.hxx:94