LibreOffice Module sw (master)  1
unotxdoc.hxx
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 #ifndef INCLUDED_SW_INC_UNOTXDOC_HXX
20 #define INCLUDED_SW_INC_UNOTXDOC_HXX
21 
22 #include "swdllapi.h"
23 #include <sfx2/sfxbasemodel.hxx>
24 
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>
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>
66 
67 #include "unobaseclass.hxx"
68 #include "viewopt.hxx"
69 
70 #include <deque>
71 
72 class SwDoc;
73 class SwDocShell;
74 class UnoActionContext;
75 class SwXBodyText;
76 class SwXDrawPage;
77 class SwUnoCursor;
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; } } } }
90 
91 namespace com { namespace sun { namespace star { namespace util { class XReplaceDescriptor; } } } }
92 
93 typedef cppu::WeakImplHelper
94 <
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
129 >
131 
133  public SvxFmMSFactory,
134  public SfxBaseModel,
135  public vcl::ITiledRenderable,
136  public css::tiledrendering::XTiledRenderable
137 {
138 private:
139  class Impl;
141 
142  std::deque<std::unique_ptr<UnoActionContext, o3tl::default_delete<UnoActionContext>>> maActionArr;
143 
145 
148 
150  css::uno::Reference< css::drawing::XDrawPage > mxXDrawPage;
151 
152  css::uno::Reference< css::text::XText > xBodyText;
154  css::uno::Reference< css::uno::XAggregation > xNumFormatAgg;
155 
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;
174 
175  css::uno::Reference< css::beans::XPropertySet > mxXLineNumberingProperties;
176  css::uno::Reference< css::container::XNameAccess > mxLinkTargetSupplier;
177  css::uno::Reference< css::container::XEnumerationAccess > mxXRedlines;
178 
179  //temporary frame to enable PDF export if no valid view is available
182 
183  std::unique_ptr<SwPrintUIOptions> m_pPrintUIOptions;
184  std::unique_ptr<SwRenderData> m_pRenderData;
185 
186  void GetNumberFormatter();
187 
188  css::uno::Reference<css::uno::XInterface> create(
189  OUString const & rServiceName,
190  css::uno::Sequence<css::uno::Any> const * arguments);
191 
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 );
196 
197  OUString maBuildId;
198 
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.
204 
207 
208 protected:
210  virtual SdrModel& getSdrModelFromUnoModel() const override;
211 
212  virtual ~SwXTextDocument() override;
213 public:
214  SwXTextDocument(SwDocShell* pShell);
215 
216  void NotifyRefreshListeners();
217  virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override;
218  virtual void SAL_CALL acquire( ) throw() override;
219  virtual void SAL_CALL release( ) throw() override;
220 
221  //XWeak
222  virtual css::uno::Reference< css::uno::XAdapter > SAL_CALL queryAdapter( ) override;
223 
224  virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override;
225 
226  static const css::uno::Sequence< sal_Int8 > & getUnoTunnelId();
227 
228  //XUnoTunnel
229  virtual sal_Int64 SAL_CALL getSomething( const css::uno::Sequence< sal_Int8 >& aIdentifier ) override;
230 
231  //XTextDocument
232  virtual css::uno::Reference< css::text::XText > SAL_CALL getText() override;
233  virtual void SAL_CALL reformat() override;
234 
235  //XModel
236  virtual sal_Bool SAL_CALL attachResource( const OUString& aURL, const css::uno::Sequence< css::beans::PropertyValue >& aArgs ) override;
237  virtual OUString SAL_CALL getURL( ) override;
238  virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getArgs( ) override;
239  virtual void SAL_CALL connectController( const css::uno::Reference< css::frame::XController >& xController ) override;
240  virtual void SAL_CALL disconnectController( const css::uno::Reference< css::frame::XController >& xController ) override;
241  virtual void SAL_CALL lockControllers( ) override;
242  virtual void SAL_CALL unlockControllers( ) override;
243  virtual sal_Bool SAL_CALL hasControllersLocked( ) override;
244  virtual css::uno::Reference< css::frame::XController > SAL_CALL getCurrentController( ) override;
245  virtual void SAL_CALL setCurrentController( const css::uno::Reference< css::frame::XController >& xController ) override;
246  virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getCurrentSelection( ) override;
247 
248  //XComponent
249  virtual void SAL_CALL dispose() override;
250  virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > & aListener) override;
251  virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > & aListener) override;
252 
253  //XCloseable
254  virtual void SAL_CALL close( sal_Bool bDeliverOwnership ) override;
255 
256  //XLineNumberingProperties
257  virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getLineNumberingProperties() override;
258 
259  //XChapterNumberingSupplier
260  virtual css::uno::Reference< css::container::XIndexReplace > SAL_CALL getChapterNumberingRules() override;
261 
262  //XNumberingRulesSupplier
263  virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getNumberingRules() override;
264 
265  //XFootnotesSupplier
266  virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getFootnotes() override;
267  virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getFootnoteSettings() override;
268 
269  //XEndnotesSupplier
270  virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getEndnotes() override;
271  virtual css::uno::Reference< css::beans::XPropertySet > SAL_CALL getEndnoteSettings() override;
272 
273  //XReplaceable
274  virtual css::uno::Reference< css::util::XReplaceDescriptor > SAL_CALL createReplaceDescriptor() override;
275  virtual sal_Int32 SAL_CALL replaceAll(const css::uno::Reference< css::util::XSearchDescriptor > & xDesc) override;
276 
277  //XSearchable
278  virtual css::uno::Reference< css::util::XSearchDescriptor > SAL_CALL createSearchDescriptor() override;
279  virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL findAll(const css::uno::Reference< css::util::XSearchDescriptor > & xDesc) override;
280  virtual css::uno::Reference< css::uno::XInterface > SAL_CALL findFirst(const css::uno::Reference< css::util::XSearchDescriptor > & xDesc) override;
281  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 
283  //XPagePrintable
284  virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getPagePrintSettings() override;
285  virtual void SAL_CALL setPagePrintSettings(const css::uno::Sequence< css::beans::PropertyValue >& aSettings) override;
286  virtual void SAL_CALL printPages(const css::uno::Sequence< css::beans::PropertyValue >& xOptions) override;
287 
288  //XReferenceMarksSupplier
289  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getReferenceMarks() override;
290 
291  // css::text::XTextFieldsSupplier
292  virtual css::uno::Reference< css::container::XEnumerationAccess > SAL_CALL getTextFields() override;
293  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getTextFieldMasters() override;
294 
295  // css::text::XTextEmbeddedObjectsSupplier
296  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getEmbeddedObjects() override;
297 
298  // css::text::XBookmarksSupplier
299  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getBookmarks() override;
300 
301  // css::text::XTextSectionsSupplier
302  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getTextSections() override;
303 
304  // css::text::XTextTablesSupplier
305  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getTextTables() override;
306 
307  // css::text::XTextGraphicObjectsSupplier
308  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getGraphicObjects() override;
309 
310  // css::text::XTextFramesSupplier
311  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getTextFrames() override;
312 
313  //XStyleFamiliesSupplier
314  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getStyleFamilies() override;
315 
316  //XAutoStylesSupplier
317  virtual css::uno::Reference< css::style::XAutoStyles > SAL_CALL getAutoStyles( ) override;
318 
319  //XMultiServiceFactory
320  virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(const OUString& ServiceSpecifier) override;
321  virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const OUString& ServiceSpecifier,
322  const css::uno::Sequence< css::uno::Any >& Arguments) override;
323  virtual css::uno::Sequence< OUString > SAL_CALL getAvailableServiceNames() override;
324 
325  //XServiceInfo
326  virtual OUString SAL_CALL getImplementationName() override;
327  virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
328  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
329 
330  // css::drawing::XDrawPageSupplier
331  virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL getDrawPage() override;
332 
333  // css::drawing::XDrawPagesSupplier
334  virtual css::uno::Reference< css::drawing::XDrawPages > SAL_CALL getDrawPages() override;
335 
336  // css::text::XDocumentIndexesSupplier
337  virtual css::uno::Reference< css::container::XIndexAccess > SAL_CALL getDocumentIndexes() override;
338 
339  //XPropertySet
340  virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
341  virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
342  virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
343  virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
344  virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
345  virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
346  virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
347 
348  //XPropertyState
349  virtual css::beans::PropertyState SAL_CALL getPropertyState( const OUString& rPropertyName ) override;
350  virtual css::uno::Sequence< css::beans::PropertyState > SAL_CALL getPropertyStates( const css::uno::Sequence< OUString >& rPropertyNames ) override;
351  virtual void SAL_CALL setPropertyToDefault( const OUString& rPropertyName ) override;
352  virtual css::uno::Any SAL_CALL getPropertyDefault( const OUString& rPropertyName ) override;
353 
354  //XLinkTargetSupplier
355  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLinks() override;
356 
357  //XRedlinesSupplier
358  virtual css::uno::Reference< css::container::XEnumerationAccess > SAL_CALL getRedlines( ) override;
359 
360  // css::util::XRefreshable
361  virtual void SAL_CALL refresh() override;
362  virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > & l) override;
363  virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > & l) override;
364 
365  // css::util::XLinkUpdate,
366  virtual void SAL_CALL updateLinks( ) override;
367 
368  // css::view::XRenderable
369  virtual sal_Int32 SAL_CALL getRendererCount( const css::uno::Any& aSelection, const css::uno::Sequence< css::beans::PropertyValue >& xOptions ) override;
370  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;
371  virtual void SAL_CALL render( sal_Int32 nRenderer, const css::uno::Any& aSelection, const css::uno::Sequence< css::beans::PropertyValue >& xOptions ) override;
372 
373  // css::xforms::XFormsSupplier
374  virtual css::uno::Reference< css::container::XNameContainer > SAL_CALL getXForms( ) override;
375 
376  // css::document::XDocumentLanguages
377  virtual css::uno::Sequence< css::lang::Locale > SAL_CALL getDocumentLanguages( ::sal_Int16 nScriptTypes, ::sal_Int16 nCount ) override;
378 
379  // css::text::XFlatParagraphIteratorProvider:
380  virtual css::uno::Reference< css::text::XFlatParagraphIterator > SAL_CALL getFlatParagraphIterator(::sal_Int32 nTextMarkupType, sal_Bool bAutomatic ) override;
381 
382  // css::util::XCloneable
383  virtual css::uno::Reference< css::util::XCloneable > SAL_CALL createClone( ) override;
384 
385  // css::text::XPasteBroadcaster
386  void SAL_CALL addPasteEventListener(
387  const ::css::uno::Reference<::css::text::XPasteListener>& xListener) override;
388  void SAL_CALL removePasteEventListener(
389  const ::css::uno::Reference<::css::text::XPasteListener>& xListener) override;
390 
392  virtual void paintTile( VirtualDevice &rDevice,
393  int nOutputWidth,
394  int nOutputHeight,
395  int nTilePosX,
396  int nTilePosY,
397  long nTileWidth,
398  long nTileHeight ) override;
400  virtual Size getDocumentSize() override;
402  virtual void setPart(int nPart) override;
404  virtual int getParts() override;
406  virtual int getPart() override;
408  virtual OUString getPartName(int nPart) override;
410  virtual OUString getPartHash(int nPart) override;
412  virtual VclPtr<vcl::Window> getDocWindow() override;
414  virtual void initializeForTiledRendering(const css::uno::Sequence<css::beans::PropertyValue>& rArguments) override;
416  virtual void postKeyEvent(int nType, int nCharCode, int nKeyCode) override;
418  virtual void postMouseEvent(int nType, int nX, int nY, int nCount, int nButtons, int nModifier) override;
420  virtual void setTextSelection(int nType, int nX, int nY) override;
422  virtual css::uno::Reference<css::datatransfer::XTransferable> getSelection() override;
424  virtual void setGraphicSelection(int nType, int nX, int nY) override;
426  virtual void resetSelection() override;
428  virtual OUString getPartPageRectangles() override;
430  virtual void setClipboard(const css::uno::Reference<css::datatransfer::clipboard::XClipboard>& xClipboard) override;
432  virtual bool isMimeTypeSupported() override;
434  virtual void setClientVisibleArea(const tools::Rectangle& rRectangle) override;
436  virtual void setClientZoom(int nTilePixelWidth_, int nTilePixelHeight_, int nTileTwipWidth_, int nTileTwipHeight_) override;
438  virtual PointerStyle getPointer() override;
440  OUString getTrackedChanges() override;
442  OUString getTrackedChangeAuthors() override;
443 
444  OUString getRulerState() override;
446  OUString getPostIts() override;
447 
448  // css::tiledrendering::XTiledRenderable
449  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;
450 
451  void Invalidate();
452  void Reactivate(SwDocShell* pNewDocShell);
453  SwXDocumentPropertyHelper * GetPropertyHelper ();
454  bool IsValid() const {return bObjectValid;}
455 
456  void InitNewDoc();
457 
458  SwUnoCursor* CreateCursorForSearch(css::uno::Reference< css::text::XTextCursor > & xCursor);
459  SwUnoCursor* FindAny(const css::uno::Reference< css::util::XSearchDescriptor > & xDesc,
460  css::uno::Reference< css::text::XTextCursor > & xCursor, bool bAll,
461  sal_Int32& nResult,
462  css::uno::Reference< css::uno::XInterface > const & xLastResult);
463 
464  SwDocShell* GetDocShell() {return pDocShell;}
465 };
466 
467 class SwXLinkTargetSupplier : public cppu::WeakImplHelper
468 <
469  css::container::XNameAccess,
470  css::lang::XServiceInfo
471 >
472 {
474  OUString sTables;
475  OUString sFrames;
476  OUString sGraphics;
477  OUString sOLEs;
478  OUString sSections;
479  OUString sOutlines;
480  OUString sBookmarks;
481 
482 public:
484  virtual ~SwXLinkTargetSupplier() override;
485 
486  //XNameAccess
487  virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
488  virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
489  virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
490 
491  //XElementAccess
492  virtual css::uno::Type SAL_CALL getElementType( ) override;
493  virtual sal_Bool SAL_CALL hasElements( ) override;
494 
495  //XServiceInfo
496  virtual OUString SAL_CALL getImplementationName() override;
497  virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
498  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
499 
500  void Invalidate() {pxDoc = nullptr;}
501 };
502 
503 class SwXLinkNameAccessWrapper : public cppu::WeakImplHelper
504 <
505  css::beans::XPropertySet,
506  css::container::XNameAccess,
507  css::lang::XServiceInfo,
508  css::document::XLinkTargetSupplier
509 >
510 {
511  css::uno::Reference< css::container::XNameAccess > xRealAccess;
513  const OUString sLinkSuffix;
514  const OUString sLinkDisplayName;
516 
517 public:
518  SwXLinkNameAccessWrapper(css::uno::Reference< css::container::XNameAccess > const & xAccess,
519  const OUString& rLinkDisplayName, const OUString& sSuffix);
521  const OUString& rLinkDisplayName, const OUString& sSuffix);
522  virtual ~SwXLinkNameAccessWrapper() override;
523 
524  //XNameAccess
525  virtual css::uno::Any SAL_CALL getByName(const OUString& Name) override;
526  virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override;
527  virtual sal_Bool SAL_CALL hasByName(const OUString& Name) override;
528 
529  //XElementAccess
530  virtual css::uno::Type SAL_CALL getElementType( ) override;
531  virtual sal_Bool SAL_CALL hasElements( ) override;
532 
533  //XPropertySet
534  virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
535  virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
536  virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
537  virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
538  virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
539  virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
540  virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
541 
542  //XLinkTargetSupplier
543  virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLinks() override;
544 
545  //XServiceInfo
546  virtual OUString SAL_CALL getImplementationName() override;
547  virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
548  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
549 
550 };
551 
552 class SwXOutlineTarget : public cppu::WeakImplHelper
553 <
554  css::beans::XPropertySet,
555  css::lang::XServiceInfo
556 >
557 {
559  OUString const sOutlineText;
560 
561 public:
562  SwXOutlineTarget(const OUString& rOutlineText);
563  virtual ~SwXOutlineTarget() override;
564 
565  //XPropertySet
566  virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override;
567  virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override;
568  virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override;
569  virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
570  virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
571  virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
572  virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
573 
574  //XServiceInfo
575  virtual OUString SAL_CALL getImplementationName() override;
576  virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override;
577  virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
578 };
579 
580 enum class SwCreateDrawTable {
582 };
583 
585 {
586  css::uno::Reference < css::uno::XInterface > xDashTable;
587  css::uno::Reference < css::uno::XInterface > xGradientTable;
588  css::uno::Reference < css::uno::XInterface > xHatchTable;
589  css::uno::Reference < css::uno::XInterface > xBitmapTable;
590  css::uno::Reference < css::uno::XInterface > xTransGradientTable;
591  css::uno::Reference < css::uno::XInterface > xMarkerTable;
592  css::uno::Reference < css::uno::XInterface > xDrawDefaults;
593 
595 public:
597  virtual ~SwXDocumentPropertyHelper() override;
598  css::uno::Reference<css::uno::XInterface> GetDrawTable(SwCreateDrawTable nWhich);
599  void Invalidate();
600 
601  virtual void onChange() override;
602 };
603 
604 // The class SwViewOptionAdjust_Impl is used to adjust the SwViewOption of
605 // the current SwViewShell so that fields are not printed as commands and
606 // hidden characters are always invisible. Hidden text and place holders
607 // should be printed according to the current print options.
608 // After printing the view options are restored
610 {
613 public:
614  SwViewOptionAdjust_Impl( SwViewShell& rSh, const SwViewOption &rViewOptions );
616  void AdjustViewOptions( SwPrintData const* const pPrtOptions, bool setShowPlaceHoldersInPDF );
617  bool checkShell( const SwViewShell& rCompare ) const
618  { return &rCompare == m_pShell; }
619  void DontTouchThatViewShellItSmellsFunny() { m_pShell = nullptr; }
620 };
621 
622 #endif
623 
624 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual css::uno::Any SAL_CALL getByName(const OUString &Name) override
Definition: unotxdoc.cxx:3995
css::uno::Reference< css::uno::XInterface > xDrawDefaults
Definition: unotxdoc.hxx:592
Type
css::uno::Reference< css::container::XNameAccess > mxXTextFieldMasters
Definition: unotxdoc.hxx:163
virtual ~SwXOutlineTarget() override
Definition: unotxdoc.cxx:4234
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: unotxdoc.cxx:4250
const SfxItemPropertySet * pPropSet
Definition: unotxdoc.hxx:558
virtual OUString SAL_CALL getImplementationName() override
Definition: unotxdoc.cxx:3956
css::uno::Reference< css::uno::XInterface > xHatchTable
Definition: unotxdoc.hxx:588
css::uno::Reference< css::container::XNameAccess > mxXTextSections
Definition: unotxdoc.hxx:164
virtual sal_Bool SAL_CALL hasByName(const OUString &Name) override
Definition: unotxdoc.cxx:3932
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotxdoc.cxx:4203
cppu::WeakImplHelper< css::text::XTextDocument, css::text::XLineNumberingProperties, css::text::XChapterNumberingSupplier, css::text::XNumberingRulesSupplier, css::text::XFootnotesSupplier, css::text::XEndnotesSupplier, css::util::XReplaceable, css::text::XPagePrintable, css::text::XReferenceMarksSupplier, css::text::XTextTablesSupplier, css::text::XTextFramesSupplier, css::text::XBookmarksSupplier, css::text::XTextSectionsSupplier, css::text::XTextGraphicObjectsSupplier, css::text::XTextEmbeddedObjectsSupplier, css::text::XTextFieldsSupplier, css::style::XStyleFamiliesSupplier, css::style::XAutoStylesSupplier, css::lang::XServiceInfo, css::drawing::XDrawPageSupplier, css::drawing::XDrawPagesSupplier, css::text::XDocumentIndexesSupplier, css::beans::XPropertySet, css::beans::XPropertyState, css::document::XLinkTargetSupplier, css::document::XRedlinesSupplier, css::util::XRefreshable, css::util::XLinkUpdate, css::view::XRenderable, css::xforms::XFormsSupplier, css::text::XFlatParagraphIteratorProvider, css::document::XDocumentLanguages, css::util::XCloneable, css::text::XPasteBroadcaster > SwXTextDocumentBaseClass
Definition: unotxdoc.hxx:130
virtual ~SwXLinkNameAccessWrapper() override
Definition: unotxdoc.cxx:3991
SwXBodyText * pBodyText
Definition: unotxdoc.hxx:153
virtual css::uno::Reference< css::container::XNameAccess > SAL_CALL getLinks() override
Definition: unotxdoc.cxx:4207
css::uno::Reference< css::drawing::XDrawPage > mxXDrawPage
Definition: unotxdoc.hxx:150
signed char sal_Int8
SwXOutlineTarget(const OUString &rOutlineText)
Definition: unotxdoc.cxx:4228
void DontTouchThatViewShellItSmellsFunny()
Definition: unotxdoc.hxx:619
css::uno::Reference< css::container::XNameAccess > mxXBookmarks
Definition: unotxdoc.hxx:165
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: unotxdoc.cxx:3921
virtual css::uno::Any SAL_CALL getByName(const OUString &Name) override
Definition: unotxdoc.cxx:3860
Definition: doc.hxx:185
virtual sal_Bool SAL_CALL hasElements() override
Definition: unotxdoc.cxx:3951
const OUString sLinkSuffix
Definition: unotxdoc.hxx:513
SwViewShell * m_pShell
Definition: unotxdoc.hxx:611
virtual SdrModel & getSdrModelFromUnoModel() const =0
css::uno::Reference< css::container::XIndexReplace > mxXChapterNumbering
Definition: unotxdoc.hxx:172
void AdjustViewOptions(SwPrintData const *const pPrtOptions, bool setShowPlaceHoldersInPDF)
Definition: unotxdoc.cxx:4392
virtual void SAL_CALL acquire() override
const SfxItemPropertySet * pPropSet
Definition: unotxdoc.hxx:512
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotxdoc.cxx:4268
css::uno::Reference< css::uno::XInterface > xMarkerTable
Definition: unotxdoc.hxx:591
virtual OUString SAL_CALL getImplementationName() override
Definition: unotxdoc.cxx:4278
virtual ~SwXDocumentPropertyHelper() override
Definition: unotxdoc.cxx:4301
css::uno::Reference< css::uno::XInterface > xGradientTable
Definition: unotxdoc.hxx:587
SwXDrawPage * pDrawPage
Definition: unotxdoc.hxx:149
css::uno::Reference< css::container::XNameAccess > mxXTextFrames
Definition: unotxdoc.hxx:167
css::uno::Reference< css::container::XIndexAccess > mxXDocumentIndexes
Definition: unotxdoc.hxx:173
SwXLinkNameAccessWrapper(css::uno::Reference< css::container::XNameAccess > const &xAccess, const OUString &rLinkDisplayName, const OUString &sSuffix)
A class that stores temporary data that is needed for rendering the document.
Definition: printdata.hxx:203
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
Definition: unotxdoc.cxx:4195
css::uno::Reference< css::container::XNameAccess > mxXReferenceMarks
Definition: unotxdoc.hxx:161
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &aListener) override
SwCreateDrawTable
Definition: unotxdoc.hxx:580
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: unotxdoc.cxx:4139
std::deque< std::unique_ptr< UnoActionContext, o3tl::default_delete< UnoActionContext > > > maActionArr
Definition: unotxdoc.hxx:142
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: unotxdoc.cxx:3961
SwDocShell * pDocShell
Definition: unotxdoc.hxx:146
css::uno::Reference< css::container::XEnumerationAccess > mxXRedlines
Definition: unotxdoc.hxx:177
OUString const sOutlineText
Definition: unotxdoc.hxx:559
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
Reference< deployment::XPackageRegistry > create(Reference< deployment::XPackageRegistry > const &xRootRegistry, OUString const &context, OUString const &cachePath, Reference< XComponentContext > const &xComponentContext)
std::unique_ptr< T, UnoImplPtrDeleter< T > > UnoImplPtr
Smart pointer class ensuring that the pointed object is deleted with a locked SolarMutex.
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
Definition: unotxdoc.cxx:4263
std::unique_ptr< SwRenderData > m_pRenderData
Definition: unotxdoc.hxx:184
const SfxItemPropertySet * pPropSet
Definition: unotxdoc.hxx:144
css::uno::Reference< css::uno::XAggregation > xNumFormatAgg
Definition: unotxdoc.hxx:154
css::uno::Reference< css::beans::XPropertySet > mxXLineNumberingProperties
Definition: unotxdoc.hxx:175
css::uno::Reference< css::uno::XInterface > xBitmapTable
Definition: unotxdoc.hxx:589
css::uno::Reference< css::container::XIndexAccess > mxXFootnotes
Definition: unotxdoc.hxx:157
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: unotxdoc.cxx:4217
virtual void onChange() override
Definition: unotxdoc.cxx:4370
SwXTextDocument * pxDoc
Definition: unotxdoc.hxx:473
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: unotxdoc.cxx:4283
css::uno::Reference< css::container::XNameAccess > xRealAccess
Definition: unotxdoc.hxx:511
OUString maBuildId
Definition: unotxdoc.hxx:197
virtual css::uno::Type SAL_CALL getElementType() override
Definition: unotxdoc.cxx:3945
css::uno::Reference< css::container::XIndexAccess > mxXEndnotes
Definition: unotxdoc.hxx:159
SfxViewFrame * m_pHiddenViewFrame
Definition: unotxdoc.hxx:180
SwXTextDocument * pxDoc
Definition: unotxdoc.hxx:515
unsigned char sal_Bool
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
Definition: unotxdoc.cxx:4244
css::uno::Reference< css::uno::XInterface > xDashTable
Definition: unotxdoc.hxx:586
SwDocShell * GetDocShell()
Definition: unotxdoc.hxx:464
SwViewOptionAdjust_Impl(SwViewShell &rSh, const SwViewOption &rViewOptions)
Definition: unotxdoc.cxx:4376
css::uno::Reference< css::container::XNameAccess > mxLinkTargetSupplier
Definition: unotxdoc.hxx:176
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotxdoc.cxx:4199
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: unotxdoc.cxx:4133
css::uno::Reference< css::beans::XPropertySet > mxXEndnoteSettings
Definition: unotxdoc.hxx:160
virtual css::uno::Type SAL_CALL getElementType() override
Definition: unotxdoc.cxx:4114
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: unotxdoc.cxx:3966
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: unotxdoc.cxx:4045
virtual OUString SAL_CALL getImplementationName() override
Definition: unotxdoc.cxx:4212
css::uno::Reference< css::uno::XInterface > xTransGradientTable
Definition: unotxdoc.hxx:590
bool bApplyPagePrintSettingsFromXPagePrintable
Definition: unotxdoc.hxx:203
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: unotxdoc.cxx:4222
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &aListener) override
css::uno::Reference< css::beans::XPropertySet > mxXFootnoteSettings
Definition: unotxdoc.hxx:158
virtual sal_Bool SAL_CALL hasByName(const OUString &Name) override
Definition: unotxdoc.cxx:4076
bool checkShell(const SwViewShell &rCompare) const
Definition: unotxdoc.hxx:617
::sw::UnoImplPtr< Impl > m_pImpl
Definition: unotxdoc.hxx:139
css::uno::Reference< css::text::XText > xBodyText
Definition: unotxdoc.hxx:152
css::uno::Reference< css::container::XEnumerationAccess > mxXTextFieldTypes
Definition: unotxdoc.hxx:162
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
Definition: unotxdoc.cxx:4191
css::uno::Reference< css::container::XNameAccess > mxXTextTables
Definition: unotxdoc.hxx:166
css::uno::Reference< css::container::XNameAccess > mxXStyleFamilies
Definition: unotxdoc.hxx:170
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
Definition: unotxdoc.cxx:4258
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: unotxdoc.cxx:4238
css::uno::Reference< css::uno::XInterface > GetDrawTable(SwCreateDrawTable nWhich)
Definition: unotxdoc.cxx:4305
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
Definition: unotxdoc.cxx:4273
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: unotxdoc.cxx:4288
PointerStyle
const OUString sLinkDisplayName
Definition: unotxdoc.hxx:514
css::uno::Reference< css::container::XNameAccess > mxXEmbeddedObjects
Definition: unotxdoc.hxx:169
SwXLinkTargetSupplier(SwXTextDocument &rxDoc)
Definition: unotxdoc.cxx:3844
css::uno::Reference< css::container::XNameAccess > mxXGraphicObjects
Definition: unotxdoc.hxx:168
css::uno::Reference< css::container::XIndexAccess > mxXNumberingRules
Definition: unotxdoc.hxx:156
SwXDocumentPropertyHelper(SwDoc &rDoc)
Definition: unotxdoc.cxx:4295
rtl::Reference< SwXDocumentPropertyHelper > mxPropertyHelper
Definition: unotxdoc.hxx:181
SwViewOption const m_aOldViewOptions
Definition: unotxdoc.hxx:612
std::unique_ptr< SwPrintUIOptions > m_pPrintUIOptions
Definition: unotxdoc.hxx:183
virtual sal_Bool SAL_CALL hasElements() override
Definition: unotxdoc.cxx:4119
virtual ~SwXLinkTargetSupplier() override
Definition: unotxdoc.cxx:3856
css::uno::Reference< css::style::XAutoStyles > mxXAutoStyles
Definition: unotxdoc.hxx:171
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
Definition: unotxdoc.cxx:4175