1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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
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"
74 class UnoActionContext
;
78 class SwXDocumentPropertyHelper
;
81 class SwPrintUIOptions
;
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
,
135 public vcl::ITiledRenderable
,
136 public css::tiledrendering::XTiledRenderable
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
;
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
);
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
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
;
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
;
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();
228 virtual sal_Int64 SAL_CALL
getSomething( const css::uno::Sequence
< sal_Int8
>& aIdentifier
) override
;
231 virtual css::uno::Reference
< css::text::XText
> SAL_CALL
getText() override
;
232 virtual void SAL_CALL
reformat() override
;
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
;
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
;
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
;
265 virtual css::uno::Reference
< css::container::XIndexAccess
> SAL_CALL
getFootnotes() override
;
266 virtual css::uno::Reference
< css::beans::XPropertySet
> SAL_CALL
getFootnoteSettings() override
;
269 virtual css::uno::Reference
< css::container::XIndexAccess
> SAL_CALL
getEndnotes() override
;
270 virtual css::uno::Reference
< css::beans::XPropertySet
> SAL_CALL
getEndnoteSettings() override
;
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
;
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
;
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
;
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
;
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
;
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
;
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
,
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
;
454 void Reactivate(SwDocShell
* pNewDocShell
);
455 SwXDocumentPropertyHelper
* GetPropertyHelper ();
456 bool IsValid() const {return bObjectValid
;}
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
,
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
;
485 SwXLinkTargetSupplier(SwXTextDocument
& rxDoc
);
486 virtual ~SwXLinkTargetSupplier() override
;
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
;
494 virtual css::uno::Type SAL_CALL
getElementType( ) override
;
495 virtual sal_Bool SAL_CALL
hasElements( ) override
;
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
;
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
;
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
;
532 virtual css::uno::Type SAL_CALL
getElementType( ) override
;
533 virtual sal_Bool SAL_CALL
hasElements( ) override
;
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
;
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
;
564 SwXOutlineTarget(const OUString
& rOutlineText
);
565 virtual ~SwXOutlineTarget() override
;
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
;
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
;
598 SwXDocumentPropertyHelper(SwDoc
& rDoc
);
599 virtual ~SwXDocumentPropertyHelper() override
;
600 css::uno::Reference
<css::uno::XInterface
> GetDrawTable(SwCreateDrawTable nWhich
);
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
;
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; }
626 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */