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