Update git submodules
[LibreOffice.git] / sd / source / ui / inc / unomodel.hxx
blob4e4019db31474e1598b3d09f441ea3b6d312553e
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
19 #pragma once
21 #include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
22 #include <com/sun/star/document/XLinkTargetSupplier.hpp>
23 #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
24 #include <com/sun/star/drawing/XDrawPages2.hpp>
25 #include <com/sun/star/drawing/XDrawPageDuplicator.hpp>
26 #include <com/sun/star/drawing/XLayerSupplier.hpp>
27 #include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
28 #include <com/sun/star/presentation/XPresentationSupplier.hpp>
29 #include <com/sun/star/presentation/XCustomPresentationSupplier.hpp>
30 #include <com/sun/star/lang/XServiceInfo.hpp>
31 #include <com/sun/star/drawing/XDrawPages.hpp>
32 #include <com/sun/star/ucb/XAnyCompareFactory.hpp>
33 #include <com/sun/star/presentation/XHandoutMasterSupplier.hpp>
34 #include <com/sun/star/view/XRenderable.hpp>
35 #include <com/sun/star/beans/XPropertySet.hpp>
37 #include <rtl/ref.hxx>
38 #include <unotools/weakref.hxx>
40 #include <sfx2/sfxbasemodel.hxx>
41 #include <svx/fmdmod.hxx>
43 #include <vcl/ITiledRenderable.hxx>
45 #include <comphelper/servicehelper.hxx>
46 #include <cppuhelper/implbase.hxx>
47 #include <cppuhelper/weakref.hxx>
48 #include <sddllapi.h>
50 namespace com::sun::star::container { class XNameContainer; }
51 namespace com::sun::star::i18n { class XForbiddenCharacters; }
52 namespace com::sun::star::presentation { class XPresentation; }
54 class SdDrawDocument;
55 class SdPage;
56 class SvxItemPropertySet;
57 class SdUnoForbiddenCharsTable;
58 class SdDrawPagesAccess;
59 class SdMasterPagesAccess;
60 class SdLayerManager;
61 class SdXCustomPresentationAccess;
62 class SdDocLinkTargets;
63 class SdGenericDrawPage;
65 namespace sd {
66 class DrawDocShell;
67 class DrawViewShell;
68 class SlideshowLayerRenderer;
71 extern OUString getPageApiName( SdPage const * pPage );
72 extern OUString getPageApiNameFromUiName( const OUString& rUIName );
74 class SAL_DLLPUBLIC_RTTI SdXImpressDocument final : public SfxBaseModel, // implements SfxListener, OWEAKOBJECT & other
75 public SvxFmMSFactory,
76 public css::drawing::XDrawPageDuplicator,
77 public css::drawing::XLayerSupplier,
78 public css::drawing::XMasterPagesSupplier,
79 public css::drawing::XDrawPagesSupplier,
80 public css::presentation::XPresentationSupplier,
81 public css::presentation::XCustomPresentationSupplier,
82 public css::document::XLinkTargetSupplier,
83 public css::beans::XPropertySet,
84 public css::style::XStyleFamiliesSupplier,
85 public css::lang::XServiceInfo,
86 public css::ucb::XAnyCompareFactory,
87 public css::presentation::XHandoutMasterSupplier,
88 public css::view::XRenderable,
89 public vcl::ITiledRenderable
91 friend class SdDrawPagesAccess;
92 friend class SdMasterPagesAccess;
93 friend class SdLayerManager;
95 private:
96 ::sd::DrawDocShell* mpDocShell;
97 SdDrawDocument* mpDoc;
98 bool mbDisposed;
100 std::unique_ptr<sd::SlideshowLayerRenderer> mpSlideshowLayerRenderer;
102 css::uno::Reference<css::uno::XInterface> create(
103 OUString const & aServiceSpecifier, OUString const & referer);
105 /// @throws css::uno::RuntimeException
106 SdPage* InsertSdPage( sal_uInt16 nPage, bool bDuplicate );
108 const bool mbImpressDoc;
109 bool mbClipBoard;
111 unotools::WeakReference< SdDrawPagesAccess > mxDrawPagesAccess;
112 unotools::WeakReference< SdMasterPagesAccess > mxMasterPagesAccess;
113 unotools::WeakReference< SdLayerManager > mxLayerManager;
114 unotools::WeakReference< SdXCustomPresentationAccess > mxCustomPresentationAccess;
115 unotools::WeakReference< SdUnoForbiddenCharsTable > mxForbiddenCharacters;
116 unotools::WeakReference< SdDocLinkTargets > mxLinks;
118 css::uno::Reference< css::uno::XInterface > mxDashTable;
119 css::uno::Reference< css::uno::XInterface > mxGradientTable;
120 css::uno::Reference< css::uno::XInterface > mxHatchTable;
121 css::uno::Reference< css::uno::XInterface > mxBitmapTable;
122 css::uno::Reference< css::uno::XInterface > mxTransGradientTable;
123 css::uno::Reference< css::uno::XInterface > mxMarkerTable;
124 css::uno::Reference< css::uno::XInterface > mxDrawingPool;
126 const SvxItemPropertySet* mpPropSet;
128 css::uno::Sequence< css::uno::Type > maTypeSequence;
130 OUString maBuildId;
132 bool mbPaintTextEdit;
134 void initializeDocument();
136 SAL_RET_MAYBENULL sd::DrawViewShell* GetViewShell();
138 /** abstract SdrModel provider */
139 virtual SdrModel& getSdrModelFromUnoModel() const override;
141 public:
142 SdXImpressDocument(::sd::DrawDocShell* pShell, bool bClipBoard);
143 SdXImpressDocument(SdDrawDocument* pDoc, bool bClipBoard);
144 virtual ~SdXImpressDocument() noexcept override;
146 static rtl::Reference< SdXImpressDocument > GetModel( SdDrawDocument const & rDoc );
148 // internal
149 bool operator==( const SdXImpressDocument& rModel ) const { return mpDoc == rModel.mpDoc; }
150 bool operator!=( const SdXImpressDocument& rModel ) const { return mpDoc != rModel.mpDoc; }
152 ::sd::DrawDocShell* GetDocShell() const { return mpDocShell; }
153 SdDrawDocument* GetDoc() const { return mpDoc; }
154 bool IsImpressDocument() const { return mbImpressDoc; }
156 void SetModified() noexcept;
158 css::uno::Reference< css::i18n::XForbiddenCharacters > getForbiddenCharsTable();
160 // SfxListener
161 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
163 UNO3_GETIMPLEMENTATION_DECL(SdXImpressDocument)
165 // XInterface
166 virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type & rType ) override;
167 SD_DLLPUBLIC virtual void SAL_CALL acquire() noexcept override;
168 SD_DLLPUBLIC virtual void SAL_CALL release() noexcept override;
170 // XModel
171 virtual void SAL_CALL lockControllers( ) override;
172 virtual void SAL_CALL unlockControllers( ) override;
173 virtual sal_Bool SAL_CALL hasControllersLocked( ) override;
174 virtual css::uno::Reference < css::container::XIndexAccess > SAL_CALL getViewData() override;
175 virtual void SAL_CALL setViewData( const css::uno::Reference < css::container::XIndexAccess >& aData ) override;
177 // XTypeProvider
178 virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
179 virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) override;
181 // XDrawPageDuplicator
182 virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL duplicate( const css::uno::Reference< css::drawing::XDrawPage >& xPage ) override;
184 // XDrawPagesSupplier
185 SD_DLLPUBLIC virtual css::uno::Reference< css::drawing::XDrawPages > SAL_CALL getDrawPages( ) override;
187 // XMasterPagesSupplier
188 virtual css::uno::Reference< css::drawing::XDrawPages > SAL_CALL getMasterPages( ) override;
190 // XLayerManagerSupplier
191 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLayerManager( ) override;
193 // XCustomPresentationSupplier
194 virtual css::uno::Reference< css::container::XNameContainer > SAL_CALL getCustomPresentations( ) override;
196 // XHandoutMasterSupplier
197 virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL getHandoutMasterPage( ) override;
199 // XPresentationSupplier
200 virtual css::uno::Reference< css::presentation::XPresentation > SAL_CALL getPresentation( ) override;
202 // XMultiServiceFactory ( SvxFmMSFactory )
203 SD_DLLPUBLIC virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance( const OUString& aServiceSpecifier ) override;
204 virtual css::uno::Reference<css::uno::XInterface> SAL_CALL
205 createInstanceWithArguments(
206 OUString const & ServiceSpecifier,
207 css::uno::Sequence<css::uno::Any> const & Arguments) override;
208 virtual css::uno::Sequence< OUString > SAL_CALL getAvailableServiceNames( ) override;
210 // XServiceInfo
211 virtual OUString SAL_CALL getImplementationName() override;
212 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
213 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
215 // XPropertySet
216 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
217 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
218 virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
219 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
220 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
221 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
222 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
224 // XLinkTargetSupplier
225 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLinks( ) override;
227 // XStyleFamiliesSupplier
228 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getStyleFamilies( ) override;
230 // XAnyCompareFactory
231 virtual css::uno::Reference< css::ucb::XAnyCompare > SAL_CALL createAnyCompareByName( const OUString& PropertyName ) override;
233 // XRenderable
234 virtual sal_Int32 SAL_CALL getRendererCount( const css::uno::Any& aSelection, const css::uno::Sequence< css::beans::PropertyValue >& xOptions ) override;
235 virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getRenderer( sal_Int32 nRenderer, const css::uno::Any& aSelection, const css::uno::Sequence< css::beans::PropertyValue >& xOptions ) override;
236 virtual void SAL_CALL render( sal_Int32 nRenderer, const css::uno::Any& aSelection, const css::uno::Sequence< css::beans::PropertyValue >& xOptions ) override;
238 // ITiledRenderable
239 SD_DLLPUBLIC virtual void paintTile( VirtualDevice& rDevice,
240 int nOutputWidth,
241 int nOutputHeight,
242 int nTilePosX,
243 int nTilePosY,
244 tools::Long nTileWidth,
245 tools::Long nTileHeight ) override;
246 virtual Size getDocumentSize() override;
247 SD_DLLPUBLIC virtual void setPart( int nPart, bool bAllowChangeFocus = true ) override;
248 SD_DLLPUBLIC virtual int getPart() override;
249 SD_DLLPUBLIC virtual int getParts() override;
250 SD_DLLPUBLIC virtual OUString getPartName( int nPart ) override;
251 SD_DLLPUBLIC virtual OUString getPartHash( int nPart ) override;
252 SD_DLLPUBLIC virtual VclPtr<vcl::Window> getDocWindow() override;
253 bool isMasterViewMode();
255 /// @see vcl::ITiledRenderable::setPartMode().
256 virtual void setPartMode( int nPartMode ) override;
257 /// @see vcl::ITiledRenderable::getEditMode().
258 virtual int getEditMode() override;
259 /// @see vcl::ITiledRenderable::setEditMode().
260 virtual void setEditMode(int) override;
261 /// @see vcl::ITiledRenderable::initializeForTiledRendering().
262 SD_DLLPUBLIC virtual void initializeForTiledRendering(const css::uno::Sequence<css::beans::PropertyValue>& rArguments) override;
263 /// @see vcl::ITiledRenderable::postKeyEvent().
264 SD_DLLPUBLIC virtual void postKeyEvent(int nType, int nCharCode, int nKeyCode) override;
265 /// @see vcl::ITiledRenderable::postMouseEvent().
266 SD_DLLPUBLIC virtual void postMouseEvent(int nType, int nX, int nY, int nCount, int nButtons, int nModifier) override;
267 /// @see vcl::ITiledRenderable::setTextSelection().
268 SD_DLLPUBLIC virtual void setTextSelection(int nType, int nX, int nY) override;
269 /// @see vcl::ITiledRenderable::getSelection().
270 SD_DLLPUBLIC virtual css::uno::Reference<css::datatransfer::XTransferable> getSelection() override;
271 /// @see vcl::ITiledRenderable::setGraphicSelection().
272 SD_DLLPUBLIC virtual void setGraphicSelection(int nType, int nX, int nY) override;
273 /// @see lok::Document::resetSelection().
274 SD_DLLPUBLIC virtual void resetSelection() override;
275 /// @see vcl::ITiledRenderable::setClientVisibleArea().
276 virtual void setClientVisibleArea(const tools::Rectangle& rRectangle) override;
277 /// @see vcl::ITiledRenderable::setClipboard().
278 virtual void setClipboard(const css::uno::Reference<css::datatransfer::clipboard::XClipboard>& xClipboard) override;
279 /// @see vcl::ITiledRenderable::isMimeTypeSupported().
280 virtual bool isMimeTypeSupported() override;
281 /// @see vcl::ITiledRenderable::getPointer().
282 virtual PointerStyle getPointer() override;
283 /// @see vcl::ITiledRenderable::getPostIts().
284 virtual void getPostIts(tools::JsonWriter& /*rJsonWriter*/) override;
285 /// @see vcl::ITiledRenderable::selectPart().
286 virtual void selectPart(int nPart, int nSelect) override;
287 /// @see vcl::ITiledRenderable::moveSelectedParts().
288 virtual void moveSelectedParts(int nPosition, bool bDuplicate) override;
289 /// @see vcl::ITiledRenderable::getPartInfo().
290 virtual OUString getPartInfo(int nPart) override;
291 /// @see vcl::ITiledRenderable::isDisposed().
292 virtual bool isDisposed() const override
294 return mbDisposed;
296 /// @see vcl::ITiledRenderable::setPaintTextEdit().
297 virtual void setPaintTextEdit(bool bPaint) override { mbPaintTextEdit = bPaint; }
298 /// @see vcl::ITiledRenderable::getViewRenderState().
299 SD_DLLPUBLIC OString getViewRenderState(SfxViewShell* pViewShell = nullptr) override;
301 /// @see vcl::ITiledRenderable::getPresentationInfo().
302 SD_DLLPUBLIC OString getPresentationInfo() const override;
303 /// @see vcl::ITiledRenderable::createSlideRenderer().
304 SD_DLLPUBLIC bool createSlideRenderer(
305 const OString& rSlideHash,
306 sal_Int32 nSlideNumber, sal_Int32& nViewWidth, sal_Int32& nViewHeight,
307 bool bRenderBackground, bool bRenderMasterPage) override;
308 /// @see vcl::ITiledRenderable::postSlideshowCleanup().
309 SD_DLLPUBLIC void postSlideshowCleanup() override;
310 /// @see vcl::ITiledRenderable::renderNextSlideLayer().
311 SD_DLLPUBLIC bool renderNextSlideLayer(unsigned char* pBuffer, bool& bIsBitmapLayer, OUString& rJsonMsg) override;
313 rtl::Reference< SdDrawPagesAccess > getSdDrawPages();
315 // XComponent
317 /** This dispose implementation releases the resources held by the
318 called object and forwards the call to its base class.
319 When close() has not yet been called then this is done first. As a
320 consequence the implementation has to cope with being called twice
321 and still has to forward the second call to the base class.
322 See also comments of issue 27847.
324 virtual void SAL_CALL dispose() override;
327 /***********************************************************************
329 ***********************************************************************/
331 class SdDrawPagesAccess final : public ::cppu::WeakImplHelper< css::drawing::XDrawPages, css::container::XNameAccess, css::lang::XServiceInfo, css::lang::XComponent >
333 private:
334 SdXImpressDocument* mpModel;
336 public:
337 SdDrawPagesAccess( SdXImpressDocument& rMyModel ) noexcept;
338 virtual ~SdDrawPagesAccess() noexcept override;
340 // XDrawPages
341 virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL insertNewByIndex( sal_Int32 nIndex ) override;
342 virtual void SAL_CALL remove( const css::uno::Reference< css::drawing::XDrawPage >& xPage ) override;
344 // XNameAccess
345 virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
346 virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
347 virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
349 // XIndexAccess
350 virtual sal_Int32 SAL_CALL getCount() override ;
351 virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) override;
353 // XElementAccess
354 virtual css::uno::Type SAL_CALL getElementType() override;
355 virtual sal_Bool SAL_CALL hasElements() override;
357 // XServiceInfo
358 virtual OUString SAL_CALL getImplementationName( ) override;
359 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
360 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
362 // XComponent
363 virtual void SAL_CALL dispose( ) override;
364 virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) override;
365 virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) override;
367 SdGenericDrawPage* getDrawPageByIndex( sal_Int32 Index );
370 /***********************************************************************
372 ***********************************************************************/
374 class SdMasterPagesAccess final : public ::cppu::WeakImplHelper< css::drawing::XDrawPages2, css::lang::XServiceInfo, css::lang::XComponent >
376 private:
377 SdXImpressDocument* mpModel;
379 public:
380 SdMasterPagesAccess( SdXImpressDocument& rMyModel ) noexcept;
381 virtual ~SdMasterPagesAccess() noexcept override;
383 // XDrawPages
384 virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL insertNewByIndex( sal_Int32 nIndex ) override;
385 virtual void SAL_CALL remove( const css::uno::Reference< css::drawing::XDrawPage >& xPage ) override;
387 // XDrawPages2
388 virtual css::uno::Reference< ::css::drawing::XDrawPage > SAL_CALL insertNamedNewByIndex( sal_Int32 nIndex, const OUString& sName ) override;
390 // XIndexAccess
391 virtual sal_Int32 SAL_CALL getCount() override ;
392 virtual css::uno::Any SAL_CALL getByIndex( sal_Int32 Index ) override;
394 // XElementAccess
395 virtual css::uno::Type SAL_CALL getElementType() override;
396 virtual sal_Bool SAL_CALL hasElements() override;
398 // XServiceInfo
399 virtual OUString SAL_CALL getImplementationName( ) override;
400 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
401 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
403 // XComponent
404 virtual void SAL_CALL dispose( ) override;
405 virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) override;
406 virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) override;
408 private:
409 css::uno::Reference< ::css::drawing::XDrawPage > insertNewImpl( sal_Int32 nIndex, std::optional<OUString> oName );
412 /***********************************************************************
414 ***********************************************************************/
416 enum SdLinkTargetType
418 Page = 0,
419 Notes,
420 Handout,
421 MasterPage,
422 Count
425 class SdDocLinkTargets final : public ::cppu::WeakImplHelper< css::container::XNameAccess,
426 css::lang::XServiceInfo , css::lang::XComponent >
428 private:
429 SdXImpressDocument* mpModel;
430 OUString aNames[SdLinkTargetType::Count];
432 public:
433 SdDocLinkTargets(SdXImpressDocument& rMyModel);
434 virtual ~SdDocLinkTargets() noexcept override;
436 // XNameAccess
437 virtual css::uno::Any SAL_CALL getByName( const OUString& aName ) override;
438 virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
439 virtual sal_Bool SAL_CALL hasByName( const OUString& aName ) override;
441 // XElementAccess
442 virtual css::uno::Type SAL_CALL getElementType() override;
443 virtual sal_Bool SAL_CALL hasElements() override;
445 // XServiceInfo
446 virtual OUString SAL_CALL getImplementationName() override;
447 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
448 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
450 // XComponent
451 virtual void SAL_CALL dispose( ) override;
452 virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) override;
453 virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) override;
456 class SdDocLinkTargetType final : public ::cppu::WeakImplHelper< css::document::XLinkTargetSupplier,
457 css::beans::XPropertySet,
458 css::lang::XServiceInfo >
460 SdXImpressDocument* mpModel;
461 sal_uInt16 mnType;
462 OUString maName;
464 public:
465 SdDocLinkTargetType(SdXImpressDocument* pModel, sal_uInt16 nT);
467 // css::document::XLinkTargetSupplier
468 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLinks() override;
470 // css::lang::XServiceInfo
471 virtual OUString SAL_CALL getImplementationName() override;
472 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
473 virtual css::uno::Sequence< OUString> SAL_CALL getSupportedServiceNames() override;
475 // css::beans::XPropertySet
476 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override;
477 virtual void SAL_CALL setPropertyValue(const OUString& aPropertyName,
478 const css::uno::Any& aValue) override;
479 virtual css::uno::Any SAL_CALL getPropertyValue(const OUString& PropertyName) override;
480 virtual void SAL_CALL addPropertyChangeListener(const OUString& aPropertyName,
481 const css::uno::Reference< css::beans::XPropertyChangeListener > & xListener) override;
482 virtual void SAL_CALL removePropertyChangeListener(const OUString& aPropertyName,
483 const css::uno::Reference< css::beans::XPropertyChangeListener > & aListener) override;
484 virtual void SAL_CALL addVetoableChangeListener(const OUString& PropertyName,
485 const css::uno::Reference< css::beans::XVetoableChangeListener > & aListener) override;
486 virtual void SAL_CALL removeVetoableChangeListener(const OUString& PropertyName,
487 const css::uno::Reference< css::beans::XVetoableChangeListener > & aListener) override;
490 class SdDocLinkTarget final : public ::cppu::WeakImplHelper< css::container::XNameAccess,
491 css::lang::XServiceInfo >
493 private:
494 SdXImpressDocument* mpModel;
495 sal_uInt16 mnType;
497 public:
498 SdDocLinkTarget( SdXImpressDocument* pModel, sal_uInt16 nT );
500 // css::container::XNameAccess
501 virtual css::uno::Any SAL_CALL getByName(const OUString& aName) override;
502 virtual css::uno::Sequence< OUString> SAL_CALL getElementNames() override;
503 virtual sal_Bool SAL_CALL hasByName(const OUString& aName) override;
505 // css::container::XElementAccess
506 virtual css::uno::Type SAL_CALL getElementType() override;
507 virtual sal_Bool SAL_CALL hasElements() override;
509 // css::lang::XServiceInfo
510 virtual OUString SAL_CALL getImplementationName() override;
511 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
512 virtual css::uno::Sequence< OUString> SAL_CALL getSupportedServiceNames() override;
514 // internal
515 /// @throws std::exception
516 SdPage* FindPage( std::u16string_view rName ) const;
519 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */