lok: Hide file linking in section
[LibreOffice.git] / sw / inc / unotxdoc.hxx
bloba1da4a7ceaa66f8522e43ce06841bc6df445dc0a
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 #ifndef INCLUDED_SW_INC_UNOTXDOC_HXX
20 #define INCLUDED_SW_INC_UNOTXDOC_HXX
22 #include "swdllapi.h"
23 #include <sfx2/sfxbasemodel.hxx>
25 #include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
26 #include <com/sun/star/style/XAutoStylesSupplier.hpp>
27 #include <com/sun/star/document/XLinkTargetSupplier.hpp>
28 #include <com/sun/star/document/XRedlinesSupplier.hpp>
29 #include <com/sun/star/text/XNumberingRulesSupplier.hpp>
30 #include <com/sun/star/text/XFootnotesSupplier.hpp>
31 #include <com/sun/star/text/XEndnotesSupplier.hpp>
32 #include <com/sun/star/text/XTextSectionsSupplier.hpp>
33 #include <com/sun/star/text/XLineNumberingProperties.hpp>
34 #include <com/sun/star/text/XChapterNumberingSupplier.hpp>
35 #include <com/sun/star/text/XPagePrintable.hpp>
36 #include <com/sun/star/text/XTextFieldsSupplier.hpp>
37 #include <com/sun/star/text/XTextGraphicObjectsSupplier.hpp>
38 #include <com/sun/star/text/XTextTablesSupplier.hpp>
39 #include <com/sun/star/text/XDocumentIndexesSupplier.hpp>
40 #include <com/sun/star/text/XBookmarksSupplier.hpp>
41 #include <com/sun/star/text/XTextDocument.hpp>
42 #include <com/sun/star/text/XTextEmbeddedObjectsSupplier.hpp>
43 #include <com/sun/star/text/XReferenceMarksSupplier.hpp>
44 #include <com/sun/star/text/XTextFramesSupplier.hpp>
45 #include <com/sun/star/drawing/XDrawPageSupplier.hpp>
46 #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
47 #include <com/sun/star/util/XReplaceable.hpp>
48 #include <com/sun/star/util/XRefreshable.hpp>
49 #include <com/sun/star/util/XLinkUpdate.hpp>
50 #include <com/sun/star/view/XRenderable.hpp>
51 #include <com/sun/star/lang/XServiceInfo.hpp>
52 #include <com/sun/star/beans/XPropertySet.hpp>
53 #include <com/sun/star/beans/XPropertyState.hpp>
54 #include <com/sun/star/xforms/XFormsSupplier.hpp>
55 #include <com/sun/star/text/XFlatParagraphIteratorProvider.hpp>
56 #include <com/sun/star/document/XDocumentLanguages.hpp>
57 #include <com/sun/star/util/XCloneable.hpp>
58 #include <o3tl/deleter.hxx>
59 #include <rtl/ref.hxx>
60 #include <svx/fmdmod.hxx>
61 #include <editeng/UnoForbiddenCharsTable.hxx>
62 #include <cppuhelper/implbase.hxx>
63 #include <vcl/ITiledRenderable.hxx>
64 #include <com/sun/star/tiledrendering/XTiledRenderable.hpp>
65 #include <com/sun/star/text/XPasteBroadcaster.hpp>
67 #include "unobaseclass.hxx"
68 #include "viewopt.hxx"
70 #include <deque>
72 class SwDoc;
73 class SwDocShell;
74 class UnoActionContext;
75 class SwXBodyText;
76 class SwXDrawPage;
77 class SwUnoCursor;
78 class SwXDocumentPropertyHelper;
79 class SfxViewFrame;
80 class SfxViewShell;
81 class SwPrintUIOptions;
82 class SwPrintData;
83 class SwRenderData;
84 class SwViewShell;
85 class SfxItemPropertySet;
86 namespace com { namespace sun { namespace star { namespace container { class XNameContainer; } } } }
87 namespace com { namespace sun { namespace star { namespace frame { class XController; } } } }
88 namespace com { namespace sun { namespace star { namespace lang { struct Locale; } } } }
89 namespace com { namespace sun { namespace star { namespace uno { class XAggregation; } } } }
91 namespace com { namespace sun { namespace star { namespace util { class XReplaceDescriptor; } } } }
93 typedef cppu::WeakImplHelper
95 css::text::XTextDocument,
96 css::text::XLineNumberingProperties,
97 css::text::XChapterNumberingSupplier,
98 css::text::XNumberingRulesSupplier,
99 css::text::XFootnotesSupplier,
100 css::text::XEndnotesSupplier,
101 css::util::XReplaceable,
102 css::text::XPagePrintable,
103 css::text::XReferenceMarksSupplier,
104 css::text::XTextTablesSupplier,
105 css::text::XTextFramesSupplier,
106 css::text::XBookmarksSupplier,
107 css::text::XTextSectionsSupplier,
108 css::text::XTextGraphicObjectsSupplier,
109 css::text::XTextEmbeddedObjectsSupplier,
110 css::text::XTextFieldsSupplier,
111 css::style::XStyleFamiliesSupplier,
112 css::style::XAutoStylesSupplier,
113 css::lang::XServiceInfo,
114 css::drawing::XDrawPageSupplier,
115 css::drawing::XDrawPagesSupplier,
116 css::text::XDocumentIndexesSupplier,
117 css::beans::XPropertySet,
118 css::beans::XPropertyState,
119 css::document::XLinkTargetSupplier,
120 css::document::XRedlinesSupplier,
121 css::util::XRefreshable,
122 css::util::XLinkUpdate,
123 css::view::XRenderable,
124 css::xforms::XFormsSupplier,
125 css::text::XFlatParagraphIteratorProvider,
126 css::document::XDocumentLanguages,
127 css::util::XCloneable,
128 css::text::XPasteBroadcaster
130 SwXTextDocumentBaseClass;
132 class SW_DLLPUBLIC SwXTextDocument final : public SwXTextDocumentBaseClass,
133 public SvxFmMSFactory,
134 public SfxBaseModel,
135 public vcl::ITiledRenderable,
136 public css::tiledrendering::XTiledRenderable
138 private:
139 class Impl;
140 ::sw::UnoImplPtr<Impl> m_pImpl;
142 std::deque<std::unique_ptr<UnoActionContext, o3tl::default_delete<UnoActionContext>>> maActionArr;
144 const SfxItemPropertySet* pPropSet;
146 SwDocShell* pDocShell;
147 bool bObjectValid;
149 SwXDrawPage* pDrawPage;
150 css::uno::Reference< css::drawing::XDrawPage > mxXDrawPage;
152 css::uno::Reference< css::text::XText > xBodyText;
153 SwXBodyText* pBodyText;
154 css::uno::Reference< css::uno::XAggregation > xNumFormatAgg;
156 css::uno::Reference< css::container::XIndexAccess > mxXNumberingRules;
157 css::uno::Reference< css::container::XIndexAccess > mxXFootnotes;
158 css::uno::Reference< css::beans::XPropertySet > mxXFootnoteSettings;
159 css::uno::Reference< css::container::XIndexAccess > mxXEndnotes;
160 css::uno::Reference< css::beans::XPropertySet > mxXEndnoteSettings;
161 css::uno::Reference< css::container::XNameAccess > mxXReferenceMarks;
162 css::uno::Reference< css::container::XEnumerationAccess > mxXTextFieldTypes;
163 css::uno::Reference< css::container::XNameAccess > mxXTextFieldMasters;
164 css::uno::Reference< css::container::XNameAccess > mxXTextSections;
165 css::uno::Reference< css::container::XNameAccess > mxXBookmarks;
166 css::uno::Reference< css::container::XNameAccess > mxXTextTables;
167 css::uno::Reference< css::container::XNameAccess > mxXTextFrames;
168 css::uno::Reference< css::container::XNameAccess > mxXGraphicObjects;
169 css::uno::Reference< css::container::XNameAccess > mxXEmbeddedObjects;
170 css::uno::Reference< css::container::XNameAccess > mxXStyleFamilies;
171 mutable css::uno::Reference< css::style::XAutoStyles > mxXAutoStyles;
172 css::uno::Reference< css::container::XIndexReplace > mxXChapterNumbering;
173 css::uno::Reference< css::container::XIndexAccess > mxXDocumentIndexes;
175 css::uno::Reference< css::beans::XPropertySet > mxXLineNumberingProperties;
176 css::uno::Reference< css::container::XNameAccess > mxLinkTargetSupplier;
177 css::uno::Reference< css::container::XEnumerationAccess > mxXRedlines;
179 //temporary frame to enable PDF export if no valid view is available
180 SfxViewFrame* m_pHiddenViewFrame;
181 rtl::Reference<SwXDocumentPropertyHelper> mxPropertyHelper;
183 std::unique_ptr<SwPrintUIOptions> m_pPrintUIOptions;
184 std::unique_ptr<SwRenderData> m_pRenderData;
186 void GetNumberFormatter();
188 css::uno::Reference<css::uno::XInterface> create(
189 OUString const & rServiceName,
190 css::uno::Sequence<css::uno::Any> const * arguments);
192 // used for XRenderable implementation
193 SfxViewShell * GuessViewShell( /* out */ bool &rbIsSwSrcView, const css::uno::Reference< css::frame::XController >& rController = css::uno::Reference< css::frame::XController >() );
194 SwDoc * GetRenderDoc( SfxViewShell *&rpView, const css::uno::Any& rSelection, bool bIsPDFExport );
195 SfxViewShell * GetRenderView( bool &rbIsSwSrcView, const css::uno::Sequence< css::beans::PropertyValue >& rxOptions, bool bIsPDFExport );
197 OUString maBuildId;
199 // boolean for XPagePrintable
200 // set in XPagePrintable::printPages(..) to indicate that the PagePrintSettings
201 // has to be applied in XRenderable::getRenderer(..) through which the printing
202 // is implemented.
203 bool bApplyPagePrintSettingsFromXPagePrintable;
205 using SfxBaseModel::addEventListener;
206 using SfxBaseModel::removeEventListener;
208 /** abstract SdrModel provider */
209 virtual SdrModel& getSdrModelFromUnoModel() const override;
211 virtual ~SwXTextDocument() override;
212 public:
213 SwXTextDocument(SwDocShell* pShell);
215 void NotifyRefreshListeners();
216 virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
217 virtual void SAL_CALL acquire( ) throw() override;
218 virtual void SAL_CALL release( ) throw() override;
220 //XWeak
221 virtual css::uno::Reference< css::uno::XAdapter > SAL_CALL queryAdapter( ) override;
223 virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
225 static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
227 //XUnoTunnel
228 virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
230 //XTextDocument
231 virtual css::uno::Reference< css::text::XText > SAL_CALL getText() override;
232 virtual void SAL_CALL reformat() override;
234 //XModel
235 virtual sal_Bool SAL_CALL attachResource( const OUString& aURL, const css::uno::Sequence< css::beans::PropertyValue >& aArgs ) override;
236 virtual OUString SAL_CALL getURL( ) override;
237 virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getArgs( ) override;
238 virtual void SAL_CALL connectController( const css::uno::Reference< css::frame::XController >& xController ) override;
239 virtual void SAL_CALL disconnectController( const css::uno::Reference< css::frame::XController >& xController ) override;
240 virtual void SAL_CALL lockControllers( ) override;
241 virtual void SAL_CALL unlockControllers( ) override;
242 virtual sal_Bool SAL_CALL hasControllersLocked( ) override;
243 virtual css::uno::Reference< css::frame::XController > SAL_CALL getCurrentController( ) override;
244 virtual void SAL_CALL setCurrentController( const css::uno::Reference< css::frame::XController >& xController ) override;
245 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getCurrentSelection( ) override;
247 //XComponent
248 virtual void SAL_CALL dispose() override;
249 virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > & aListener) override;
250 virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > & aListener) override;
252 //XCloseable
253 virtual void SAL_CALL close( sal_Bool bDeliverOwnership ) override;
255 //XLineNumberingProperties
256 virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getLineNumberingProperties() override;
258 //XChapterNumberingSupplier
259 virtual css::uno::Reference< css::container::XIndexReplace > SAL_CALL getChapterNumberingRules() override;
261 //XNumberingRulesSupplier
262 virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getNumberingRules() override;
264 //XFootnotesSupplier
265 virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getFootnotes() override;
266 virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getFootnoteSettings() override;
268 //XEndnotesSupplier
269 virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getEndnotes() override;
270 virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getEndnoteSettings() override;
272 //XReplaceable
273 virtual css::uno::Reference< css::util::XReplaceDescriptor > SAL_CALL createReplaceDescriptor() override;
274 virtual sal_Int32 SAL_CALL replaceAll(const css::uno::Reference< css::util::XSearchDescriptor > & xDesc) override;
276 //XSearchable
277 virtual css::uno::Reference< css::util::XSearchDescriptor > SAL_CALL createSearchDescriptor() override;
278 virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL findAll(const css::uno::Reference< css::util::XSearchDescriptor > & xDesc) override;
279 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL findFirst(const css::uno::Reference< css::util::XSearchDescriptor > & xDesc) override;
280 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL findNext(const css::uno::Reference< css::uno::XInterface > & xStartAt, const css::uno::Reference< css::util::XSearchDescriptor > & xDesc) override;
282 //XPagePrintable
283 virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getPagePrintSettings() override;
284 virtual void SAL_CALL setPagePrintSettings(const css::uno::Sequence< css::beans::PropertyValue >& aSettings) override;
285 virtual void SAL_CALL printPages(const css::uno::Sequence< css::beans::PropertyValue >& xOptions) override;
287 //XReferenceMarksSupplier
288 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getReferenceMarks() override;
290 // css::text::XTextFieldsSupplier
291 virtual css::uno::Reference< css::container::XEnumerationAccess > SAL_CALL getTextFields() override;
292 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getTextFieldMasters() override;
294 // css::text::XTextEmbeddedObjectsSupplier
295 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getEmbeddedObjects() override;
297 // css::text::XBookmarksSupplier
298 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getBookmarks() override;
300 // css::text::XTextSectionsSupplier
301 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getTextSections() override;
303 // css::text::XTextTablesSupplier
304 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getTextTables() override;
306 // css::text::XTextGraphicObjectsSupplier
307 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getGraphicObjects() override;
309 // css::text::XTextFramesSupplier
310 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getTextFrames() override;
312 //XStyleFamiliesSupplier
313 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getStyleFamilies() override;
315 //XAutoStylesSupplier
316 virtual css::uno::Reference< css::style::XAutoStyles > SAL_CALL getAutoStyles( ) override;
318 //XMultiServiceFactory
319 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(const OUString& ServiceSpecifier) override;
320 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const OUString& ServiceSpecifier,
321 const css::uno::Sequence< css::uno::Any >& Arguments) override;
322 virtual css::uno::Sequence< OUString > SAL_CALL getAvailableServiceNames() override;
324 //XServiceInfo
325 virtual OUString SAL_CALL getImplementationName() override;
326 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
327 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
329 // css::drawing::XDrawPageSupplier
330 virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL getDrawPage() override;
332 // css::drawing::XDrawPagesSupplier
333 virtual css::uno::Reference< css::drawing::XDrawPages > SAL_CALL getDrawPages() override;
335 // css::text::XDocumentIndexesSupplier
336 virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getDocumentIndexes() override;
338 //XPropertySet
339 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
340 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
341 virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
342 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
343 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
344 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
345 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
347 //XPropertyState
348 virtual css::beans::PropertyState SAL_CALL getPropertyState( const OUString& rPropertyName ) override;
349 virtual css::uno::Sequence< css::beans::PropertyState > SAL_CALL getPropertyStates( const css::uno::Sequence< OUString >& rPropertyNames ) override;
350 virtual void SAL_CALL setPropertyToDefault( const OUString& rPropertyName ) override;
351 virtual css::uno::Any SAL_CALL getPropertyDefault( const OUString& rPropertyName ) override;
353 //XLinkTargetSupplier
354 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLinks() override;
356 //XRedlinesSupplier
357 virtual css::uno::Reference< css::container::XEnumerationAccess > SAL_CALL getRedlines( ) override;
359 // css::util::XRefreshable
360 virtual void SAL_CALL refresh() override;
361 virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > & l) override;
362 virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > & l) override;
364 // css::util::XLinkUpdate,
365 virtual void SAL_CALL updateLinks( ) override;
367 // css::view::XRenderable
368 virtual sal_Int32 SAL_CALL getRendererCount( const css::uno::Any& aSelection, const css::uno::Sequence< css::beans::PropertyValue >& xOptions ) override;
369 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;
370 virtual void SAL_CALL render( sal_Int32 nRenderer, const css::uno::Any& aSelection, const css::uno::Sequence< css::beans::PropertyValue >& xOptions ) override;
372 // css::xforms::XFormsSupplier
373 virtual css::uno::Reference< css::container::XNameContainer > SAL_CALL getXForms( ) override;
375 // css::document::XDocumentLanguages
376 virtual css::uno::Sequence< css::lang::Locale > SAL_CALL getDocumentLanguages( ::sal_Int16 nScriptTypes, ::sal_Int16 nCount ) override;
378 // css::text::XFlatParagraphIteratorProvider:
379 virtual css::uno::Reference< css::text::XFlatParagraphIterator > SAL_CALL getFlatParagraphIterator(::sal_Int32 nTextMarkupType, sal_Bool bAutomatic ) override;
381 // css::util::XCloneable
382 virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone( ) override;
384 // css::text::XPasteBroadcaster
385 void SAL_CALL addPasteEventListener(
386 const ::css::uno::Reference<::css::text::XPasteListener>& xListener) override;
387 void SAL_CALL removePasteEventListener(
388 const ::css::uno::Reference<::css::text::XPasteListener>& xListener) override;
390 /// @see vcl::ITiledRenderable::paintTile().
391 virtual void paintTile( VirtualDevice &rDevice,
392 int nOutputWidth,
393 int nOutputHeight,
394 int nTilePosX,
395 int nTilePosY,
396 long nTileWidth,
397 long nTileHeight ) override;
398 /// @see vcl::ITiledRenderable::getDocumentSize().
399 virtual Size getDocumentSize() override;
400 /// @see vcl::ITiledRenderable::setPart().
401 virtual void setPart(int nPart, bool bAllowChangeFocus = true) override;
402 /// @see vcl::ITiledRenderable::getParts().
403 virtual int getParts() override;
404 /// @see vcl::ITiledRenderable::getPart().
405 virtual int getPart() override;
406 /// @see vcl::ITiledRenderable::getPartName().
407 virtual OUString getPartName(int nPart) override;
408 /// @see vcl::ITiledRenderable::getPartHash().
409 virtual OUString getPartHash(int nPart) override;
410 /// @see vcl::ITiledRenderable::getDocWindow().
411 virtual VclPtr<vcl::Window> getDocWindow() override;
412 /// @see vcl::ITiledRenderable::initializeForTiledRendering().
413 virtual void initializeForTiledRendering(const css::uno::Sequence<css::beans::PropertyValue>& rArguments) override;
414 /// @see vcl::ITiledRenderable::postKeyEvent().
415 virtual void postKeyEvent(int nType, int nCharCode, int nKeyCode) override;
416 /// @see vcl::ITiledRenderable::postMouseEvent().
417 virtual void postMouseEvent(int nType, int nX, int nY, int nCount, int nButtons, int nModifier) override;
418 /// @see vcl::ITiledRenderable::setTextSelection().
419 virtual void setTextSelection(int nType, int nX, int nY) override;
420 /// @see vcl::ITiledRenderable::getSelection().
421 virtual css::uno::Reference<css::datatransfer::XTransferable> getSelection() override;
422 /// @see vcl::ITiledRenderable::setGraphicSelection().
423 virtual void setGraphicSelection(int nType, int nX, int nY) override;
424 /// @see vcl::ITiledRenderable::resetSelection().
425 virtual void resetSelection() override;
426 /// @see vcl::ITiledRenderable::getPartPageRectangles().
427 virtual OUString getPartPageRectangles() override;
428 /// @see vcl::ITiledRenderable::setClipboard().
429 virtual void setClipboard(const css::uno::Reference<css::datatransfer::clipboard::XClipboard>& xClipboard) override;
430 /// @see vcl::ITiledRenderable::isMimeTypeSupported().
431 virtual bool isMimeTypeSupported() override;
432 /// @see vcl::ITiledRenderable::setClientVisibleArea().
433 virtual void setClientVisibleArea(const tools::Rectangle& rRectangle) override;
434 /// @see vcl::ITiledRenderable::setClientZoom.
435 virtual void setClientZoom(int nTilePixelWidth_, int nTilePixelHeight_, int nTileTwipWidth_, int nTileTwipHeight_) override;
436 /// @see vcl::ITiledRenderable::getPointer().
437 virtual PointerStyle getPointer() override;
438 /// @see vcl::ITiledRenderable::getTrackedChanges().
439 void getTrackedChanges(tools::JsonWriter&) override;
440 /// @see vcl::ITiledRenderable::getTrackedChangeAuthors().
441 OUString getTrackedChangeAuthors() override;
443 OUString getRulerState() override;
444 /// @see vcl::ITiledRenderable::getPostIts().
445 OUString getPostIts() override;
447 /// @see vcl::ITiledRenderable::executeFromFieldEvent().
448 virtual void executeFromFieldEvent(const StringMap& aArguments) override;
450 // css::tiledrendering::XTiledRenderable
451 virtual void SAL_CALL paintTile( const ::css::uno::Any& Parent, ::sal_Int32 nOutputWidth, ::sal_Int32 nOutputHeight, ::sal_Int32 nTilePosX, ::sal_Int32 nTilePosY, ::sal_Int32 nTileWidth, ::sal_Int32 nTileHeight ) override;
453 void Invalidate();
454 void Reactivate(SwDocShell* pNewDocShell);
455 SwXDocumentPropertyHelper * GetPropertyHelper ();
456 bool IsValid() const {return bObjectValid;}
458 void InitNewDoc();
460 SwUnoCursor* CreateCursorForSearch(css::uno::Reference< css::text::XTextCursor > & xCursor);
461 SwUnoCursor* FindAny(const css::uno::Reference< css::util::XSearchDescriptor > & xDesc,
462 css::uno::Reference< css::text::XTextCursor > & xCursor, bool bAll,
463 sal_Int32& nResult,
464 css::uno::Reference< css::uno::XInterface > const & xLastResult);
466 SwDocShell* GetDocShell() {return pDocShell;}
469 class SwXLinkTargetSupplier final : public cppu::WeakImplHelper
471 css::container::XNameAccess,
472 css::lang::XServiceInfo
475 SwXTextDocument* pxDoc;
476 OUString sTables;
477 OUString sFrames;
478 OUString sGraphics;
479 OUString sOLEs;
480 OUString sSections;
481 OUString sOutlines;
482 OUString sBookmarks;
484 public:
485 SwXLinkTargetSupplier(SwXTextDocument& rxDoc);
486 virtual ~SwXLinkTargetSupplier() override;
488 //XNameAccess
489 virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
490 virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
491 virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
493 //XElementAccess
494 virtual css::uno::Type SAL_CALL getElementType( ) override;
495 virtual sal_Bool SAL_CALL hasElements( ) override;
497 //XServiceInfo
498 virtual OUString SAL_CALL getImplementationName() override;
499 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
500 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
502 void Invalidate() {pxDoc = nullptr;}
505 class SwXLinkNameAccessWrapper final : public cppu::WeakImplHelper
507 css::beans::XPropertySet,
508 css::container::XNameAccess,
509 css::lang::XServiceInfo,
510 css::document::XLinkTargetSupplier
513 css::uno::Reference< css::container::XNameAccess > xRealAccess;
514 const SfxItemPropertySet* pPropSet;
515 const OUString sLinkSuffix;
516 const OUString sLinkDisplayName;
517 SwXTextDocument* pxDoc;
519 public:
520 SwXLinkNameAccessWrapper(css::uno::Reference< css::container::XNameAccess > const & xAccess,
521 const OUString& rLinkDisplayName, const OUString& sSuffix);
522 SwXLinkNameAccessWrapper(SwXTextDocument& rxDoc,
523 const OUString& rLinkDisplayName, const OUString& sSuffix);
524 virtual ~SwXLinkNameAccessWrapper() override;
526 //XNameAccess
527 virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
528 virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
529 virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
531 //XElementAccess
532 virtual css::uno::Type SAL_CALL getElementType( ) override;
533 virtual sal_Bool SAL_CALL hasElements( ) override;
535 //XPropertySet
536 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
537 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
538 virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
539 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
540 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
541 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
542 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
544 //XLinkTargetSupplier
545 virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLinks() override;
547 //XServiceInfo
548 virtual OUString SAL_CALL getImplementationName() override;
549 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
550 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
554 class SwXOutlineTarget final : public cppu::WeakImplHelper
556 css::beans::XPropertySet,
557 css::lang::XServiceInfo
560 const SfxItemPropertySet* pPropSet;
561 OUString const sOutlineText;
563 public:
564 SwXOutlineTarget(const OUString& rOutlineText);
565 virtual ~SwXOutlineTarget() override;
567 //XPropertySet
568 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
569 virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
570 virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
571 virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
572 virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
573 virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
574 virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
576 //XServiceInfo
577 virtual OUString SAL_CALL getImplementationName() override;
578 virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
579 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
582 enum class SwCreateDrawTable {
583 Dash = 1, Gradient, Hatch, Bitmap, TransGradient, Marker, Defaults
586 class SwXDocumentPropertyHelper : public SvxUnoForbiddenCharsTable
588 css::uno::Reference < css::uno::XInterface > xDashTable;
589 css::uno::Reference < css::uno::XInterface > xGradientTable;
590 css::uno::Reference < css::uno::XInterface > xHatchTable;
591 css::uno::Reference < css::uno::XInterface > xBitmapTable;
592 css::uno::Reference < css::uno::XInterface > xTransGradientTable;
593 css::uno::Reference < css::uno::XInterface > xMarkerTable;
594 css::uno::Reference < css::uno::XInterface > xDrawDefaults;
596 SwDoc* m_pDoc;
597 public:
598 SwXDocumentPropertyHelper(SwDoc& rDoc);
599 virtual ~SwXDocumentPropertyHelper() override;
600 css::uno::Reference<css::uno::XInterface> GetDrawTable(SwCreateDrawTable nWhich);
601 void Invalidate();
603 virtual void onChange() override;
606 // The class SwViewOptionAdjust_Impl is used to adjust the SwViewOption of
607 // the current SwViewShell so that fields are not printed as commands and
608 // hidden characters are always invisible. Hidden text and place holders
609 // should be printed according to the current print options.
610 // After printing the view options are restored
611 class SwViewOptionAdjust_Impl
613 SwViewShell * m_pShell;
614 SwViewOption const m_aOldViewOptions;
615 public:
616 SwViewOptionAdjust_Impl( SwViewShell& rSh, const SwViewOption &rViewOptions );
617 ~SwViewOptionAdjust_Impl();
618 void AdjustViewOptions( SwPrintData const* const pPrtOptions, bool setShowPlaceHoldersInPDF );
619 bool checkShell( const SwViewShell& rCompare ) const
620 { return &rCompare == m_pShell; }
621 void DontTouchThatViewShellItSmellsFunny() { m_pShell = nullptr; }
624 #endif
626 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */